SDKs
Official SDKs let you integrate the Odento API into your application without dealing with raw HTTP requests. All SDKs handle authentication, serialization, error handling, and automatic retries.
Available SDKs
JavaScript
npm install @odento/sdkFull-featured SDK for Node.js, browsers, and edge runtimes. TypeScript types included.
Python
pip install odento-sdkPythonic SDK for Python 3.9+. Sync and async interfaces. Pydantic models included.
Java
Maven / GradleJava SDK for Java 11+. Built with OkHttp and Gson. Available on Maven Central.
PHP
composer require odento/sdkPHP SDK for PHP 8.0+. PSR-18 compatible HTTP client. Available on Packagist.
Common Features
All official SDKs share the following features:
- Automatic authentication — Pass your API keys once; the SDK handles the rest.
- JWT token management — Automatic token refresh before expiry (JavaScript, Python).
- Typed responses — All response objects are strongly typed with language-native models.
- Error handling — Errors are thrown as typed exceptions with the error code and message.
- Automatic retries — Retries on 5xx errors with exponential backoff (configurable).
- Rate limit awareness — Reads rate limit headers and backs off on 429 responses.
- Idempotency — Automatic idempotency key generation for POST/PUT requests.
- Pagination helpers — Built-in utilities for iterating through paginated results.
Choosing an SDK
If your language has an official SDK, we strongly recommend using it over making raw HTTP requests. The SDKs handle edge cases, retries, and authentication that are easy to get wrong when building from scratch.
If your language doesn't have an official SDK, you can still use the REST API directly — the API is simple JSON over HTTPS and works with any HTTP client library. See the Introduction for curl examples.
Community SDKs
Community-maintained SDKs exist for Go, Ruby, Rust, and other languages. These are not officially supported but may be useful. Check the Odento GitHub org for the latest list.
Versioning
SDKs follow semantic versioning. Breaking changes are only introduced in major versions. Pin to a specific major version in your dependency file to avoid unexpected breaking changes.
Was this page helpful?
Help us improve our documentation