Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Syndigo Natural API
version: '2026-10-12'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-12: 3 operation(s) read from 3 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Syndigo has published no machine-readable contract that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 2
documentation: 1
pages-with-code: 2
pages-read: 3
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-12'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://docx.syndigo.com/developers/docs/natural-language-for-nutrients
- https://docx.syndigo.com/developers/docs/api-authentication
- https://docx.syndigo.com/developers/docs/api-authentication-1
servers:
- url: https://api.uat.syndigo.com
security:
- apiKey: []
tags:
- name: Natural
paths:
/v2/natural/nutrients:
post:
operationId: post_v2_natural_nutrients
tags:
- Natural
summary: Use this API to get detailed nutrient breakdown of any natural language text
description: Returns detailed nutrient breakdown in JSON format.
x-source: https://docx.syndigo.com/developers/docs/natural-language-for-nutrients
parameters:
- name: query
in: query
required: true
schema:
type: string
description: Query to be executed against.
- name: num_servings
in: query
required: false
schema:
type: string
description: The number of servings this dish yields. The nutrients when this food is logged will be divided by this number.
- name: aggregate
in: query
required: false
schema:
type: string
description: string
- name: line_delimited
in: query
required: false
schema:
type: string
description: If present, it expects only 1 food per line and will return an array of rules broken if there are any.
- name: use_raw_foods
in: query
required: false
schema:
type: string
description: Allows parsing of uncooked variants.
- name: include_subrecipe
in: query
required: false
schema:
type: string
description: If present, will return the recipe composition of the requested food (if exists).
- name: timezone
in: query
required: false
schema:
type: string
description: The timezone in which to parse relative time queries like "yesterday I ate x".
- name: consumed_at
in: query
required: false
schema:
type: string
description: ISO 8601 compliant date format. Will overwrite any interpreted time contexts.
- name: use_branded_foods
in: query
required: false
schema:
type: string
description: Toggle interpretation of branded foods.
- name: taxonomy
in: query
required: false
schema:
type: string
description: Whether to include taxonomy node id in the response.
- name: ingredient_statement
in: query
required: false
schema:
type: string
description: Whether to include nf_ingredient_statement.
- name: last_modified
in: query
required: false
schema:
type: string
description: Whether to include the last_modified date.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV2NaturalNutrientsRequest'
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV2NaturalNutrientsResponse'
x-evidence:
kind: documentation
components:
schemas:
PostV2NaturalNutrientsRequest:
type: object
properties:
query:
type: string
description: Natural language text describing the food.
required:
- query
PostV2NaturalNutrientsResponse:
type: object
properties:
foods:
type: array
description: Array of food objects with nutrient details.
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization