Portal
SandboxAPI v1Not signed inExternal user: —

Pantry resource

GET/POST /v1/pantry/items foodapi.resources.pantry.PantryResource ¶ PantryResource(transport: Any) Bases: BaseResource Pantry CRUD scoped per developer or…

GET/POST /v1/pantry/items

foodapi.resources.pantry.PantryResource

PantryResource(transport: Any)

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(
    item_id: str | UUID,
    *,
    external_user_id: str | None = None
) -> None

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(
    item_id: str | UUID,
    *,
    external_user_id: str | None = None
) -> PantryLotList

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

AsyncPantryResource(transport: Any)

Example

items = client.pantry.list(external_user_id="user_42")
item = client.pantry.add(ingredient_id="...", quantity=2.0, unit="lb")