Skip to main content

RecipeSage API (1.0.0)

Download OpenAPI specification:Download

Public REST surface generated from RecipeSage's tRPC router. Procedures are grouped by tRPC sub-router (tag).

discover

Browse and search the public discover recipe catalog

Request Body schema: application/json
required
searchTerm
string <= 255 characters
languages
Array of strings <= 20 items [ items <= 35 characters ]
categories
Array of strings <= 20 items [ items <= 255 characters ]
matchAllCategories
boolean
minRating
number [ 0 .. 5 ]
minRatingCount
integer [ 0 .. 9007199254740991 ]
photo
string
Default: "optional"
Enum: "optional" "required" "none"
sortBy
string
Default: "trending"
Enum: "trending" "newest" "topRated" "mostSaved"
offset
integer [ 0 .. 10000 ]
Default: 0
limit
integer [ 1 .. 100 ]
Default: 40

Responses

Request samples

Content type
application/json
{
  • "searchTerm": "string",
  • "languages": [
    ],
  • "categories": [
    ],
  • "matchAllCategories": true,
  • "minRating": 5,
  • "minRatingCount": 9007199254740991,
  • "photo": "optional",
  • "sortBy": "trending",
  • "offset": 0,
  • "limit": 40
}

Response samples

Content type
application/json
{
  • "recipes": [
    ]
}

Get a single public discover recipe by id

query Parameters
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "language": "string",
  • "categories": [
    ],
  • "approvalState": "PENDING",
  • "ratingAverage": 0,
  • "ratingCount": -9007199254740991,
  • "saveCount": -9007199254740991,
  • "createdAt": "string",
  • "modifiedAt": "string",
  • "author": {
    },
  • "discoverRecipeImages": [
    ],
  • "nutritionServingSize": "string",
  • "nutritionCalories": 0,
  • "nutritionTotalFat": 0,
  • "nutritionSaturatedFat": 0,
  • "nutritionTransFat": 0,
  • "nutritionPolyunsaturatedFat": 0,
  • "nutritionMonounsaturatedFat": 0,
  • "nutritionCholesterol": 0,
  • "nutritionSodium": 0,
  • "nutritionTotalCarbs": 0,
  • "nutritionDietaryFiber": 0,
  • "nutritionTotalSugars": 0,
  • "nutritionAddedSugars": 0,
  • "nutritionProtein": 0,
  • "nutritionVitaminD": 0,
  • "nutritionCalcium": 0,
  • "nutritionIron": 0,
  • "nutritionPotassium": 0,
  • "nutritionOtherDetails": "string",
  • "yield": "string",
  • "activeTime": "string",
  • "totalTime": "string",
  • "ingredients": "string",
  • "instructions": "string",
  • "notes": "string",
  • "myRating": -9007199254740991,
  • "isSaved": true,
  • "linkedRecipes": [
    ]
}

List an author's published discover recipes

query Parameters
authorId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
offset
integer [ 0 .. 10000 ]
Default: 0
limit
integer [ 1 .. 100 ]
Default: 40

Responses

Response samples

Content type
application/json
{
  • "recipes": [
    ]
}

Publish one of your recipes to the public discover catalog

Authorizations:
Authorization
Request Body schema: application/json
required
recipeId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
object
language
required
string [ 1 .. 35 ] characters
imageIds
required
Array of strings <uuid> <= 10 items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
linkedDiscoverRecipeIds
required
Array of strings <uuid> <= 25 items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
agreedToTos
required
boolean
Value: true

Responses

Request samples

Content type
application/json
{
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1",
  • "content": {
    },
  • "language": "string",
  • "imageIds": [
    ],
  • "linkedDiscoverRecipeIds": [
    ],
  • "agreedToTos": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Edit one of your published discover recipes

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
object
language
required
string [ 1 .. 35 ] characters
imageIds
required
Array of strings <uuid> <= 10 items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
linkedDiscoverRecipeIds
required
Array of strings <uuid> <= 25 items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "content": {
    },
  • "language": "string",
  • "imageIds": [
    ],
  • "linkedDiscoverRecipeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Remove one of your recipes from the public discover catalog

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Rate a discover recipe (0 clears your rating)

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
rating
required
integer [ 0 .. 5 ]

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "rating": 5
}

Response samples

Content type
application/json
{
  • "ratingAverage": 0,
  • "ratingCount": -9007199254740991,
  • "myRating": -9007199254740991
}

Save a discover recipe into your own collection

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
string [ 1 .. 255 ] characters

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string"
}

Response samples

Content type
application/json
{
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1"
}

Report a discover recipe for moderator review

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
reason
required
string [ 5 .. 2000 ] characters

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "reported": true
}

labelGroups

Create a label group

Authorizations:
Authorization
Request Body schema: application/json
required
title
required
string [ 1 .. 254 ] characters
labelIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
warnWhenNotPresent
required
boolean

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "labelIds": [
    ],
  • "warnWhenNotPresent": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "title": "string",
  • "warnWhenNotPresent": true,
  • "createdAt": "string",
  • "updatedAt": "string",
  • "labels": [
    ]
}

Get all of the caller's label groups

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update a label group

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
required
string [ 1 .. 254 ] characters
labelIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
warnWhenNotPresent
required
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "labelIds": [
    ],
  • "warnWhenNotPresent": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "title": "string",
  • "warnWhenNotPresent": true,
  • "createdAt": "string",
  • "updatedAt": "string",
  • "labels": [
    ]
}

Delete a label group

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> [ 1 .. 100 ] characters ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "title": "string",
  • "warnWhenNotPresent": true,
  • "createdAt": "string",
  • "updatedAt": "string",
  • "labels": [
    ]
}

labels

Create a label

Authorizations:
Authorization
Request Body schema: application/json
required
title
required
string [ 1 .. 100 ] characters
required
string or null

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "labelGroupId": "b768885f-08b2-4ff7-b6f5-33edda42e319"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "title": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "labelGroupId": "b768885f-08b2-4ff7-b6f5-33edda42e319",
  • "labelGroup": {
    },
  • "_count": {
    }
}

Delete a label

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
includeAttachedRecipes
boolean

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "includeAttachedRecipes": true
}

Response samples

Content type
application/json
"string"

Delete multiple labels

Authorizations:
Authorization
Request Body schema: application/json
required
ids
required
Array of strings <uuid> [ 1 .. 100 ] items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
includeAttachedRecipes
boolean

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "includeAttachedRecipes": true
}

Response samples

Content type
application/json
"string"

Get all labels visible to the caller (own and friends')

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a label by title

Authorizations:
Authorization
query Parameters
title
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "title": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "labelGroupId": "b768885f-08b2-4ff7-b6f5-33edda42e319",
  • "labelGroup": {
    },
  • "_count": {
    }
}

Get all of the caller's labels

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get labels visible to the caller for the given user ids

query Parameters
userIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Merge a source label into a target label

Authorizations:
Authorization
Request Body schema: application/json
required
sourceId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
targetId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2",
  • "targetId": "cbca1126-180e-4334-9df8-cf82289d378b"
}

Response samples

Content type
application/json
"string"

Update a label

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
string [ 1 .. 100 ] characters
string or null

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "labelGroupId": "b768885f-08b2-4ff7-b6f5-33edda42e319"
}

Response samples

Content type
application/json
"string"

Create or update a label

Authorizations:
Authorization
Request Body schema: application/json
required
title
required
string [ 1 .. 100 ] characters
string or null

The label group to assign this label to. Null for no group, undefined to leave unchanged if-exists

required
Array of strings or null

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "labelGroupId": "b768885f-08b2-4ff7-b6f5-33edda42e319",
  • "addToRecipeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "title": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "labelGroupId": "b768885f-08b2-4ff7-b6f5-33edda42e319",
  • "labelGroup": {
    },
  • "_count": {
    }
}

recipes

Create a recipe

Authorizations:
Authorization
Request Body schema: application/json
required
title
required
string [ 1 .. 254 ] characters
description
required
string
yield
required
string
activeTime
required
string
totalTime
required
string
source
required
string
url
required
string
notes
required
string
ingredients
required
string
instructions
required
string
required
number or null
required
"main" (string) or "inbox" (string)
labelIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
imageIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
string or null
linkedRecipeIds
Array of strings <uuid> <= 100 items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
string or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
string or null

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "yield": "string",
  • "activeTime": "string",
  • "totalTime": "string",
  • "source": "string",
  • "url": "string",
  • "notes": "string",
  • "ingredients": "string",
  • "instructions": "string",
  • "rating": 1,
  • "folder": "main",
  • "labelIds": [
    ],
  • "imageIds": [
    ],
  • "lastMadeAt": "string",
  • "linkedRecipeIds": [
    ],
  • "nutritionServingSize": "string",
  • "nutritionCalories": 0,
  • "nutritionTotalFat": 0,
  • "nutritionSaturatedFat": 0,
  • "nutritionTransFat": 0,
  • "nutritionPolyunsaturatedFat": 0,
  • "nutritionMonounsaturatedFat": 0,
  • "nutritionCholesterol": 0,
  • "nutritionSodium": 0,
  • "nutritionTotalCarbs": 0,
  • "nutritionDietaryFiber": 0,
  • "nutritionTotalSugars": 0,
  • "nutritionAddedSugars": 0,
  • "nutritionProtein": 0,
  • "nutritionVitaminD": 0,
  • "nutritionCalcium": 0,
  • "nutritionIron": 0,
  • "nutritionPotassium": 0,
  • "nutritionOtherDetails": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Fetch a single recipe by id

Authorizations:
Authorization
query Parameters
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "fromUserId": "1dace4d0-98e4-4ab4-97cf-c23ae5cef503",
  • "title": "string",
  • "description": "string",
  • "yield": "string",
  • "activeTime": "string",
  • "totalTime": "string",
  • "source": "string",
  • "url": "string",
  • "folder": "string",
  • "ingredients": "string",
  • "instructions": "string",
  • "notes": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "lastMadeAt": "string",
  • "rating": -9007199254740991,
  • "nutritionServingSize": "string",
  • "nutritionCalories": 0,
  • "nutritionTotalFat": 0,
  • "nutritionSaturatedFat": 0,
  • "nutritionTransFat": 0,
  • "nutritionPolyunsaturatedFat": 0,
  • "nutritionMonounsaturatedFat": 0,
  • "nutritionCholesterol": 0,
  • "nutritionSodium": 0,
  • "nutritionTotalCarbs": 0,
  • "nutritionDietaryFiber": 0,
  • "nutritionTotalSugars": 0,
  • "nutritionAddedSugars": 0,
  • "nutritionProtein": 0,
  • "nutritionVitaminD": 0,
  • "nutritionCalcium": 0,
  • "nutritionIron": 0,
  • "nutritionPotassium": 0,
  • "nutritionOtherDetails": "string",
  • "recipeLabels": [
    ],
  • "recipeImages": [
    ],
  • "recipeLinks": [
    ],
  • "fromUser": {
    },
  • "user": {
    }
}

Count the caller's recipes within a folder

Authorizations:
Authorization
query Parameters
folder
string
Enum: "main" "inbox"

Responses

Response samples

Content type
application/json
{
  • "count": -9007199254740991
}

Update a recipe

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
required
string [ 1 .. 254 ] characters
description
required
string
yield
required
string
activeTime
required
string
totalTime
required
string
source
required
string
url
required
string
notes
required
string
ingredients
required
string
instructions
required
string
required
number or null
required
"main" (string) or "inbox" (string)
labelIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
imageIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
string or null
linkedRecipeIds
Array of strings <uuid> <= 100 items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
string or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
number or null
string or null

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "description": "string",
  • "yield": "string",
  • "activeTime": "string",
  • "totalTime": "string",
  • "source": "string",
  • "url": "string",
  • "notes": "string",
  • "ingredients": "string",
  • "instructions": "string",
  • "rating": 1,
  • "folder": "main",
  • "labelIds": [
    ],
  • "imageIds": [
    ],
  • "lastMadeAt": "string",
  • "linkedRecipeIds": [
    ],
  • "nutritionServingSize": "string",
  • "nutritionCalories": 0,
  • "nutritionTotalFat": 0,
  • "nutritionSaturatedFat": 0,
  • "nutritionTransFat": 0,
  • "nutritionPolyunsaturatedFat": 0,
  • "nutritionMonounsaturatedFat": 0,
  • "nutritionCholesterol": 0,
  • "nutritionSodium": 0,
  • "nutritionTotalCarbs": 0,
  • "nutritionDietaryFiber": 0,
  • "nutritionTotalSugars": 0,
  • "nutritionAddedSugars": 0,
  • "nutritionProtein": 0,
  • "nutritionVitaminD": 0,
  • "nutritionCalcium": 0,
  • "nutritionIron": 0,
  • "nutritionPotassium": 0,
  • "nutritionOtherDetails": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Delete a recipe

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Response samples

Content type
application/json
"string"

Delete multiple recipes by id

Authorizations:
Authorization
Request Body schema: application/json
required
ids
required
Array of strings <uuid> non-empty [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
"string"

Delete every recipe that has at least one of the given labels

Authorizations:
Authorization
Request Body schema: application/json
required
labelIds
required
Array of strings <uuid> non-empty [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Request samples

Content type
application/json
{
  • "labelIds": [
    ]
}

Response samples

Content type
application/json
"string"

Delete all recipes belonging to the caller

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
"string"

List recipes for one or more users with filters and paging

Callable without authentication when userIds is provided. Responds 401 if neither userIds nor a session token is supplied.

Request Body schema: application/json
required
userIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
folder
required
string
Enum: "main" "inbox"
orderBy
required
string
Enum: "title" "createdAt" "updatedAt" "lastMadeAt"
orderDirection
required
string
Enum: "asc" "desc"
offset
required
number >= 0
limit
required
number [ 1 .. 200 ]
recipeIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
labels
Array of strings
labelIntersection
boolean
includeAllFriends
boolean
Array of integers or null
object

Responses

Request samples

Content type
application/json
{
  • "userIds": [
    ],
  • "folder": "main",
  • "orderBy": "title",
  • "orderDirection": "asc",
  • "offset": 0,
  • "limit": 1,
  • "recipeIds": [
    ],
  • "labels": [
    ],
  • "labelIntersection": true,
  • "includeAllFriends": true,
  • "ratings": [
    ],
  • "nutritionFilter": {
    }
}

Response samples

Content type
application/json
{
  • "recipes": [
    ],
  • "totalCount": -9007199254740991
}

Fetch up to 100 recipes by id

Authorizations:
Authorization
query Parameters
ids
required
Array of strings <uuid> <= 100 items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List ids and updatedAt of every recipe visible to the caller

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List visible recipes as [id, updatedAt epoch ms] tuples for sync

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Full-text search over recipes

Request Body schema: application/json
required
searchTerm
required
string [ 1 .. 255 ] characters
userIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
folder
required
string
Enum: "main" "inbox"
labels
Array of strings
labelIntersection
boolean
includeAllFriends
boolean
Array of integers or null
object

Responses

Request samples

Content type
application/json
{
  • "searchTerm": "string",
  • "userIds": [
    ],
  • "folder": "main",
  • "labels": [
    ],
  • "labelIntersection": true,
  • "includeAllFriends": true,
  • "ratings": [
    ],
  • "nutritionFilter": {
    }
}

Response samples

Content type
application/json
{
  • "recipes": [
    ],
  • "totalCount": -9007199254740991
}

Search recipes ranked by how many of the provided ingredients they contain

Request Body schema: application/json
required
ingredients
required
Array of strings [ 1 .. 30 ] items [ items [ 1 .. 255 ] characters ]
userIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
includeAllFriends
boolean

Responses

Request samples

Content type
application/json
{
  • "ingredients": [
    ],
  • "userIds": [
    ],
  • "includeAllFriends": true
}

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Find the caller's recipes that look similar to the supplied ones

Authorizations:
Authorization
query Parameters
recipeIds
required
Array of strings <uuid> non-empty [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find the caller's recipes that match a title exactly

Authorizations:
Authorization
query Parameters
title
required
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find the caller's recipes that match a source URL exactly

Authorizations:
Authorization
query Parameters
url
required
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Suggest a non-conflicting title for a new recipe (e.g. 'Spaghetti (2)')

Authorizations:
Authorization
query Parameters
ignoreIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
title
required
string non-empty

Responses

Response samples

Content type
application/json
"string"

mealPlans

Create a meal plan

Authorizations:
Authorization
Request Body schema: application/json
required
title
required
string [ 1 .. 254 ] characters
collaboratorUserIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
string or null

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "collaboratorUserIds": [
    ],
  • "customMealOptions": "string"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Create a single meal plan item (deprecated)

Authorizations:
Authorization
Request Body schema: application/json
required
mealPlanId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
required
string [ 1 .. 254 ] characters
scheduledDate
required
string^\d{4}-\d{2}-\d{2}$
meal
required
string [ 1 .. 254 ] characters
required
string or null
notes
string <= 10000 characters

Responses

Request samples

Content type
application/json
{
  • "mealPlanId": "aa4c792a-336f-412f-985e-eeef1181f3a8",
  • "title": "string",
  • "scheduledDate": "string",
  • "meal": "string",
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Create multiple meal plan items

Authorizations:
Authorization
Request Body schema: application/json
required
mealPlanId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
Array of objects [ 1 .. 1000 ] items
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "mealPlanId": "aa4c792a-336f-412f-985e-eeef1181f3a8",
  • "items": [
    ],
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Delete a meal plan

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Delete a single meal plan item (deprecated)

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Delete multiple meal plan items

Authorizations:
Authorization
Request Body schema: application/json
required
mealPlanId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
ids
required
Array of strings <uuid> [ 1 .. 1000 ] items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "mealPlanId": "aa4c792a-336f-412f-985e-eeef1181f3a8",
  • "ids": [
    ],
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Detach the caller as a collaborator from a meal plan

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Get a single meal plan by id

Authorizations:
Authorization
query Parameters
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "user": {
    },
  • "collaboratorUsers": [
    ],
  • "title": "string",
  • "customMealOptions": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "_count": {
    }
}

Get the items belonging to a meal plan

Authorizations:
Authorization
query Parameters
mealPlanId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the caller's meal plans (without items)

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the caller's meal plans, including recent items

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update a meal plan

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
string [ 1 .. 254 ] characters
collaboratorUserIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
string or null

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "collaboratorUserIds": [
    ],
  • "customMealOptions": "string"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Update a single meal plan item (deprecated)

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
required
string [ 1 .. 254 ] characters
scheduledDate
required
string^\d{4}-\d{2}-\d{2}$
meal
required
string [ 1 .. 254 ] characters
required
string or null
notes
string <= 10000 characters

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "scheduledDate": "string",
  • "meal": "string",
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Update multiple meal plan items

Authorizations:
Authorization
Request Body schema: application/json
required
mealPlanId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
Array of objects [ 1 .. 100 ] items
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "mealPlanId": "aa4c792a-336f-412f-985e-eeef1181f3a8",
  • "items": [
    ],
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Create or update multiple meal plan items via id-keyed upsert

Authorizations:
Authorization
Request Body schema: application/json
required
mealPlanId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
Array of objects [ 1 .. 100 ] items

Responses

Request samples

Content type
application/json
{
  • "mealPlanId": "aa4c792a-336f-412f-985e-eeef1181f3a8",
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

shoppingLists

Create a shopping list

Authorizations:
Authorization
Request Body schema: application/json
required
title
required
string [ 1 .. 254 ] characters
collaboratorUserIds
required
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "collaboratorUserIds": [
    ]
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Create a single shopping list item (deprecated)

Authorizations:
Authorization
Request Body schema: application/json
required
shoppingListId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
required
string [ 1 .. 254 ] characters
required
string or null
completed
boolean
categoryTitle
string non-empty

Responses

Request samples

Content type
application/json
{
  • "shoppingListId": "7dc44ca0-9d2a-4e9f-8b8d-05307025c33d",
  • "title": "string",
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1",
  • "completed": true,
  • "categoryTitle": "string"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Create multiple shopping list items

Authorizations:
Authorization
Request Body schema: application/json
required
shoppingListId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
Array of objects [ 1 .. 1000 ] items
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "shoppingListId": "7dc44ca0-9d2a-4e9f-8b8d-05307025c33d",
  • "items": [
    ],
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Delete a shopping list

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Delete a single shopping list item (deprecated)

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Delete multiple shopping list items

Authorizations:
Authorization
Request Body schema: application/json
required
shoppingListId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
ids
required
Array of strings <uuid> [ 1 .. 1000 ] items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "shoppingListId": "7dc44ca0-9d2a-4e9f-8b8d-05307025c33d",
  • "ids": [
    ],
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Detach the caller as a collaborator from a shopping list

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Get a single shopping list by id

Authorizations:
Authorization
query Parameters
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "user": {
    },
  • "collaboratorUsers": [
    ],
  • "title": "string",
  • "categoryOrder": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "_count": {
    }
}

Get the items belonging to a shopping list

Authorizations:
Authorization
query Parameters
shoppingListId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the caller's shopping lists (without items)

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the caller's shopping lists, including items

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update a shopping list

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
string [ 1 .. 254 ] characters
collaboratorUserIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]
string or null

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "collaboratorUserIds": [
    ],
  • "categoryOrder": "string"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Update a single shopping list item (deprecated)

Authorizations:
Authorization
Request Body schema: application/json
required
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
title
string [ 1 .. 254 ] characters
string or null
completed
boolean
categoryTitle
string non-empty

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "title": "string",
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1",
  • "completed": true,
  • "categoryTitle": "string"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a",
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Update multiple shopping list items

Authorizations:
Authorization
Request Body schema: application/json
required
shoppingListId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
Array of objects [ 1 .. 100 ] items
reference
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "shoppingListId": "7dc44ca0-9d2a-4e9f-8b8d-05307025c33d",
  • "items": [
    ],
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

Create or update multiple shopping list items via id-keyed upsert

Authorizations:
Authorization
Request Body schema: application/json
required
shoppingListId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
required
Array of objects [ 1 .. 100 ] items

Responses

Request samples

Content type
application/json
{
  • "shoppingListId": "7dc44ca0-9d2a-4e9f-8b8d-05307025c33d",
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "reference": "2ddb20b8-e0e3-45ae-a638-42610b990a6a"
}

assistant

Send a message to the assistant and process the response

Authorizations:
Authorization
query Parameters
content
required
string <= 1500 characters

Responses

Response samples

Content type
application/json
"string"

Get the caller's assistant chat history

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

users

Get the caller's user profile and subscription info

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "handle": "string",
  • "enableProfile": true,
  • "profileImages": [
    ],
  • "email": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "subscriptions": [
    ]
}

Get aggregate stats for the caller's account

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
{
  • "recipeCount": -9007199254740991,
  • "recipeImageCount": -9007199254740991,
  • "messageCount": -9007199254740991,
  • "createdAt": "string",
  • "lastLogin": "string"
}

Get the caller's enabled subscription capabilities

Responses

Response samples

Content type
application/json
{
  • "highResImages": true,
  • "multipleImages": true,
  • "expandablePreviews": true,
  • "assistantMoreMessages": true,
  • "moreUsageCredits": true,
  • "discoverPublish": true
}

Get the caller's daily credit usage

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
{
  • "used": -9007199254740991,
  • "limit": -9007199254740991,
  • "resetsAt": "string"
}

Get the caller's friends, plus pending incoming and outgoing friend requests

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
{
  • "friends": [
    ],
  • "incomingRequests": [
    ],
  • "outgoingRequests": [
    ]
}

Look up a user profile by email address

Authorizations:
Authorization
query Parameters
email
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "handle": "string",
  • "enableProfile": true,
  • "profileImages": [
    ]
}

Look up a user profile by public handle

query Parameters
handle
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "handle": "string",
  • "enableProfile": true,
  • "profileImages": [
    ]
}

Get the showcased profile items for a user, filtered by what the caller is allowed to see

query Parameters
userId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Look up user profiles by id

query Parameters
ids
required
Array of strings <uuid> [ 1 .. 100 ] items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Check whether a profile handle is available to be claimed

Authorizations:
Authorization
query Parameters
handle
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "available": true
}

Create a friendship from the caller to another user, accepting an incoming request if one exists

Authorizations:
Authorization
Request Body schema: application/json
required
friendId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "friendId": "4bd6e55f-1d02-40eb-85a5-4e8b566403a4"
}

Response samples

Content type
application/json
"string"

Remove the friendship between the caller and another user in both directions

Authorizations:
Authorization
Request Body schema: application/json
required
friendId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "friendId": "4bd6e55f-1d02-40eb-85a5-4e8b566403a4"
}

Response samples

Content type
application/json
"string"

Update the caller's public profile, showcased items, and profile images

Authorizations:
Authorization
Request Body schema: application/json
required
name
string [ 1 .. 254 ] characters
handle
string [ 1 .. 255 ] characters
enableProfile
boolean
Array of objects
profileImageIds
Array of strings <uuid> [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "handle": "string",
  • "enableProfile": true,
  • "profileItems": [
    ],
  • "profileImageIds": [
    ]
}

Response samples

Content type
application/json
"string"

Update the caller's stored app preferences

Authorizations:
Authorization
Request Body schema: application/json
required
preferencesVersion
number >= 0
global.enableSplitPane
boolean
string or null
global.fontSize
string
Enum: "1rem" "14px" "16px" "18px" "20px" "22px" "24px"
global.theme
string
Enum: "default" "light" "dark" "black" "midnight"
global.preferencesSync
string
Enum: "enabled" "disabled"
global.startPage
string
Enum: "myRecipes" "manageLabels" "mealPlans" "shoppingLists"
global.offlineModePrompt
string
Enum: "ask" "never"
myRecipes.enableLabelIntersection
boolean
myRecipes.showLabels
boolean
myRecipes.showLabelChips
boolean
myRecipes.showImages
boolean
myRecipes.showSource
boolean
myRecipes.showRecipeDescription
boolean
myRecipes.showRating
boolean
myRecipes.viewType
string
Enum: "tiles" "list" "compact"
myRecipes.sortBy
string
Enum: "title" "-createdAt" "createdAt" "-updatedAt" "updatedAt" "-lastMadeAt" "lastMadeAt"
myRecipes.includeFriends
string
Enum: "yes" "no" "search" "browse"
recipeDetails.enableWakeLock
boolean
recipeDetails.autoExpandNutrition
boolean
cookMode.fontSize
string
Enum: "1rem" "14px" "16px" "18px" "20px" "22px" "24px"
manageLabels.showCreatedAt
boolean
measurementConverter.enabledUnits
Array of strings
MealPlan.showAddedBy
boolean
MealPlan.showAddedOn
boolean
MealPlan.startOfWeek
string
Enum: "monday" "sunday"
MealPlan.viewType
string
Enum: "calendar" "list"
ShoppingList.sortBy
string
Enum: "title" "-title" "createdAt" "-createdAt"
ShoppingList.showAddedBy
boolean
ShoppingList.showAddedOn
boolean
ShoppingList.showRecipeTitle
boolean
ShoppingList.preferDelete
boolean
ShoppingList.groupSimilar
boolean
ShoppingList.groupCategories
boolean
ShoppingList.ignoreItemTitles
string <= 5000 characters

Responses

Request samples

Content type
application/json
{
  • "preferencesVersion": 0,
  • "global.enableSplitPane": true,
  • "global.language": "en-us",
  • "global.fontSize": "1rem",
  • "global.theme": "default",
  • "global.preferencesSync": "enabled",
  • "global.startPage": "myRecipes",
  • "global.offlineModePrompt": "ask",
  • "myRecipes.enableLabelIntersection": true,
  • "myRecipes.showLabels": true,
  • "myRecipes.showLabelChips": true,
  • "myRecipes.showImages": true,
  • "myRecipes.showSource": true,
  • "myRecipes.showRecipeDescription": true,
  • "myRecipes.showRating": true,
  • "myRecipes.viewType": "tiles",
  • "myRecipes.sortBy": "title",
  • "myRecipes.includeFriends": "yes",
  • "recipeDetails.enableWakeLock": true,
  • "recipeDetails.autoExpandNutrition": true,
  • "cookMode.fontSize": "1rem",
  • "manageLabels.showCreatedAt": true,
  • "measurementConverter.enabledUnits": [
    ],
  • "MealPlan.showAddedBy": true,
  • "MealPlan.showAddedOn": true,
  • "MealPlan.startOfWeek": "monday",
  • "MealPlan.viewType": "calendar",
  • "ShoppingList.sortBy": "title",
  • "ShoppingList.showAddedBy": true,
  • "ShoppingList.showAddedOn": true,
  • "ShoppingList.showRecipeTitle": true,
  • "ShoppingList.preferDelete": true,
  • "ShoppingList.groupSimilar": true,
  • "ShoppingList.groupCategories": true,
  • "ShoppingList.ignoreItemTitles": "string"
}

Response samples

Content type
application/json
"string"

Get the caller's stored app preferences

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
null

Authenticate with a Google ID token and receive a session token

Request Body schema: application/json
required
clientId
string
credential
required
string
allowRegistration
boolean
Default: true

Responses

Request samples

Content type
application/json
{
  • "clientId": "string",
  • "credential": "string",
  • "allowRegistration": true
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "email": "string"
}

Exchange a desktop Google auth code for a session token

Requires no session token. Responds 401 if the supplied auth code has an invalid signature or has expired.

Request Body schema: application/json
required
code
required
string

Responses

Request samples

Content type
application/json
{
  • "code": "string"
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "email": "string"
}

Authenticate with email and password and receive a session token

Request Body schema: application/json
required
email
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "email": "string"
}

Invalidate the caller's current session

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
"string"

Create a new account with email and password

Request Body schema: application/json
required
name
required
string [ 1 .. 254 ] characters
email
required
string <email> [ 1 .. 254 ] characters ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z...
password
required
string [ 6 .. 1000 ] characters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "email": "string"
}

Register a Firebase Cloud Messaging token for the caller

Authorizations:
Authorization
Request Body schema: application/json
required
fcmToken
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "fcmToken": "string"
}

Response samples

Content type
application/json
"string"

Remove a Firebase Cloud Messaging token for the caller

Authorizations:
Authorization
Request Body schema: application/json
required
fcmToken
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "fcmToken": "string"
}

Response samples

Content type
application/json
"string"

Send a password-reset email to the given address

Request Body schema: application/json
required
email
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Response samples

Content type
application/json
"string"

Delete the caller's account and all associated data

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
"string"

Update the caller's name, email, and/or password

Authorizations:
Authorization
Request Body schema: application/json
required
name
string [ 1 .. 254 ] characters
email
string <email> [ 1 .. 254 ] characters ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z...
password
string [ 6 .. 1000 ] characters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "email": "user@example.com",
  • "password": "string"
}

Response samples

Content type
application/json
"string"

Validate the caller's bearer token

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
"string"

ml

Recognize a recipe from one or more images using OCR

Authorizations:
Authorization
Request Body schema: multipart/form-data
required
file
required
Array of strings <binary> [ items <binary > ]

Responses

Response samples

Content type
application/json
{
  • "recipe": {
    },
  • "labels": [
    ],
  • "images": [
    ]
}

Recognize a recipe from a PDF file

Authorizations:
Authorization
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "recipe": {
    },
  • "labels": [
    ],
  • "images": [
    ]
}

Extract a recipe from a block of text

Authorizations:
Authorization
Request Body schema: application/json
required
text
required
string [ 1 .. 10000 ] characters

Responses

Request samples

Content type
application/json
{
  • "text": "string"
}

Response samples

Content type
application/json
{
  • "recipe": {
    },
  • "labels": [
    ],
  • "images": [
    ]
}

Extract nutrition information from a block of text

Authorizations:
Authorization
Request Body schema: application/json
required
text
required
string [ 1 .. 10000 ] characters

Responses

Request samples

Content type
application/json
{
  • "text": "string"
}

Response samples

Content type
application/json
{
  • "servingSize": "string",
  • "calories": 0,
  • "totalFat": 0,
  • "saturatedFat": 0,
  • "transFat": 0,
  • "polyunsaturatedFat": 0,
  • "monounsaturatedFat": 0,
  • "cholesterol": 0,
  • "sodium": 0,
  • "totalCarbs": 0,
  • "dietaryFiber": 0,
  • "totalSugars": 0,
  • "addedSugars": 0,
  • "protein": 0,
  • "vitaminD": 0,
  • "calcium": 0,
  • "iron": 0,
  • "potassium": 0
}

Recognize a recipe from an uploaded document

Authorizations:
Authorization
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "recipe": {
    },
  • "labels": [
    ],
  • "images": [
    ]
}

jobs

Get all of the caller's jobs

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a single job by id

Authorizations:
Authorization
query Parameters
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "CREATE",
  • "type": "COOKBOOK",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "resultCode": -9007199254740991,
  • "progress": -9007199254740991,
  • "meta": {
    },
  • "createdAt": "string",
  • "updatedAt": "string"
}

Get a signed download URL for the result of an export job

Authorizations:
Authorization
query Parameters
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
{
  • "signedUrl": "string"
}

Get a signed download URL for the result of a job

Authorizations:
Authorization
query Parameters
id
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Response samples

Content type
application/json
{
  • "signedUrl": "string"
}

Start an export job

Authorizations:
Authorization
Request Body schema: application/json
required
required
"txt" (string) or "pdf" (string) or "jsonld" (string)
recipeIds
Array of strings <uuid> [ 1 .. 5000 ] items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Request samples

Content type
application/json
{
  • "format": "txt",
  • "recipeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}

Start a cookbook PDF generation job

Authorizations:
Authorization
Request Body schema: application/json
required
title
required
string [ 1 .. 1000 ] characters
subtitle
string <= 1000 characters
introduction
string <= 50000 characters
author
string <= 1000 characters
includeToc
required
boolean
includeImages
required
boolean
includeLabels
required
boolean
recipeIds
required
Array of strings <uuid> [ 1 .. 1000 ] items [^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...]

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "subtitle": "string",
  • "introduction": "string",
  • "author": "string",
  • "includeToc": true,
  • "includeImages": true,
  • "includeLabels": true,
  • "recipeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39"
}

images

Download an image from a URL and store it as a recipe image

Authorizations:
Authorization
Request Body schema: application/json
required
url
required
string [ 1 .. 4096 ] characters

Responses

Request samples

Content type
application/json
{
  • "url": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "location": "string"
}

messages

Send a message to another user, optionally sharing a recipe

Authorizations:
Authorization
Request Body schema: application/json
required
to
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
body
string
recipeId
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...

Responses

Request samples

Content type
application/json
{
  • "to": "4a3e8739-e3a9-4b51-9b6f-406b6818a828",
  • "body": "string",
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "body": "string",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "fromUserId": "1dace4d0-98e4-4ab4-97cf-c23ae5cef503",
  • "toUserId": "6b24f439-a350-415b-8542-30ae3827c522",
  • "recipeId": "31545f76-b27f-4c7c-9faf-229771396df1",
  • "originalRecipeId": "af58040c-c887-4561-9d54-f4bd62d753d8",
  • "recipe": {
    },
  • "originalRecipe": {
    }
}

Get a conversation with another user and its messages

Authorizations:
Authorization
query Parameters
userId
required
string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA...
messageLimit
integer [ 1 .. 500 ]

Responses

Response samples

Content type
application/json
{
  • "messageThread": {
    },
  • "messages": [
    ]
}

List the current user's message threads grouped by other user

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
[
  • {
    }
]

clip

Clip a recipe from a URL

Authorizations:
Authorization
query Parameters
url
string

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "yield": "string",
  • "activeTime": "string",
  • "totalTime": "string",
  • "source": "string",
  • "url": "string",
  • "notes": "string",
  • "ingredients": "string",
  • "instructions": "string",
  • "folder": "string",
  • "rating": 0,
  • "lastMadeAt": "string",
  • "nutritionInfo": "string",
  • "nutritionServingSize": "string",
  • "nutritionCalories": 0,
  • "nutritionTotalFat": 0,
  • "nutritionSaturatedFat": 0,
  • "nutritionTransFat": 0,
  • "nutritionPolyunsaturatedFat": 0,
  • "nutritionMonounsaturatedFat": 0,
  • "nutritionCholesterol": 0,
  • "nutritionSodium": 0,
  • "nutritionTotalCarbs": 0,
  • "nutritionDietaryFiber": 0,
  • "nutritionTotalSugars": 0,
  • "nutritionAddedSugars": 0,
  • "nutritionProtein": 0,
  • "nutritionVitaminD": 0,
  • "nutritionCalcium": 0,
  • "nutritionIron": 0,
  • "nutritionPotassium": 0,
  • "nutritionOtherDetails": "string",
  • "imageURL": "string"
}

Clip a recipe from a URL or raw HTML

Authorizations:
Authorization
Request Body schema: application/json
required
url
string
html
string

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "html": "string"
}

Response samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "yield": "string",
  • "activeTime": "string",
  • "totalTime": "string",
  • "source": "string",
  • "url": "string",
  • "notes": "string",
  • "ingredients": "string",
  • "instructions": "string",
  • "folder": "string",
  • "rating": 0,
  • "lastMadeAt": "string",
  • "nutritionInfo": "string",
  • "nutritionServingSize": "string",
  • "nutritionCalories": 0,
  • "nutritionTotalFat": 0,
  • "nutritionSaturatedFat": 0,
  • "nutritionTransFat": 0,
  • "nutritionPolyunsaturatedFat": 0,
  • "nutritionMonounsaturatedFat": 0,
  • "nutritionCholesterol": 0,
  • "nutritionSodium": 0,
  • "nutritionTotalCarbs": 0,
  • "nutritionDietaryFiber": 0,
  • "nutritionTotalSugars": 0,
  • "nutritionAddedSugars": 0,
  • "nutritionProtein": 0,
  • "nutritionVitaminD": 0,
  • "nutritionCalcium": 0,
  • "nutritionIron": 0,
  • "nutritionPotassium": 0,
  • "nutritionOtherDetails": "string",
  • "imageURL": "string"
}

import

Import recipes from plain text files

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a CopyMeThat export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Cookmate export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Living Cookbook FDXZ export

Authorizations:
Authorization
query Parameters
required
"true" (string) or "false" (string)
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a JSON-LD file

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Living Cookbook export

Authorizations:
Authorization
query Parameters
required
"true" (string) or "false" (string)
required
"true" (string) or "false" (string)
required
"true" (string) or "false" (string)
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Paprika export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Pepperplate account

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: application/json
required
username
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string"
}

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Recipe Keeper export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a list of URLs

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: application/json
required
urls
required
Array of strings [ 1 .. 5000 ] items

Responses

Request samples

Content type
application/json
{
  • "urls": [
    ]
}

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a CSV file

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from PDF files

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from images

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from an Evernote ENEX export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Mela export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a Crouton export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Import recipes from a CookBookManager.com export

Authorizations:
Authorization
query Parameters
labels
string
Request Body schema: multipart/form-data
required
file
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "jobId": "string"
}