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. |
| R SDK | install.packages("sybilion") | R workflows; wait_forecast, pagination iterators, and R6 client. |
| Java SDK | dev.sybilion:sybilion on Maven Central | JVM services; forecasts().waitUntilSettled and callback-based 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. - 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 / R) /Options.BaseURL(Go) /Options.baseUrl()(Java) / 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.
- R workflows? R SDK — R6 client with
wait_forecast, pagination iterators, and CRAN distribution. - JVM / Java? Java SDK —
Options.builder()pattern,forecasts().waitUntilSettled, callback-based 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 |
| R SDK | sybilion on CRAN |
| Java SDK | dev.sybilion:sybilion on Maven Central |
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 + R + Java side by side.
- Quickstart — five steps to a completed forecast.
- Community & support — Slack, Discord, email.