> ## Documentation Index
> Fetch the complete documentation index at: https://docs.origoid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs overview

> Official client libraries in TypeScript, Python, and Go. One method per endpoint, idiomatic to each ecosystem.

We publish first-party SDKs for the three languages most used by OrigoID
customers. They are the official, supported clients — there is no
community variant to choose from.

## Why use an SDK instead of raw HTTP

You can absolutely call our REST endpoints with `curl`, `fetch`,
`requests`, or `net/http`. The SDKs add:

* **Typed request and response models** — your IDE autocompletes every
  field, your compiler catches typos, your linter flags missing
  required values.
* **Nothing to configure beyond the API key.** Production base URL is
  built in; pass your key at construction time and start calling.
* **Automatic retries** — transient `5xx` and network errors are
  retried with exponential backoff (configurable per call).
* **Strongly-typed enums** — `type` codes, `cancellationStatus`,
  `riskLevel`, etc. surface as enums or string literal unions, never
  raw strings.
* **Helpful errors** — a `401 UNAUTHORIZED` raises a typed error with
  the envelope already deserialized, not a generic `HTTPError`.

If you only need to call one endpoint occasionally from a script,
`curl` is fine. For any production integration we recommend the SDK.

## Pick your language

<CardGroup cols={2}>
  <Card title="TypeScript / Node" icon="js" href="/en/sdks/node">
    `npm install @origoid/sdk`. Works in Node 18+ and Deno. Ships
    TypeScript definitions out of the box.
  </Card>

  <Card title="Python" icon="python" href="/en/sdks/python">
    `pip install origoid`. Python 3.9+. Sync `OrigoID` plus an async
    `AsyncOrigoID` for FastAPI / aiohttp use cases.
  </Card>

  <Card title="Go" icon="golang" href="/en/sdks/go">
    `go get github.com/origoid/sdk-go`. Context-aware, idiomatic Go
    style, generated types for every request and response.
  </Card>

  <Card title="MCP server (AI integration)" icon="robot" href="/en/sdks/mcp">
    `npx @origoid/mcp-server`. Works with Claude, ChatGPT, Gemini,
    Cursor, Windsurf, and any other MCP-compatible client. Lets the AI
    scaffold integrations in any language without burning credits.
  </Card>
</CardGroup>

## Source and distribution

| SDK               | Source                                                                 | Install                            |
| ----------------- | ---------------------------------------------------------------------- | ---------------------------------- |
| TypeScript / Node | [github.com/origoid/sdk-node](https://github.com/origoid/sdk-node)     | `npm install @origoid/sdk`         |
| Python            | [github.com/origoid/sdk-python](https://github.com/origoid/sdk-python) | `pip install origoid`              |
| Go                | [github.com/origoid/sdk-go](https://github.com/origoid/sdk-go)         | `go get github.com/origoid/sdk-go` |

All three repositories are public. The published packages on npm and
PyPI are the official distribution channels; the GitHub source is
provided so you can audit the code before installing.

## Versioning

SDKs follow [semver](https://semver.org/).

* **Major** (`1.0.0` → `2.0.0`) — breaking changes to the SDK shape.
  Always accompanied by a migration guide in the release notes.
* **Minor** (`0.1.0` → `0.2.0`) — new endpoints, new fields, new
  helpers. Backwards-compatible.
* **Patch** (`0.1.0` → `0.1.1`) — bug fixes and improvements.

While the SDKs are under `0.x.y` we bump the **minor** version for
breaking changes (per semver pre-1.0 guidance). Once an SDK reaches
`1.0.0` the classic semver rules apply.

## Support

* API questions, feature requests, or SDK bug reports: [support@origoid.com](mailto:support@origoid.com)
* Status: [status.origoid.com](https://status.origoid.com)
