Skip to content

API Response Types

These are Pydantic BaseModel classes used to deserialize raw JSON responses from the Grocy API. They are used internally by GrocyApiClient and passed to the higher-level data model classes.

You typically don't construct these directly, but they document the shape of the API responses.

Stock Responses

CurrentStockResponse

Bases: BaseModel

product_id instance-attribute

amount instance-attribute

best_before_date instance-attribute

amount_opened instance-attribute

amount_aggregated instance-attribute

amount_opened_aggregated instance-attribute

is_aggregated_amount instance-attribute

product instance-attribute

ProductDetailsResponse

Bases: BaseModel

last_purchased = None class-attribute instance-attribute

last_used = None class-attribute instance-attribute

stock_amount instance-attribute

stock_amount_opened instance-attribute

next_best_before_date = None class-attribute instance-attribute

last_price = None class-attribute instance-attribute

product instance-attribute

quantity_unit_stock instance-attribute

default_quantity_unit_purchase instance-attribute

barcodes = Field(None, alias='product_barcodes') class-attribute instance-attribute

location = None class-attribute instance-attribute

MissingProductResponse

Bases: BaseModel

id instance-attribute

name instance-attribute

amount_missing instance-attribute

is_partly_in_stock instance-attribute

StockLogResponse

Bases: BaseModel

id instance-attribute

product_id instance-attribute

amount instance-attribute

best_before_date instance-attribute

purchased_date instance-attribute

used_date = None class-attribute instance-attribute

spoiled = False class-attribute instance-attribute

stock_id instance-attribute

transaction_id instance-attribute

transaction_type instance-attribute

Product Data

ProductData

Bases: BaseModel

id instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

location_id = None class-attribute instance-attribute

product_group_id = None class-attribute instance-attribute

qu_id_stock instance-attribute

qu_id_purchase instance-attribute

picture_file_name = None class-attribute instance-attribute

allow_partial_units_in_stock = False class-attribute instance-attribute

row_created_timestamp instance-attribute

min_stock_amount = None class-attribute instance-attribute

default_best_before_days instance-attribute

location_id_validator = _field_not_empty_validator('location_id') class-attribute instance-attribute

product_group_id_validator = _field_not_empty_validator('product_group_id') class-attribute instance-attribute

ProductBarcodeData

Bases: BaseModel

barcode instance-attribute

amount = None class-attribute instance-attribute

QuantityUnitData

Bases: BaseModel

id instance-attribute

name instance-attribute

name_plural = None class-attribute instance-attribute

description = None class-attribute instance-attribute

row_created_timestamp instance-attribute

LocationData

Bases: BaseModel

id instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

row_created_timestamp instance-attribute

Chore Responses

CurrentChoreResponse

Bases: BaseModel

chore_id instance-attribute

last_tracked_time = None class-attribute instance-attribute

next_estimated_execution_time = None class-attribute instance-attribute

ChoreDetailsResponse

Bases: BaseModel

chore instance-attribute

last_tracked = None class-attribute instance-attribute

next_estimated_execution_time = None class-attribute instance-attribute

track_count = 0 class-attribute instance-attribute

next_execution_assigned_user = None class-attribute instance-attribute

last_done_by = None class-attribute instance-attribute

ChoreData

Bases: BaseModel

id instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

period_type instance-attribute

period_config = None class-attribute instance-attribute

period_days = 0 class-attribute instance-attribute

track_date_only instance-attribute

rollover instance-attribute

assignment_type = None class-attribute instance-attribute

assignment_config = None class-attribute instance-attribute

next_execution_assigned_to_user_id = None class-attribute instance-attribute

userfields = None class-attribute instance-attribute

next_execution_assigned_to_user_id_validator = _field_not_empty_validator('next_execution_assigned_to_user_id') class-attribute instance-attribute

Task Responses

TaskResponse

Bases: BaseModel

id instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

due_date = None class-attribute instance-attribute

done instance-attribute

done_timestamp = None class-attribute instance-attribute

category_id = None class-attribute instance-attribute

category = None class-attribute instance-attribute

assigned_to_user_id = None class-attribute instance-attribute

assigned_to_user = None class-attribute instance-attribute

userfields = None class-attribute instance-attribute

due_date_validator = _field_not_empty_validator('due_date') class-attribute instance-attribute

category_id_validator = _field_not_empty_validator('category_id') class-attribute instance-attribute

assigned_to_user_id_validator = _field_not_empty_validator('assigned_to_user_id') class-attribute instance-attribute

TaskCategoryDto

Bases: BaseModel

id instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

row_created_timestamp instance-attribute

Battery Responses

CurrentBatteryResponse

Bases: BaseModel

id instance-attribute

last_tracked_time = None class-attribute instance-attribute

next_estimated_charge_time = None class-attribute instance-attribute

BatteryDetailsResponse

Bases: BaseModel

battery instance-attribute

charge_cycles_count instance-attribute

last_charged = None class-attribute instance-attribute

last_tracked_time = None class-attribute instance-attribute

next_estimated_charge_time = None class-attribute instance-attribute

BatteryData

Bases: BaseModel

id instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

used_in = None class-attribute instance-attribute

charge_interval_days instance-attribute

created_timestamp = Field(alias='row_created_timestamp') class-attribute instance-attribute

userfields = None class-attribute instance-attribute

Equipment Responses

EquipmentDetailsResponse

Bases: BaseModel

equipment instance-attribute

EquipmentData

Bases: BaseModel

id instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

instruction_manual_file_name = None class-attribute instance-attribute

created_timestamp = Field(alias='row_created_timestamp') class-attribute instance-attribute

userfields = None class-attribute instance-attribute

Meal Plan Responses

MealPlanResponse

Bases: BaseModel

id instance-attribute

day instance-attribute

type instance-attribute

recipe_id = None class-attribute instance-attribute

recipe_servings = None class-attribute instance-attribute

note = None class-attribute instance-attribute

product_id = None class-attribute instance-attribute

product_amount = None class-attribute instance-attribute

product_qu_id = None class-attribute instance-attribute

row_created_timestamp instance-attribute

userfields = None class-attribute instance-attribute

section_id = None class-attribute instance-attribute

MealPlanSectionResponse

Bases: BaseModel

id = None class-attribute instance-attribute

name = None class-attribute instance-attribute

sort_number = None class-attribute instance-attribute

row_created_timestamp instance-attribute

sort_number_validator = _field_not_empty_validator('sort_number') class-attribute instance-attribute

RecipeDetailsResponse

Bases: BaseModel

id = None class-attribute instance-attribute

name instance-attribute

description = None class-attribute instance-attribute

base_servings instance-attribute

desired_servings instance-attribute

picture_file_name = None class-attribute instance-attribute

row_created_timestamp instance-attribute

userfields = None class-attribute instance-attribute

Shopping List

ShoppingListItem

Bases: BaseModel

id instance-attribute

product_id = None class-attribute instance-attribute

note = None class-attribute instance-attribute

amount = None class-attribute instance-attribute

row_created_timestamp instance-attribute

shopping_list_id instance-attribute

done instance-attribute

User

UserDto

Bases: BaseModel

id instance-attribute

username instance-attribute

first_name = None class-attribute instance-attribute

last_name = None class-attribute instance-attribute

display_name = None class-attribute instance-attribute

System

SystemInfoDto

Bases: BaseModel

grocy_version_info = Field(alias='grocy_version') class-attribute instance-attribute

php_version instance-attribute

sqlite_version instance-attribute

os instance-attribute

client instance-attribute

SystemTimeDto

Bases: BaseModel

timezone instance-attribute

time_local instance-attribute

time_local_sqlite3 instance-attribute

time_utc instance-attribute

timestamp instance-attribute

SystemConfigDto

Bases: BaseModel

username = Field(alias='USER_USERNAME') class-attribute instance-attribute

base_path = Field(alias='BASE_PATH') class-attribute instance-attribute

base_url = Field(alias='BASE_URL') class-attribute instance-attribute

mode = Field(alias='MODE') class-attribute instance-attribute

default_locale = Field(alias='DEFAULT_LOCALE') class-attribute instance-attribute

locale = Field(alias='LOCALE') class-attribute instance-attribute

currency = Field(alias='CURRENCY') class-attribute instance-attribute

feature_flags instance-attribute

feature_flags_root_validator(data) classmethod

Pydantic root validator to add all "FEATURE_FLAG_" settings to Dict.

GrocyVersionDto

Bases: BaseModel

version = Field(alias='Version') class-attribute instance-attribute

release_date = Field(alias='ReleaseDate') class-attribute instance-attribute