2025-10-18 05:44:36 +00:00
{
"openapi" : "3.1.0" ,
"info" : {
"title" : "Doof API" ,
"description" : "Doof Backend API" ,
"version" : "1.0.0"
} ,
"paths" : {
2025-11-01 05:18:46 +00:00
"/api/v1/auth/register" : {
2025-10-18 07:21:04 +00:00
"post" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"auth" ,
2025-11-01 06:24:15 +00:00
"auth"
2025-10-18 07:21:04 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Register" ,
"operationId" : "register" ,
2025-10-18 07:21:04 +00:00
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/RegisterBody"
2025-10-18 07:21:04 +00:00
}
}
} ,
"required" : true
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/TokenResponse"
2025-10-18 07:21:04 +00:00
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/auth/login" : {
"post" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"auth" ,
2025-11-01 06:24:15 +00:00
"auth"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Login" ,
"operationId" : "loginV2" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/LoginBody"
}
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"required" : true
} ,
2025-10-18 05:44:36 +00:00
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-19 02:12:28 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/TokenResponse"
2025-10-19 02:12:28 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
}
2025-11-01 05:18:46 +00:00
}
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/auth/refresh" : {
"post" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"auth" ,
2025-11-01 06:24:15 +00:00
"auth"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Refresh" ,
"operationId" : "refreshV2" ,
2025-10-18 05:44:36 +00:00
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/RefreshResponse"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"422" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/responses/Problem422"
}
}
}
} ,
"/api/v1/auth/logout" : {
"post" : {
"tags" : [
"auth" ,
2025-11-01 06:24:15 +00:00
"auth"
2025-11-01 05:18:46 +00:00
] ,
"summary" : "Logout" ,
"operationId" : "logoutV2" ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
2025-10-18 05:44:36 +00:00
"content" : {
"application/json" : {
2025-11-01 05:18:46 +00:00
"schema" : { }
2025-10-18 05:44:36 +00:00
}
}
2025-11-01 05:18:46 +00:00
} ,
"422" : {
"$ref" : "#/components/responses/Problem422"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/users/me/households" : {
2025-10-18 05:44:36 +00:00
"get" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"households" ,
"households"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "List My Households" ,
"operationId" : "list_my_households_api_v1_users_me_households_get" ,
2025-10-18 05:44:36 +00:00
"responses" : {
"200" : {
2025-11-01 05:18:46 +00:00
"description" : "Successful Response" ,
2025-10-18 05:44:36 +00:00
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"items" : {
"$ref" : "#/components/schemas/HouseholdResponse"
} ,
"type" : "array" ,
"title" : "Response List My Households Api V1 Users Me Households Get"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"422" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/responses/Problem422"
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
2025-10-18 05:44:36 +00:00
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
]
}
} ,
"/api/v1/households" : {
"post" : {
"tags" : [
"households" ,
"households"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Create Household" ,
"operationId" : "create_household_api_v1_households_post" ,
2025-10-18 05:44:36 +00:00
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/CreateHouseholdBody"
2025-10-18 05:44:36 +00:00
}
}
2025-11-01 05:18:46 +00:00
} ,
"required" : true
2025-10-18 05:44:36 +00:00
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-19 02:12:28 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/HouseholdResponse"
2025-10-19 02:12:28 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
}
2025-11-01 05:18:46 +00:00
}
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/invitations/accept" : {
"post" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"households" ,
"households"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Accept Invitation" ,
"operationId" : "accept_invitation_api_v1_invitations_accept_post" ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
2025-11-01 08:20:08 +00:00
"$ref" : "#/components/schemas/AcceptInvitationBody"
2025-11-01 05:18:46 +00:00
}
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"required" : true
} ,
2025-10-18 05:44:36 +00:00
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-11-01 08:20:08 +00:00
"schema" : {
"$ref" : "#/components/schemas/AcceptInvitationResponse"
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
}
}
2025-11-01 05:18:46 +00:00
}
} ,
"/api/v1/households/{householdSlug}/whoami" : {
"get" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"households"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Whoami" ,
"operationId" : "whoami_api_v1_households__householdSlug__whoami_get" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
2025-10-18 05:44:36 +00:00
"in" : "path" ,
"required" : true ,
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-19 02:12:28 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/WhoAmI"
2025-10-19 02:12:28 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 06:14:18 +00:00
"/api/v1/households/{householdSlug}/members" : {
"get" : {
"tags" : [
"households"
] ,
"summary" : "List Members" ,
"operationId" : "list_members_api_v1_households__householdSlug__members_get" ,
"parameters" : [
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "array" ,
"items" : {
"$ref" : "#/components/schemas/HouseholdMember"
} ,
"title" : "Response List Members Api V1 Households Householdslug Members Get"
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/invitations" : {
"post" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"households"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Create Invitation" ,
"operationId" : "create_invitation_api_v1_households__householdSlug__invitations_post" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
"in" : "path" ,
2025-10-18 05:44:36 +00:00
"required" : true ,
"schema" : {
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
2025-11-01 05:18:46 +00:00
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreateInvitationBody"
}
}
}
} ,
2025-10-18 05:44:36 +00:00
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-02 10:33:23 +00:00
"$ref" : "#/components/schemas/InviteLinkResponse"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/recipes" : {
2025-10-18 05:44:36 +00:00
"get" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"recipes" ,
2025-11-01 06:11:09 +00:00
"recipes"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "List Recipes" ,
"operationId" : "list_recipes_api_v1_households__householdSlug__recipes_get" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
2025-10-18 05:44:36 +00:00
"in" : "path" ,
"required" : true ,
2025-11-01 05:18:46 +00:00
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
} ,
{
"name" : "q" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"title" : "Q"
}
} ,
{
"name" : "cursor" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"title" : "Cursor"
}
} ,
{
"name" : "limit" ,
"in" : "query" ,
"required" : false ,
2025-10-18 05:44:36 +00:00
"schema" : {
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"maximum" : 200 ,
"minimum" : 1 ,
"default" : 50 ,
"title" : "Limit"
2025-10-18 05:44:36 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-18 07:21:04 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/Page_RecipeOut_"
2025-10-18 07:21:04 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 05:18:46 +00:00
"post" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"recipes" ,
2025-11-01 06:11:09 +00:00
"recipes"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Create Recipe" ,
"operationId" : "create_recipe_api_v1_households__householdSlug__recipes_post" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
2025-10-18 05:44:36 +00:00
"in" : "path" ,
"required" : true ,
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 12:36:46 +00:00
"$ref" : "#/components/schemas/RecipeCreate-Input"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-18 07:21:04 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/RecipeOut"
2025-10-18 07:21:04 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"400" : {
"$ref" : "#/components/responses/Problem400"
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"/api/v1/households/{householdSlug}/recipes/{recipe_id}" : {
"get" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"recipes" ,
2025-11-01 06:11:09 +00:00
"recipes"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Get Recipe" ,
"operationId" : "get_recipe_api_v1_households__householdSlug__recipes__recipe_id__get" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "recipe_id" ,
2025-10-18 05:44:36 +00:00
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Recipe Id"
2025-10-18 05:44:36 +00:00
}
} ,
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
"in" : "path" ,
2025-10-18 05:44:36 +00:00
"required" : true ,
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-18 07:21:04 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/RecipeOut"
2025-10-18 07:21:04 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"404" : {
"$ref" : "#/components/responses/Problem404"
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-11-01 05:18:46 +00:00
} ,
"delete" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"recipes" ,
2025-11-01 06:11:09 +00:00
"recipes"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Delete Recipe" ,
"operationId" : "delete_recipe_api_v1_households__householdSlug__recipes__recipe_id__delete" ,
"parameters" : [
{
"name" : "recipe_id" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "integer" ,
"title" : "Recipe Id"
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
}
] ,
2025-10-18 05:44:36 +00:00
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-18 07:21:04 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/RecipeOut"
2025-10-18 07:21:04 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
2025-11-01 05:18:46 +00:00
"404" : {
"$ref" : "#/components/responses/Problem404"
2025-10-18 05:44:36 +00:00
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 11:41:39 +00:00
"/api/v1/households/{householdSlug}/recipes/parse-from-url" : {
"post" : {
"tags" : [
"recipes" ,
"recipes"
] ,
"summary" : "Parse From Url" ,
"operationId" : "parse_from_url_api_v1_households__householdSlug__recipes_parse_from_url_post" ,
"parameters" : [
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ParseUrlIn"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-11-01 12:36:46 +00:00
"schema" : {
"$ref" : "#/components/schemas/RecipeCreate-Output"
}
2025-11-01 11:41:39 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
2025-11-01 12:36:46 +00:00
"/api/v1/households/{householdSlug}/ingredients/parse" : {
2025-11-01 11:58:44 +00:00
"get" : {
"tags" : [
2025-11-01 12:36:46 +00:00
"ingredients" ,
"ingredients"
2025-11-01 11:58:44 +00:00
] ,
2025-11-02 06:45:12 +00:00
"summary" : "Parse an ingredient line or lines from a string" ,
2025-11-01 12:36:46 +00:00
"operationId" : "parse_ingredient_api_v1_households__householdSlug__ingredients_parse_get" ,
2025-11-01 11:58:44 +00:00
"parameters" : [
{
2025-11-01 12:36:46 +00:00
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
} ,
2025-11-02 06:45:12 +00:00
{
"name" : "line" ,
"in" : "query" ,
"required" : false ,
"schema" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"description" : "Single ingredient line to parse" ,
"title" : "Line"
} ,
"description" : "Single ingredient line to parse"
} ,
2025-11-01 12:36:46 +00:00
{
"name" : "lines" ,
2025-11-01 11:58:44 +00:00
"in" : "query" ,
2025-11-02 06:45:12 +00:00
"required" : false ,
2025-11-01 11:58:44 +00:00
"schema" : {
2025-11-02 06:45:12 +00:00
"anyOf" : [
{
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
{
"type" : "null"
}
] ,
2025-11-01 12:36:46 +00:00
"description" : "Multiple ingredient lines to parse" ,
"title" : "Lines"
2025-11-01 11:58:44 +00:00
} ,
2025-11-01 12:36:46 +00:00
"description" : "Multiple ingredient lines to parse"
2025-11-01 11:58:44 +00:00
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-02 06:45:12 +00:00
"anyOf" : [
{
"$ref" : "#/components/schemas/Ingredient"
} ,
{
"type" : "array" ,
"items" : {
"$ref" : "#/components/schemas/Ingredient"
}
}
] ,
2025-11-01 12:36:46 +00:00
"title" : "Response Parse Ingredient Api V1 Households Householdslug Ingredients Parse Get"
2025-11-01 11:58:44 +00:00
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 12:36:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-11-01 11:58:44 +00:00
}
2025-11-01 12:36:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-11-01 11:58:44 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/meals/upcoming" : {
"get" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"meals" ,
2025-11-01 06:11:09 +00:00
"meals"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "List upcoming meals in a date range (scoped)" ,
"operationId" : "getUpcomingMealsV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
2025-10-18 05:44:36 +00:00
"in" : "path" ,
"required" : true ,
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
} ,
{
2025-11-01 05:18:46 +00:00
"name" : "from" ,
2025-10-18 05:44:36 +00:00
"in" : "query" ,
2025-11-01 05:18:46 +00:00
"required" : true ,
2025-10-18 05:44:36 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"format" : "date-time" ,
"title" : "From"
2025-10-18 05:44:36 +00:00
}
} ,
{
2025-11-01 05:18:46 +00:00
"name" : "to" ,
"in" : "query" ,
2025-10-18 05:44:36 +00:00
"required" : true ,
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"format" : "date-time" ,
"title" : "To"
2025-10-18 05:44:36 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-18 07:21:04 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "array" ,
"items" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealOut"
2025-11-01 05:18:46 +00:00
} ,
"title" : "Response Getupcomingmealsv2"
2025-10-18 07:21:04 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/meals/{meal_id}" : {
2025-10-18 05:44:36 +00:00
"get" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"meals" ,
2025-11-01 06:11:09 +00:00
"meals"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Get a meal by id (scoped)" ,
"operationId" : "getMealV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "meal_id" ,
2025-10-18 05:44:36 +00:00
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Meal Id"
}
} ,
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealOut"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"404" : {
"$ref" : "#/components/responses/Problem404"
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
} ,
"put" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"meals" ,
2025-11-01 06:11:09 +00:00
"meals"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Update an existing meal (scoped)" ,
"operationId" : "updateMealV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "meal_id" ,
"in" : "path" ,
2025-10-18 05:44:36 +00:00
"required" : true ,
"schema" : {
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Meal Id"
}
} ,
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealIn"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealOut"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
2025-10-19 13:12:16 +00:00
"400" : {
"$ref" : "#/components/responses/Problem400"
} ,
2025-11-01 05:18:46 +00:00
"404" : {
"$ref" : "#/components/responses/Problem404"
2025-10-19 13:12:16 +00:00
} ,
2025-10-18 05:44:36 +00:00
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-11-01 05:18:46 +00:00
} ,
"delete" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"meals" ,
2025-11-01 06:11:09 +00:00
"meals"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Delete a meal (scoped)" ,
"operationId" : "deleteMealV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "meal_id" ,
"in" : "path" ,
2025-10-18 05:44:36 +00:00
"required" : true ,
"schema" : {
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Meal Id"
}
} ,
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealOut"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
2025-11-01 05:18:46 +00:00
"404" : {
"$ref" : "#/components/responses/Problem404"
} ,
2025-10-18 05:44:36 +00:00
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-11-01 05:18:46 +00:00
}
} ,
"/api/v1/households/{householdSlug}/meals/{meal_id}/consumed" : {
2025-10-18 05:44:36 +00:00
"post" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"meals" ,
2025-11-01 06:11:09 +00:00
"meals"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Mark a meal as consumed (scoped)" ,
"operationId" : "markMealConsumedV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "meal_id" ,
"in" : "path" ,
2025-10-18 05:44:36 +00:00
"required" : true ,
"schema" : {
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Meal Id"
}
} ,
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"anyOf" : [
{
"$ref" : "#/components/schemas/MarkConsumedBody"
} ,
{
"type" : "null"
}
] ,
"title" : "Body"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealOut"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
2025-11-01 05:18:46 +00:00
"400" : {
"$ref" : "#/components/responses/Problem400"
} ,
"404" : {
"$ref" : "#/components/responses/Problem404"
} ,
2025-10-18 05:44:36 +00:00
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/meals" : {
2025-10-18 05:44:36 +00:00
"post" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"meals" ,
2025-11-01 06:11:09 +00:00
"meals"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Create a new meal (scoped)" ,
"operationId" : "createMealV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
"in" : "path" ,
2025-10-18 05:44:36 +00:00
"required" : true ,
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealIn"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-19 09:24:23 +00:00
"schema" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealOut"
2025-10-19 09:24:23 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
2025-11-01 05:18:46 +00:00
"400" : {
"$ref" : "#/components/responses/Problem400"
2025-10-18 05:44:36 +00:00
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/shopping/current" : {
"get" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"shopping" ,
2025-11-01 06:11:09 +00:00
"shopping"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Get the current aggregated shopping list (scoped)" ,
"operationId" : "getCurrentShoppingListV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
2025-10-18 05:44:36 +00:00
"in" : "path" ,
"required" : true ,
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"title" : "Householdslug"
2025-10-18 05:44:36 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-19 09:24:23 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/CurrentShoppingList"
2025-10-19 09:24:23 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/shopping/{list_id}" : {
2025-10-18 05:44:36 +00:00
"get" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"shopping" ,
2025-11-01 06:11:09 +00:00
"shopping"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Get a purchased shopping list by id (scoped)" ,
"operationId" : "getShoppingListV2" ,
2025-10-18 05:44:36 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "list_id" ,
"in" : "path" ,
"required" : true ,
2025-10-18 05:44:36 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "integer" ,
"title" : "List Id"
}
2025-10-18 05:44:36 +00:00
} ,
{
2025-11-01 05:18:46 +00:00
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
2025-10-18 05:44:36 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"type" : "string" ,
"title" : "Householdslug"
}
}
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/PurchasedShoppingList"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
}
} ,
"/api/v1/households/{householdSlug}/shopping" : {
2025-10-18 05:44:36 +00:00
"post" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"shopping" ,
2025-11-01 06:11:09 +00:00
"shopping"
2025-11-01 05:18:46 +00:00
] ,
"summary" : "Purchase ingredients for a shopping list (scoped)" ,
"operationId" : "purchaseIngredientsV2" ,
"parameters" : [
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
}
2025-10-18 05:44:36 +00:00
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/PurchaseListIn"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/PurchasedShoppingList"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/shopping/current/meals/me" : {
2025-10-18 05:44:36 +00:00
"post" : {
"tags" : [
2025-11-01 05:18:46 +00:00
"shopping" ,
2025-11-01 06:11:09 +00:00
"shopping"
2025-11-01 05:18:46 +00:00
] ,
"summary" : "Request a meal for shopping (scoped)" ,
"operationId" : "requestMealV2" ,
"parameters" : [
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
}
2025-10-18 05:44:36 +00:00
] ,
"requestBody" : {
2025-11-01 05:18:46 +00:00
"required" : true ,
2025-10-18 05:44:36 +00:00
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/MealIdWrapper"
2025-10-18 05:44:36 +00:00
}
}
2025-11-01 05:18:46 +00:00
}
2025-10-18 05:44:36 +00:00
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
2025-10-19 09:24:23 +00:00
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/RequestedMealItem"
2025-10-19 09:24:23 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-11-01 05:18:46 +00:00
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-10-18 05:44:36 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/api/v1/households/{householdSlug}/shopping/current/meals/{meal_id}" : {
"delete" : {
2025-10-18 05:44:36 +00:00
"tags" : [
2025-11-01 05:18:46 +00:00
"shopping" ,
2025-11-01 06:11:09 +00:00
"shopping"
2025-11-01 04:29:48 +00:00
] ,
2025-11-01 05:18:46 +00:00
"summary" : "Remove a meal request (scoped)" ,
"operationId" : "unrequestMealV2" ,
2025-11-01 04:29:48 +00:00
"parameters" : [
{
2025-11-01 05:18:46 +00:00
"name" : "meal_id" ,
"in" : "path" ,
2025-11-01 04:29:48 +00:00
"required" : true ,
"schema" : {
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Meal Id"
}
} ,
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
2025-11-01 04:29:48 +00:00
}
}
2025-10-18 05:44:36 +00:00
] ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/Ok"
2025-10-18 05:44:36 +00:00
}
}
}
} ,
"422" : {
2025-11-01 04:29:48 +00:00
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
2025-11-01 05:18:46 +00:00
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"security" : [
{
2025-11-01 05:18:46 +00:00
"bearerAuth" : [ ]
2025-10-18 07:21:04 +00:00
}
]
}
} ,
2025-11-01 07:16:38 +00:00
"/api/v1/households/{householdSlug}/shopping/current/ingredients" : {
"post" : {
"tags" : [
"shopping" ,
"shopping"
] ,
"summary" : "Request an ingredient for shopping (scoped)" ,
"operationId" : "requestIngredientV2" ,
"parameters" : [
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/IngredientIdWrapper"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ListIngredientItem"
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-11-01 11:41:39 +00:00
} ,
"delete" : {
"tags" : [
"shopping" ,
"shopping"
] ,
"summary" : "Remove an ingredient request (scoped)" ,
"description" : "Remove a personal ad-hoc ingredient request for the current user in this household.\n\nIdempotent: returns ok=true whether or not a row was actually deleted." ,
"operationId" : "unrequestIngredientV2" ,
"parameters" : [
{
"name" : "householdSlug" ,
"in" : "path" ,
"required" : true ,
"schema" : {
"type" : "string" ,
"title" : "Householdslug"
}
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/IngredientIdWrapper"
}
}
}
} ,
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Ok"
}
}
}
} ,
"422" : {
"description" : "Validation Error" ,
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HTTPValidationError"
}
}
}
} ,
"403" : {
"$ref" : "#/components/responses/Problem403"
}
} ,
"security" : [
{
"bearerAuth" : [ ]
}
]
2025-11-01 07:16:38 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"/healthz" : {
"get" : {
"summary" : "Healthz" ,
"operationId" : "healthz_healthz_get" ,
2025-11-01 02:44:00 +00:00
"responses" : {
"200" : {
"description" : "Successful Response" ,
"content" : {
"application/json" : {
"schema" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/HealthStatus"
2025-11-01 02:44:00 +00:00
}
}
}
}
}
}
2025-11-01 05:18:46 +00:00
}
} ,
"components" : {
"schemas" : {
2025-11-01 08:20:08 +00:00
"AcceptInvitationBody" : {
"properties" : {
"token" : {
"type" : "string" ,
"title" : "Token"
}
} ,
"type" : "object" ,
"required" : [
"token"
] ,
"title" : "AcceptInvitationBody"
} ,
"AcceptInvitationResponse" : {
"properties" : {
"status" : {
"type" : "string" ,
"title" : "Status" ,
"default" : "accepted"
} ,
"household" : {
"$ref" : "#/components/schemas/HouseholdResponse"
}
} ,
"type" : "object" ,
"required" : [
"household"
] ,
"title" : "AcceptInvitationResponse"
} ,
2025-11-01 05:18:46 +00:00
"CreateHouseholdBody" : {
"properties" : {
"name" : {
"type" : "string" ,
"title" : "Name"
2025-11-01 04:29:48 +00:00
}
} ,
2025-11-01 05:18:46 +00:00
"type" : "object" ,
"required" : [
"name"
2025-11-01 02:44:00 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "CreateHouseholdBody"
} ,
"CreateInvitationBody" : {
"properties" : {
"email" : {
"type" : "string" ,
"title" : "Email"
2025-11-01 04:03:27 +00:00
}
} ,
"type" : "object" ,
"required" : [
"email"
] ,
"title" : "CreateInvitationBody"
} ,
"CurrentShoppingList" : {
"properties" : {
"outstandingItems" : {
"items" : {
"$ref" : "#/components/schemas/ListIngredientItem"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Outstandingitems"
} ,
"requestedMeals" : {
"items" : {
"$ref" : "#/components/schemas/RequestedMealItem"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Requestedmeals"
} ,
"purchasedItems" : {
"items" : {
"$ref" : "#/components/schemas/ListIngredientItem"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Purchaseditems"
} ,
"ingredientsLookup" : {
"additionalProperties" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "object" ,
"title" : "Ingredientslookup"
} ,
"mealsLookup" : {
"additionalProperties" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/Meal"
2025-11-01 04:03:27 +00:00
} ,
"type" : "object" ,
"title" : "Mealslookup"
} ,
"shoppingListLookup" : {
"additionalProperties" : {
"$ref" : "#/components/schemas/ShoppingListOut"
} ,
"type" : "object" ,
"title" : "Shoppinglistlookup"
} ,
"recipesLookup" : {
"additionalProperties" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/Recipe"
2025-11-01 04:03:27 +00:00
} ,
"type" : "object" ,
"title" : "Recipeslookup"
}
} ,
"type" : "object" ,
"required" : [
"outstandingItems" ,
"requestedMeals" ,
"purchasedItems" ,
"ingredientsLookup" ,
"mealsLookup" ,
"shoppingListLookup" ,
"recipesLookup"
] ,
"title" : "CurrentShoppingList"
} ,
"HTTPValidationError" : {
"properties" : {
"detail" : {
"items" : {
"$ref" : "#/components/schemas/ValidationError"
} ,
"type" : "array" ,
"title" : "Detail"
}
} ,
"type" : "object" ,
"title" : "HTTPValidationError"
} ,
"HealthStatus" : {
"properties" : {
"status" : {
"type" : "string" ,
"title" : "Status" ,
"default" : "ok"
}
} ,
"type" : "object" ,
"title" : "HealthStatus"
} ,
2025-11-01 06:14:18 +00:00
"HouseholdMember" : {
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id"
} ,
"displayName" : {
"type" : "string" ,
"title" : "Displayname"
} ,
"role" : {
"type" : "string" ,
"title" : "Role"
}
} ,
"type" : "object" ,
"required" : [
"id" ,
"displayName" ,
"role"
] ,
"title" : "HouseholdMember"
} ,
2025-11-01 04:03:27 +00:00
"HouseholdResponse" : {
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id"
} ,
"name" : {
"type" : "string" ,
"title" : "Name"
} ,
"slug" : {
"type" : "string" ,
"title" : "Slug"
2025-11-01 02:44:00 +00:00
}
} ,
"type" : "object" ,
"required" : [
"id" ,
"name" ,
"slug"
] ,
"title" : "HouseholdResponse"
} ,
2025-10-18 05:44:36 +00:00
"Ingredient" : {
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
"name" : {
"type" : "string" ,
"title" : "Name"
} ,
"line" : {
"type" : "string" ,
"title" : "Line"
} ,
"unit" : {
"type" : "string" ,
"enum" : [
"Items" ,
"Litre" ,
"Gram" ,
"Cup" ,
"Tablespoon" ,
"Teaspoon" ,
"Ounce" ,
"Pound" ,
"Fluid Ounce" ,
"Pint" ,
"Quart" ,
"Gallon" ,
"Millilitre" ,
"Milligram" ,
"Kilogram"
] ,
"title" : "Unit" ,
"description" : "Measurement unit (enum values are advisory; runtime accepts any string)"
} ,
"quantity" : {
2025-10-19 09:24:23 +00:00
"type" : "number" ,
2025-10-18 05:44:36 +00:00
"title" : "Quantity"
} ,
"preparation" : {
"type" : "string" ,
"title" : "Preparation"
} ,
"productId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Productid"
} ,
"recipeId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Recipeid"
} ,
"mealId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Mealid"
} ,
"product" : {
"anyOf" : [
{
"$ref" : "#/components/schemas/Product"
} ,
{
"type" : "null"
}
]
}
} ,
"type" : "object" ,
"required" : [
"name" ,
"line" ,
"unit" ,
"quantity" ,
"preparation"
] ,
"title" : "Ingredient"
} ,
2025-11-01 07:16:38 +00:00
"IngredientIdWrapper" : {
"properties" : {
"ingredientId" : {
"type" : "integer" ,
"title" : "Ingredientid"
}
} ,
"type" : "object" ,
"required" : [
"ingredientId"
] ,
"title" : "IngredientIdWrapper"
} ,
2025-10-26 04:14:05 +00:00
"IngredientPurchaseItemIn" : {
"properties" : {
"ingredientId" : {
"type" : "integer" ,
"title" : "Ingredientid"
} ,
"personId" : {
"type" : "integer" ,
"title" : "Personid"
} ,
"createdDate" : {
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
] ,
"title" : "Createddate"
} ,
"mealId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Mealid"
} ,
"recipeId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Recipeid"
}
} ,
"type" : "object" ,
"required" : [
"ingredientId" ,
"personId"
] ,
"title" : "IngredientPurchaseItemIn"
} ,
2025-11-02 10:33:23 +00:00
"InviteLinkResponse" : {
2025-11-01 04:03:27 +00:00
"properties" : {
2025-11-02 10:33:23 +00:00
"invite_link" : {
2025-11-01 04:03:27 +00:00
"type" : "string" ,
2025-11-02 10:33:23 +00:00
"title" : "Invite Link"
2025-11-01 04:03:27 +00:00
}
} ,
"type" : "object" ,
"required" : [
2025-11-02 10:33:23 +00:00
"invite_link"
2025-11-01 04:03:27 +00:00
] ,
2025-11-02 10:33:23 +00:00
"title" : "InviteLinkResponse"
2025-11-01 04:03:27 +00:00
} ,
2025-10-26 04:14:05 +00:00
"ListIngredientItem" : {
"properties" : {
"kind" : {
"type" : "string" ,
"enum" : [
"ingredient"
] ,
"const" : "ingredient" ,
"title" : "Kind" ,
"default" : "ingredient"
} ,
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
"ingredientId" : {
"type" : "integer" ,
"title" : "Ingredientid"
} ,
"personId" : {
"type" : "integer" ,
"title" : "Personid"
} ,
"createdDate" : {
"type" : "string" ,
"format" : "date-time" ,
"title" : "Createddate"
} ,
"listId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Listid"
} ,
"mealId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Mealid"
} ,
"recipeId" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Recipeid"
}
} ,
"type" : "object" ,
"required" : [
"ingredientId" ,
"personId" ,
"createdDate"
] ,
"title" : "ListIngredientItem"
} ,
2025-11-01 05:18:46 +00:00
"LoginBody" : {
2025-10-18 05:44:36 +00:00
"properties" : {
2025-11-01 05:18:46 +00:00
"email" : {
2025-10-18 05:44:36 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Email"
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 05:18:46 +00:00
"password" : {
"type" : "string" ,
"title" : "Password"
}
} ,
"type" : "object" ,
"required" : [
"email" ,
"password"
] ,
"title" : "LoginBody"
} ,
"MarkConsumedBody" : {
"properties" : {
"consumedDate" : {
2025-10-18 05:44:36 +00:00
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
] ,
2025-11-01 05:18:46 +00:00
"title" : "Consumeddate"
2025-10-18 05:44:36 +00:00
}
} ,
"type" : "object" ,
2025-11-01 05:18:46 +00:00
"title" : "MarkConsumedBody"
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 05:58:34 +00:00
"Meal" : {
2025-10-18 05:44:36 +00:00
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
"suggestedDate" : {
"type" : "string" ,
"format" : "date-time" ,
"title" : "Suggesteddate"
} ,
"consumedDate" : {
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
] ,
"title" : "Consumeddate"
} ,
"chefs" : {
"items" : {
2025-11-01 08:58:33 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-10-18 05:44:36 +00:00
} ,
"type" : "array" ,
"title" : "Chefs"
} ,
"cleanup" : {
"items" : {
2025-11-01 08:58:33 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-10-18 05:44:36 +00:00
} ,
"type" : "array" ,
"title" : "Cleanup"
} ,
"consumers" : {
"items" : {
2025-11-01 08:58:33 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-10-18 05:44:36 +00:00
} ,
"type" : "array" ,
"title" : "Consumers"
} ,
"recipes" : {
"items" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealRecipe"
2025-10-18 05:44:36 +00:00
} ,
"type" : "array" ,
"title" : "Recipes"
} ,
"extraIngredients" : {
"items" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "array" ,
"title" : "Extraingredients"
} ,
"purchaseDate" : {
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
] ,
"title" : "Purchasedate"
}
} ,
"type" : "object" ,
"required" : [
"suggestedDate"
] ,
"title" : "Meal"
} ,
2025-11-01 05:58:34 +00:00
"MealIdWrapper" : {
"properties" : {
"mealId" : {
"type" : "integer" ,
"title" : "Mealid"
}
} ,
"type" : "object" ,
"required" : [
"mealId"
] ,
"title" : "MealIdWrapper"
} ,
"MealIn" : {
2025-11-01 01:21:12 +00:00
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
"suggestedDate" : {
"type" : "string" ,
"format" : "date-time" ,
"title" : "Suggesteddate"
} ,
"consumedDate" : {
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
] ,
"title" : "Consumeddate"
} ,
"chefs" : {
"items" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-11-01 01:21:12 +00:00
} ,
"type" : "array" ,
"title" : "Chefs"
} ,
"cleanup" : {
"items" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-11-01 01:21:12 +00:00
} ,
"type" : "array" ,
"title" : "Cleanup"
} ,
"consumers" : {
"items" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-11-01 01:21:12 +00:00
} ,
"type" : "array" ,
"title" : "Consumers"
} ,
"recipes" : {
"items" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/MealRecipeIn"
} ,
"type" : "array" ,
"title" : "Recipes" ,
"default" : [ ]
} ,
"extraIngredients" : {
"items" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "array" ,
"title" : "Extraingredients" ,
"default" : [ ]
}
} ,
"type" : "object" ,
"required" : [
"suggestedDate" ,
"chefs" ,
"cleanup" ,
"consumers"
] ,
"title" : "MealIn"
} ,
"MealOut" : {
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
"suggestedDate" : {
"type" : "string" ,
"format" : "date-time" ,
"title" : "Suggesteddate"
} ,
"consumedDate" : {
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
] ,
"title" : "Consumeddate"
} ,
"chefs" : {
"items" : {
"$ref" : "#/components/schemas/MemberRef"
} ,
"type" : "array" ,
"title" : "Chefs"
} ,
"cleanup" : {
"items" : {
"$ref" : "#/components/schemas/MemberRef"
} ,
"type" : "array" ,
"title" : "Cleanup"
} ,
"consumers" : {
"items" : {
"$ref" : "#/components/schemas/MemberRef"
} ,
"type" : "array" ,
"title" : "Consumers"
} ,
"recipes" : {
"items" : {
"$ref" : "#/components/schemas/MealRecipe"
2025-11-01 01:21:12 +00:00
} ,
"type" : "array" ,
"title" : "Recipes"
} ,
"extraIngredients" : {
"items" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "array" ,
"title" : "Extraingredients"
} ,
"purchaseDate" : {
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
] ,
"title" : "Purchasedate"
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:58:34 +00:00
"suggestedDate" ,
"chefs" ,
"cleanup" ,
"consumers" ,
"recipes" ,
"extraIngredients"
2025-11-01 01:21:12 +00:00
] ,
2025-11-01 05:58:34 +00:00
"title" : "MealOut"
2025-11-01 01:21:12 +00:00
} ,
2025-11-01 05:58:34 +00:00
"MealRecipe" : {
2025-10-18 05:44:36 +00:00
"properties" : {
"mealId" : {
"type" : "integer" ,
"title" : "Mealid"
} ,
"recipeId" : {
"type" : "integer" ,
"title" : "Recipeid"
} ,
"servings" : {
"type" : "number" ,
"title" : "Servings"
} ,
"recipe" : {
"anyOf" : [
{
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/Recipe"
2025-10-18 05:44:36 +00:00
} ,
{
"type" : "null"
}
]
}
} ,
"type" : "object" ,
"required" : [
"mealId" ,
"recipeId" ,
"servings"
] ,
"title" : "MealRecipe"
} ,
2025-11-01 05:58:34 +00:00
"MealRecipeIn" : {
2025-10-18 05:44:36 +00:00
"properties" : {
"mealId" : {
"type" : "integer" ,
"title" : "Mealid"
} ,
"recipeId" : {
"type" : "integer" ,
"title" : "Recipeid"
} ,
"servings" : {
"type" : "number" ,
"title" : "Servings"
}
} ,
"type" : "object" ,
"required" : [
"mealId" ,
"recipeId" ,
"servings"
] ,
2025-11-01 05:58:34 +00:00
"title" : "MealRecipeIn"
} ,
"MemberRef" : {
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id"
} ,
"displayName" : {
"type" : "string" ,
"title" : "Displayname"
}
} ,
"type" : "object" ,
"required" : [
"id" ,
"displayName"
] ,
"title" : "MemberRef"
2025-10-18 05:44:36 +00:00
} ,
2025-10-19 09:24:23 +00:00
"Ok" : {
"properties" : {
"ok" : {
"type" : "boolean" ,
"title" : "Ok" ,
"default" : true
}
} ,
"type" : "object" ,
"title" : "Ok"
} ,
2025-11-01 05:18:46 +00:00
"Page_RecipeOut_" : {
2025-10-18 05:44:36 +00:00
"properties" : {
"items" : {
"items" : {
2025-11-01 05:18:46 +00:00
"$ref" : "#/components/schemas/RecipeOut"
2025-10-18 05:44:36 +00:00
} ,
"type" : "array" ,
2025-11-01 01:21:12 +00:00
"minItems" : 0 ,
2025-10-18 05:44:36 +00:00
"title" : "Items"
} ,
"nextCursor" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"title" : "Nextcursor"
} ,
"prevCursor" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"title" : "Prevcursor"
} ,
"total" : {
2025-10-21 08:42:23 +00:00
"type" : "integer" ,
2025-10-18 05:44:36 +00:00
"title" : "Total" ,
2025-10-21 08:42:23 +00:00
"description" : "Total count" ,
"default" : 0
2025-10-18 05:44:36 +00:00
}
} ,
"type" : "object" ,
"required" : [
"items"
] ,
2025-11-01 05:18:46 +00:00
"title" : "Page[RecipeOut]"
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 11:41:39 +00:00
"ParseUrlIn" : {
"properties" : {
"url" : {
"type" : "string" ,
"title" : "Url"
}
} ,
"type" : "object" ,
"required" : [
"url"
] ,
"title" : "ParseUrlIn"
} ,
2025-10-18 05:44:36 +00:00
"ProblemDetails" : {
"properties" : {
"type" : {
"type" : "string" ,
"title" : "Type" ,
"default" : "about:blank"
} ,
"title" : {
"type" : "string" ,
"title" : "Title"
} ,
"status" : {
"type" : "integer" ,
"title" : "Status"
} ,
"detail" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"title" : "Detail"
} ,
"instance" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"title" : "Instance"
} ,
"errors" : {
"anyOf" : [
{
"type" : "object"
} ,
{
"type" : "null"
}
] ,
"title" : "Errors"
}
} ,
"type" : "object" ,
"required" : [
"title" ,
"status"
] ,
"title" : "ProblemDetails"
} ,
"Product" : {
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
"productId" : {
"type" : "string" ,
"title" : "Productid"
} ,
"shopCode" : {
"type" : "string" ,
"title" : "Shopcode"
} ,
"link" : {
"type" : "string" ,
"title" : "Link"
} ,
"name" : {
"type" : "string" ,
"title" : "Name"
} ,
"quantity" : {
"type" : "integer" ,
"title" : "Quantity"
} ,
"unit" : {
"type" : "string" ,
"title" : "Unit"
} ,
"imgSmall" : {
"type" : "string" ,
"title" : "Imgsmall"
} ,
"imgLarge" : {
"type" : "string" ,
"title" : "Imglarge"
}
} ,
"type" : "object" ,
"required" : [
"productId" ,
"shopCode" ,
"link" ,
"name" ,
"quantity" ,
"unit" ,
"imgSmall" ,
"imgLarge"
] ,
"title" : "Product"
} ,
2025-10-26 04:14:05 +00:00
"PurchaseListIn" : {
"properties" : {
"storeName" : {
2025-11-01 01:21:12 +00:00
"$ref" : "#/components/schemas/StoreNameOut"
2025-10-26 04:14:05 +00:00
} ,
"items" : {
"items" : {
"$ref" : "#/components/schemas/IngredientPurchaseItemIn"
} ,
"type" : "array" ,
"title" : "Items"
}
} ,
"type" : "object" ,
"required" : [
"storeName" ,
"items"
] ,
"title" : "PurchaseListIn"
} ,
2025-10-18 05:44:36 +00:00
"PurchasedShoppingList" : {
"properties" : {
"list" : {
2025-10-26 04:14:05 +00:00
"$ref" : "#/components/schemas/ShoppingListOut"
2025-10-18 05:44:36 +00:00
} ,
"mealsLookup" : {
"additionalProperties" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/Meal"
2025-10-18 05:44:36 +00:00
} ,
"type" : "object" ,
"title" : "Mealslookup"
} ,
"ingredientsLookup" : {
"additionalProperties" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "object" ,
"title" : "Ingredientslookup"
} ,
"recipesLookup" : {
"additionalProperties" : {
2025-11-01 05:58:34 +00:00
"$ref" : "#/components/schemas/Recipe"
2025-10-18 05:44:36 +00:00
} ,
"type" : "object" ,
"title" : "Recipeslookup"
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 01:21:12 +00:00
"list" ,
"mealsLookup" ,
"ingredientsLookup" ,
"recipesLookup"
2025-10-18 05:44:36 +00:00
] ,
"title" : "PurchasedShoppingList"
} ,
2025-11-01 05:58:34 +00:00
"Recipe" : {
2025-10-18 05:44:36 +00:00
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
"name" : {
"type" : "string" ,
"title" : "Name"
} ,
"link" : {
"type" : "string" ,
"title" : "Link"
} ,
"serves" : {
"type" : "integer" ,
"title" : "Serves"
} ,
"imageUrls" : {
"items" : {
"type" : "string"
} ,
"type" : "array" ,
"title" : "Imageurls"
} ,
"ingredients" : {
"items" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "array" ,
"title" : "Ingredients"
} ,
"basedOnRecipe" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Basedonrecipe"
} ,
"dateCreated" : {
"type" : "string" ,
"format" : "date-time" ,
"title" : "Datecreated"
} ,
"createdById" : {
2025-10-21 08:42:23 +00:00
"type" : "integer" ,
2025-10-18 05:44:36 +00:00
"title" : "Createdbyid"
} ,
"createdBy" : {
"anyOf" : [
{
2025-11-01 08:58:33 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-10-18 05:44:36 +00:00
} ,
{
"type" : "null"
2025-11-01 05:18:46 +00:00
}
]
} ,
"dateHidden" : {
"anyOf" : [
{
"type" : "string" ,
"format" : "date-time"
} ,
{
"type" : "null"
}
2025-11-01 04:03:27 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "Datehidden"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"hiddenById" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Hiddenbyid"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"hiddenBy" : {
2025-11-01 04:03:27 +00:00
"anyOf" : [
{
2025-11-01 08:58:33 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-11-01 04:03:27 +00:00
} ,
{
"type" : "null"
}
]
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:18:46 +00:00
"name" ,
"link" ,
"serves" ,
"createdById"
2025-11-01 04:03:27 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "Recipe"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 12:36:46 +00:00
"RecipeCreate-Input" : {
"properties" : {
"name" : {
"type" : "string" ,
"title" : "Name"
} ,
"link" : {
"type" : "string" ,
"title" : "Link"
} ,
"serves" : {
"type" : "integer" ,
"title" : "Serves"
} ,
"imageUrls" : {
"items" : {
"type" : "string"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Imageurls"
} ,
"ingredients" : {
"items" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Ingredients"
}
} ,
"type" : "object" ,
"required" : [
"name" ,
"link" ,
"serves" ,
"imageUrls" ,
"ingredients"
] ,
"title" : "RecipeCreate"
} ,
"RecipeCreate-Output" : {
2025-11-01 04:03:27 +00:00
"properties" : {
2025-11-01 05:18:46 +00:00
"name" : {
2025-11-01 04:03:27 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Name"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"link" : {
2025-11-01 04:03:27 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Link"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"serves" : {
"type" : "integer" ,
"title" : "Serves"
} ,
"imageUrls" : {
"items" : {
"type" : "string"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Imageurls"
} ,
"ingredients" : {
"items" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Ingredients"
2025-11-01 04:03:27 +00:00
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:18:46 +00:00
"name" ,
"link" ,
"serves" ,
"imageUrls" ,
"ingredients"
2025-11-01 04:03:27 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "RecipeCreate"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"RecipeOut" : {
2025-11-01 04:03:27 +00:00
"properties" : {
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
2025-11-01 05:18:46 +00:00
"name" : {
2025-11-01 04:03:27 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Name"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"link" : {
2025-11-01 04:03:27 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Link"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"serves" : {
"type" : "integer" ,
"title" : "Serves"
} ,
"imageUrls" : {
2025-11-01 04:03:27 +00:00
"items" : {
2025-11-01 05:18:46 +00:00
"type" : "string"
2025-11-01 04:03:27 +00:00
} ,
"type" : "array" ,
2025-11-01 05:18:46 +00:00
"minItems" : 0 ,
"title" : "Imageurls"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"ingredients" : {
"items" : {
"$ref" : "#/components/schemas/Ingredient"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Ingredients"
2025-11-01 06:50:33 +00:00
} ,
"createdById" : {
"type" : "integer" ,
"title" : "Createdbyid"
} ,
"createdBy" : {
"anyOf" : [
{
"$ref" : "#/components/schemas/MemberRef"
} ,
{
"type" : "null"
}
]
2025-11-01 07:16:38 +00:00
} ,
"hiddenById" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"title" : "Hiddenbyid"
} ,
"hiddenBy" : {
"anyOf" : [
{
"$ref" : "#/components/schemas/MemberRef"
} ,
{
"type" : "null"
}
]
2025-11-01 04:03:27 +00:00
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:18:46 +00:00
"name" ,
"link" ,
"serves" ,
"imageUrls" ,
2025-11-01 06:50:33 +00:00
"ingredients" ,
"createdById"
2025-11-01 04:03:27 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "RecipeOut"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"RefreshResponse" : {
2025-11-01 04:03:27 +00:00
"properties" : {
2025-11-01 05:18:46 +00:00
"accessToken" : {
2025-11-01 04:03:27 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Accesstoken"
} ,
"tokenType" : {
2025-11-01 04:03:27 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Tokentype" ,
"default" : "bearer"
2025-11-01 04:03:27 +00:00
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:18:46 +00:00
"accessToken"
2025-11-01 04:03:27 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "RefreshResponse"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"RegisterBody" : {
2025-11-01 04:03:27 +00:00
"properties" : {
"email" : {
"type" : "string" ,
"title" : "Email"
} ,
"password" : {
"type" : "string" ,
"title" : "Password"
2025-11-01 05:18:46 +00:00
} ,
"displayName" : {
"type" : "string" ,
"title" : "Displayname"
2025-11-01 04:03:27 +00:00
}
} ,
"type" : "object" ,
"required" : [
"email" ,
2025-11-01 05:18:46 +00:00
"password" ,
"displayName"
2025-11-01 04:03:27 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "RegisterBody"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"RequestedMealItem" : {
2025-11-01 04:03:27 +00:00
"properties" : {
2025-11-01 05:18:46 +00:00
"kind" : {
"type" : "string" ,
"enum" : [
"requestedMeal"
] ,
"const" : "requestedMeal" ,
"title" : "Kind" ,
"default" : "requestedMeal"
} ,
2025-11-01 04:03:27 +00:00
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
} ,
2025-11-01 05:18:46 +00:00
"personId" : {
2025-11-01 04:03:27 +00:00
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Personid"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"mealId" : {
"type" : "integer" ,
"title" : "Mealid"
} ,
"createdDate" : {
2025-11-01 01:21:12 +00:00
"type" : "string" ,
2025-11-01 04:03:27 +00:00
"format" : "date-time" ,
2025-11-01 05:18:46 +00:00
"title" : "Createddate"
}
} ,
"type" : "object" ,
"required" : [
"personId" ,
"mealId" ,
"createdDate"
] ,
"title" : "RequestedMealItem"
} ,
"ShoppingListOut" : {
"properties" : {
"id" : {
2025-10-18 05:44:36 +00:00
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Id"
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 05:18:46 +00:00
"createdDate" : {
"type" : "string" ,
"format" : "date-time" ,
"title" : "Createddate"
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 05:18:46 +00:00
"storeName" : {
"type" : "string" ,
"enum" : [
"woolworths" ,
"coles" ,
"home"
2025-11-01 04:03:27 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "Storename"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"purchasedById" : {
"type" : "integer" ,
"title" : "Purchasedbyid"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"purchasedBy" : {
2025-11-01 04:03:27 +00:00
"anyOf" : [
{
2025-11-01 06:53:07 +00:00
"$ref" : "#/components/schemas/MemberRef"
2025-11-01 04:03:27 +00:00
} ,
{
"type" : "null"
}
]
2025-11-01 05:18:46 +00:00
} ,
"items" : {
"items" : {
"$ref" : "#/components/schemas/ListIngredientItem"
} ,
"type" : "array" ,
"minItems" : 0 ,
"title" : "Items"
2025-10-18 05:44:36 +00:00
}
} ,
"type" : "object" ,
2025-10-26 04:14:05 +00:00
"required" : [
2025-11-01 05:18:46 +00:00
"id" ,
"createdDate" ,
"storeName" ,
"purchasedById" ,
"items"
2025-10-18 05:44:36 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "ShoppingListOut"
} ,
"StoreEnum" : {
"type" : "string" ,
"enum" : [
"woolworths" ,
"coles" ,
""
] ,
"title" : "StoreEnum"
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 05:18:46 +00:00
"TokenResponse" : {
2025-11-01 02:44:00 +00:00
"properties" : {
2025-11-01 05:18:46 +00:00
"accessToken" : {
2025-11-01 02:44:00 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Accesstoken"
2025-11-01 02:44:00 +00:00
} ,
2025-11-01 05:18:46 +00:00
"tokenType" : {
2025-11-01 02:44:00 +00:00
"type" : "string" ,
2025-11-01 05:18:46 +00:00
"title" : "Tokentype" ,
"default" : "bearer"
2025-11-01 04:03:27 +00:00
} ,
2025-11-01 05:18:46 +00:00
"user" : {
"$ref" : "#/components/schemas/User"
2025-11-01 02:44:00 +00:00
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:18:46 +00:00
"accessToken" ,
"user"
2025-11-01 02:44:00 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "TokenResponse"
2025-11-01 02:44:00 +00:00
} ,
2025-11-01 05:18:46 +00:00
"User" : {
2025-11-01 02:44:00 +00:00
"properties" : {
2025-11-01 05:18:46 +00:00
"id" : {
"type" : "integer" ,
"title" : "Id" ,
"default" : -1
2025-11-01 02:44:00 +00:00
} ,
2025-11-01 05:18:46 +00:00
"email" : {
"type" : "string" ,
"title" : "Email"
2025-11-01 02:44:00 +00:00
} ,
2025-11-01 05:18:46 +00:00
"displayName" : {
"type" : "string" ,
"title" : "Displayname"
} ,
"profilePhotoUrl" : {
2025-11-01 02:44:00 +00:00
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
2025-11-01 05:18:46 +00:00
"title" : "Profilephotourl"
2025-11-01 02:44:00 +00:00
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:18:46 +00:00
"email" ,
"displayName"
2025-11-01 02:44:00 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "User"
2025-11-01 02:44:00 +00:00
} ,
2025-11-01 05:18:46 +00:00
"ValidationError" : {
2025-10-18 05:44:36 +00:00
"properties" : {
2025-11-01 05:18:46 +00:00
"loc" : {
2025-10-18 05:44:36 +00:00
"items" : {
2025-11-01 05:18:46 +00:00
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "integer"
}
]
2025-10-18 05:44:36 +00:00
} ,
"type" : "array" ,
2025-11-01 05:18:46 +00:00
"title" : "Location"
2025-10-18 05:44:36 +00:00
} ,
2025-11-01 05:18:46 +00:00
"msg" : {
"type" : "string" ,
"title" : "Message"
2025-11-01 02:44:00 +00:00
} ,
2025-11-01 05:18:46 +00:00
"type" : {
"type" : "string" ,
"title" : "Error Type"
}
} ,
"type" : "object" ,
"required" : [
"loc" ,
"msg" ,
"type"
] ,
"title" : "ValidationError"
} ,
"WhoAmI" : {
"properties" : {
"householdId" : {
2025-11-01 04:03:27 +00:00
"type" : "integer" ,
2025-11-01 05:18:46 +00:00
"title" : "Householdid"
} ,
"householdSlug" : {
"type" : "string" ,
"title" : "Householdslug"
2025-11-01 02:44:00 +00:00
}
} ,
"type" : "object" ,
"required" : [
2025-11-01 05:18:46 +00:00
"householdId" ,
"householdSlug"
2025-11-01 02:44:00 +00:00
] ,
2025-11-01 05:18:46 +00:00
"title" : "WhoAmI"
2025-11-01 02:44:00 +00:00
} ,
2025-11-01 01:21:12 +00:00
"StoreNameOut" : {
"type" : "string" ,
"enum" : [
"woolworths" ,
"coles" ,
"home"
] ,
"title" : "StoreNameOut"
2025-10-18 05:44:36 +00:00
}
} ,
"responses" : {
"Problem400" : {
"description" : "Bad Request" ,
"content" : {
"application/problem+json" : { } ,
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ProblemDetails"
}
}
}
} ,
"Problem404" : {
"description" : "Not Found" ,
"content" : {
"application/problem+json" : { } ,
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ProblemDetails"
}
}
}
} ,
"Problem422" : {
"description" : "Validation Error" ,
"content" : {
"application/problem+json" : {
"schema" : {
"$ref" : "#/components/schemas/ProblemDetails"
}
} ,
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ProblemDetails"
}
}
}
2025-11-01 04:03:27 +00:00
} ,
"Problem403" : {
"description" : "Forbidden" ,
"content" : {
"application/problem+json" : { } ,
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ProblemDetails"
}
}
}
2025-10-18 05:44:36 +00:00
}
2025-10-18 07:21:04 +00:00
} ,
"securitySchemes" : {
2025-11-01 04:03:27 +00:00
"bearerAuth" : {
"type" : "http" ,
"scheme" : "bearer" ,
"bearerFormat" : "JWT" ,
"description" : "JWT access token in Authorization header"
2025-10-18 07:21:04 +00:00
}
2025-10-18 05:44:36 +00:00
}
}
2025-11-01 11:35:10 +00:00
}