Skip to main content
Official client libraries are available for five languages. Every SDK wraps the same REST endpoints, sends your API key automatically, and returns the same envelope shape as the raw API.
New — the JavaScript SDK is the most complete and the one we build against first. Start there if you are unsure which to pick.

JavaScript

Node.js 18+ and modern browsers. ESM and TypeScript types included.

Python

Python 3.9+. No third-party dependencies.

PHP

PHP 8.0+. PSR-18 compatible, Composer package.

C#

.NET 6+. Inject your own HttpClient for full control.

Go

Go 1.21+. Single module, zero dependencies.

Install


Quick start

Every SDK is initialized with your API key. The base URL defaults to the production endpoint, so the only required value is the key.

Authentication

The only thing you need to configure is your API key. It is sent on every request as the x-api-key header, and the SDKs do not expose any other header configuration — there is nothing else for a caller to set.
Multi-tenancy headers are injected by the API gateway on your behalf. You never pass them, and no SDK option accepts them.
Keep the key out of source control. Read it from the environment in every language:

Response shape

Every endpoint returns the same envelope, and every SDK unwraps it into one consistent result object. See Response format for the raw structure. By default an API error is a normal return value, not an exception. Set throw_on_error to raise instead:
The Go SDK’s ThrowOnError panics rather than returning an error, and the panic value is a plain string — recover with defer/recover if you enable it.

Resources

The names below are the same across all five SDKs. Method names differ only in capitalisation convention. The JS and Go SDKs are generated from the OpenAPI spec and cover the full surface, including AI conversation, meta and tags. The Python, PHP and C# SDKs expose the resources above; for anything outside them, call through raw.

Configuration

In the PHP SDK timeoutMs defaults to 0, which means no timeout. Set it explicitly in production.

Retry and rate limits

None of the SDKs retry automatically. A 429 is returned as a normal error result, so you can inspect retry-after and back off yourself:
429 details are only available where the SDK exposes response headers — the JavaScript SDK’s error.headers. Elsewhere, use a fixed backoff.

Support

Need something not covered here? Open a ticket with the operation you called, your SDK version, and the request ID from the response headers.

Dashboard

Manage API keys and inspect usage.

Support

Reach the engineering team.