SDKs & toolsAll languages compared

Clients for other languages

⚠️
Preview — this feature is being built; the design below is the spec.

After the Python and TypeScript SDKs, Syntic will publish official clients for the other common backend languages. They are generated from the same OpenAPI description, so every endpoint and field appears in every language on the same day, and they share the same behaviour: retries with back-off, typed errors from the error envelope, automatic pagination and streaming helpers.

Today use Direct HTTP or an OpenAI-compatible client in these languages. Both keep working after the official clients ship.

Packages and order of release

LanguagePackageMinimum runtimeRelease order
Gogithub.com/syntic-ai/syntic-goGo 1.22First
Java (and Kotlin)ai.syntic:syntic-java on Maven CentralJava 11First
C# / .NETSyntic on NuGet.NET 8Second
Rubysyntic gemRuby 3.1Second
PHPsyntic/syntic-php on PackagistPHP 8.1Second

What every client does

BehaviourDetail
ConfigurationReads SYNTIC_API_KEY and SYNTIC_BASE_URL; default base URL https://app.syntic.ai/v1.
VersioningSends the syntic-version the release was built for; accepts syntic-beta flags.
Retries2 retries by default on rate_limit, overloaded, api_error and network errors, with jitter, honouring retry-after.
ErrorsOne error type per envelope type, each exposing code, message, param, details and request_id.
StreamingAn iterator or channel of typed events; tool-call fragments joined.
PaginationAn iterator that follows after_id / before_id automatically.
Raw accessResponse headers available on every call.
IdempotencyGenerates an Idempotency-Key for create calls and reuses it on retry.

The same request in each language

curl -sS https://app.syntic.ai/v1/chat/completions \
  -H "Authorization: Bearer $SYNTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "Amara Quick", "stream": false,
       "messages": [{"role": "user", "content": "Say hello in French."}]}'

Support policy

  • Each client follows semantic versioning and moves to a new major version when the default syntic-version changes.
  • Bugs that affect correctness are fixed in all languages within the same release cycle.
  • Language versions are supported until their upstream end of life.

Build notes for the platform team

  • Generation is cheap; examples, tests and support are the real cost. Ship Go and Java first, then the rest when there is demand.
  • Each repository gets a smoke test in CI that calls a staging environment with every operation tagged in the OpenAPI file.
  • Generated code is checked in and reviewed; hand-written helpers live in separate files the generator never overwrites.
Was this page helpful?