Call Synderesis from your server.
Create a customer API key in Account, then send JSON to https://www.synderesis.eu/v1. Keep the key on a trusted server. Do not put it in browser JavaScript, a mobile app bundle, or a public repository.
Authentication
Send exactly one of these headers with Content-Type: application/json:
Authorization: Bearer <SYNDERESIS_API_KEY>
X-API-Key: <SYNDERESIS_API_KEY>
The plaintext key is shown once when you create it. After that, Account lists only the prefix, status and limits. All keys on an account share one allowance. You can keep up to ten active customer or extension keys.
Models
Use synderesis-spark for everyday answers or synderesis-pro for deeper reasoning. Omitting model on chat completions defaults to Spark. List the public aliases with GET /v1/models.
Answers
POST /v1/answers is the product answer endpoint. Pass a question. Official-source retrieval is on unless you set retrieve_sources to false.
curl https://www.synderesis.eu/v1/answers \
-H "Authorization: Bearer $SYNDERESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "Why must AI systems respect human dignity?",
"model": "synderesis-spark",
"max_tokens": 320
}'
The frontend-safe text is answer. Parsed citations and qualifications are under structured_answer. Usage tokens are returned without internal supplier-cost fields.
Chat completions
POST /v1/chat/completions accepts an OpenAI-compatible messages array:
curl https://www.synderesis.eu/v1/chat/completions \
-H "X-API-Key: $SYNDERESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "synderesis-spark",
"messages": [{"role": "user", "content": "Give a short answer about human dignity."}],
"max_tokens": 320
}'
Source search and usage
GET /v1/sources/search?query=…&limit=6orPOST /v1/sources/searchwith JSONqueryand optionallimit(1–20) andsource_ids.GET /v1/usagereturns account-wide usage for the current period.
Errors and metering
400 invalid_request— missing or invalid fields.401— missing or invalid API key.402— the one-time free allocation is exhausted; subscribe from Account.429— the account quota for the period is exceeded.503— the service is temporarily unavailable.
Accepted and advisory answers are metered. Withheld or failed generations are not billed as delivered answers. Create keys and review usage in Account. Pricing is on the pricing page.