Clients
The Sybilion API is plain HTTP/JSON. Pick the client that fits your stack:
| Client | Install | Best for |
|---|---|---|
| Using curl | already on your machine | Shell scripts, prototypes, CI checks, debugging. |
| Python SDK | pip install sybilion | Python apps; comes with wait_forecast and pagination iterators. |
| Go SDK | go get go.sybilion.dev/sybilion@latest | Go services; ergonomic WaitForecast and error-unwrap helpers. |
| Java SDK | dev.sybilion:sybilion on Maven Central | JVM services; forecasts().waitUntilSettled and callback-based pagination. |
| TypeScript SDK | npm install @sybilion/sdk | Node services; waitForecast and async-generator pagination. |
All clients hit the same endpoints with the same Bearer token. Feature pages in the Features section show every use case in all five, side by side, so you can compare and switch tracks at any time.
Auth & base URL
- Pass your Bearer token (an API key
sk_ops_…or a dashboard session token) into the client constructor or as theAuthorization: Bearer …header. TypeScript is the one exception: its constructor does not fall back toSYBILION_API_TOKENon its own — read the token from the environment yourself and pass it in explicitly. - The default API origin is
https://api.sybilion.dev. Override per-process with theSYBILION_API_BASE_URLenvironment variable, or per-call via the constructor'sbase_url(Python) /Options.BaseURL(Go) /Options.baseUrl()(Java) /baseUrl(TypeScript) / by substituting the URL (curl).
See Authentication for token types and where to get them.
Picking a client
- Just exploring or scripting? Using curl is enough — auth, pagination, polling, and artifact downloads in plain shell.
- Production Python? Python SDK — typed models, validation errors as exceptions, polling helpers.
- Production Go? Go SDK — context-aware polling, custom HTTP client injection, generated models.
- JVM / Java? Java SDK —
Options.builder()pattern,forecasts().waitUntilSettled, callback-based pagination. - Node / TypeScript? TypeScript SDK — typed models,
waitForecast, async-generator pagination.
You can use multiple clients in the same project — for example, curl in CI smoke tests and the SDK in your service code.
Versioning
All SDKs use SemVer independently of the API server version. Pin to a tag for production builds. The wire contract itself is OpenAPI-versioned; breaking changes appear as new operations or new schema versions, not silent edits to existing ones.
Package pages
| Client | Package |
|---|---|
| Python SDK | sybilion on PyPI |
| Go SDK | go.sybilion.dev/sybilion on pkg.go.dev |
| Java SDK | dev.sybilion:sybilion on Maven Central |
| TypeScript SDK | @sybilion/sdk on npm |
Need a client for another language? Generate one from the public OpenAPI spec at https://api.sybilion.dev/openapi.yaml with openapi-generator.
See also
- Features — every use case with curl + Python + Go + Java + TypeScript side by side.
- Quickstart — five steps to a completed forecast.
- Community & support — Slack, Discord, email.