Pantry resource
GET/POST /v1/pantry/items
foodapi.resources.pantry.PantryResource
¶
Bases: BaseResource
Pantry CRUD scoped per developer or external user.
list
¶
list(
*, external_user_id: str | None = None
) -> PantryItemList
List pantry items (GET /v1/pantry/items).
get
¶
get(
item_id: str | UUID,
*,
external_user_id: str | None = None
) -> PantryItem
Get one pantry item (GET /v1/pantry/items/{item_id}).
add
¶
add(
*,
ingredient_id: str | UUID,
quantity: float | None = None,
unit: str | None = None,
freshness_date: date | str | None = None,
freshness_date_type: (
FreshnessDateType | str | None
) = None,
freshness_date_source: (
FreshnessDateSource | str | None
) = None,
external_user_id: str | None = None
) -> PantryItem
Add a pantry item (POST /v1/pantry/items).
update
¶
update(
item_id: str | UUID,
*,
payload: dict[str, Any],
external_user_id: str | None = None
) -> PantryItem
Patch a pantry item (PATCH /v1/pantry/items/{item_id}).
Pass explicit None values in payload to clear fields, e.g.
{"freshness_date": None} clears freshness metadata. Omitted keys are
left unchanged by the server.
delete
¶
Delete a pantry item (DELETE /v1/pantry/items/{item_id}).
normalize
¶
normalize(
*,
ingredient_text: str,
external_user_id: str | None = None
) -> PantryItem
Normalize ingredient text and add to pantry (POST /v1/pantry/normalize).
list_lots
¶
List lots for a pantry item (GET /v1/pantry/items/{item_id}/lots).
create_lot
¶
create_lot(
item_id: str | UUID,
*,
quantity: float,
unit: str | None = None,
acquired_date: date | str | None = None,
opened_date: date | str | None = None,
storage_location: StorageLocation | str | None = None,
freshness_date: date | str | None = None,
freshness_date_type: (
FreshnessDateType | str | None
) = None,
freshness_date_source: (
FreshnessDateSource | str | None
) = None,
external_user_id: str | None = None
) -> PantryLot
Create a pantry lot (POST /v1/pantry/items/{item_id}/lots).
update_lot
¶
update_lot(
item_id: str | UUID,
lot_id: str | UUID,
*,
payload: dict[str, Any],
external_user_id: str | None = None
) -> PantryLot
Patch a pantry lot (PATCH /v1/pantry/items/{item_id}/lots/{lot_id}).
Pass explicit None in payload to clear nullable fields such as
opened_date or freshness_date.
delete_lot
¶
delete_lot(
item_id: str | UUID,
lot_id: str | UUID,
*,
external_user_id: str | None = None
) -> None
Delete a pantry lot (DELETE /v1/pantry/items/{item_id}/lots/{lot_id}).
foodapi.resources.pantry.AsyncPantryResource
¶
Bases: PantryResource