# SDKs & CLI

You can call the Bird API with any HTTP client, but the official SDKs and the CLI handle authentication, region selection, retries, idempotency, and pagination for you — so you write against typed methods instead of raw requests.

## SDKs

The SDKs are generated from the same OpenAPI specification that drives the [API reference](/docs/api), then wrapped in a hand-curated, idiomatic surface for each language. They share one behavior model — described once in [SDK concepts](/docs/sdks/concepts) — so retries, pagination, region inference, and webhook verification work the same everywhere.

- [TypeScript SDK](/docs/sdks/typescript) — `@messagebird/sdk` for Node.js and the edge
- [Python SDK](/docs/sdks/python) — sync and async clients
- [Go SDK](/docs/sdks/go) — `github.com/messagebird/bird-sdk-go`
- [SDK concepts](/docs/sdks/concepts) — the behavior every SDK shares

## CLI

The [Bird CLI](/docs/cli) brings the same API to your terminal. It defaults to JSON output with semantic exit codes, which also makes it the simplest way to drive Bird from a script or an AI agent.