SDKs & tools
The Syntic API speaks the widely used chat completions format over plain HTTPS. That means you can call it from almost any language today, either with a client library you may already use or with a few lines of HTTP code.
Choose a route
| Route | Best for | Page |
|---|---|---|
| OpenAI-compatible client library | Application code in Python, JavaScript/TypeScript and other languages with a mature chat completions client. Change the base URL and key, keep the rest. | OpenAI-compatible clients |
| Direct HTTP | Languages without such a library, minimal dependencies, or full control over streaming and errors. | Direct HTTP |
| Generated client | Teams that standardise on OpenAPI tooling. | OpenAPI description |
| Syntic Code | An AI coding agent in your terminal, using the same models and your Syntic account. | Syntic Code (CLI) |
What every route needs
Whichever you pick, three settings do the work:
Base URL https://app.syntic.ai/v1
API key sk_live_... (Console → Settings → API Keys)
Model Amara S1.2 (or another name from the models list)Keep the key in an environment variable. The examples in these docs read it from SYNTIC_API_KEY.
Official Syntic SDKs
Syntic does not publish its own client libraries yet. The OpenAI-compatible route is the supported way to call the API from code until it does, and the Direct HTTP page shows complete, dependency-light examples.
Official libraries are being built. Their pages describe the planned design and are marked as previews:
| Library | Package | Page |
|---|---|---|
| Python SDK | syntic on PyPI | Python SDK |
| TypeScript SDK | @syntic/sdk on npm | TypeScript SDK |
| Go, Java, C#, Ruby, PHP | Generated from the OpenAPI description | Other languages |
| API command line | syntic api in Syntic Code | API command line |
| Agent SDK | syntic-agents, @syntic/agents | Agent SDK |
Behaviour to plan for
These hold no matter which client you use:
- Streaming is on by default. Set
stream: falsewhen you want one JSON object. - Errors are flat. The body is
{"error": "<code>", ...}with a string code, which some libraries do not unpack. See Error codes. - Sampling settings are ignored.
temperature,top_p,nand the penalties have no effect. - One endpoint. Only chat completions exists. Calls a library makes to other endpoints (model lists, embeddings, files) do not work.
- Unknown model names fall back. Today a misspelt model name is answered by the default model, not rejected. Not live yet — on develop: it is rejected with
404 model_not_found.
OpenAPI description
A machine-readable OpenAPI 3.0 file is served at https://app.syntic.ai/api/openapi. See OpenAPI description for how to use it and where it differs from the live API.