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

# SDK Overview

> Compare our official media SDKs for TypeScript, Go, Rust, Java, Kotlin, Elixir, and C++, and find the package for your stack.

The SDKs are open source at [github.com/icelab-research/raidzero](https://github.com/icelab-research/raidzero).

Package versions are listed on each language page. TypeScript is at `0.1.2`;
the other published manifests remain at `0.1.1`. Pin the version you install.

The SDKs cover ingest, tasks, assets, search, prefixes, monitor CRUD, paginated
monitor events, and high-level alerts. Method names follow each language's
naming convention. See [Observability and alerts](https://docs.raidzero.icu/sdks/observability.md) for the
polling and cleanup contract.

> [card] [TypeScript](https://docs.raidzero.icu/sdks/typescript.md)
>
> `@sf-voice/media` — Node.js, Bun, Deno, browser

> [card] [Elixir](https://docs.raidzero.icu/sdks/elixir.md)
>
> `:sf_voice` — `Req`-based, returns `{:ok, _}` or `{:error, _}`

> [card] [Go](https://docs.raidzero.icu/sdks/go.md)
>
> `sfvoice` — idiomatic Go with `context.Context`

> [card] [Rust](https://docs.raidzero.icu/sdks/rust.md)
>
> `sf_voice_media` — async with `tokio`, builder pattern

> [card] [Java](https://docs.raidzero.icu/sdks/java.md)
>
> `sh.sf-voice:sf-voice-media-java` — synchronous, Java 17+

> [card] [Kotlin](https://docs.raidzero.icu/sdks/kotlin.md)
>
> `sh.sf-voice:sf-voice-media-kotlin` — coroutine-native with Ktor

Building in C++? There's no published package — see the [C++ example](https://docs.raidzero.icu/sdks/cpp.md) for a single-header helper you can copy into your project.

Profiling a Go service? The
[go-signoz helper](https://github.com/icelab-research/raidzero/tree/main/go-signoz)
exports process CPU capacity for SigNoz alerting.

## Authentication

SDKs send your API key as an `Authorization: Bearer sk_live_...` request header. Keep it in an environment variable and avoid committing it to source control.

## Error handling

SDKs use three error categories:

| Error | When it's thrown |
| - | - |
| API error | The server returned a non-2xx response. Carries `code`, `message`, and `status`. |
| Request timeout | A single HTTP request exceeded the configured timeout. |
| Poll timeout | `pollTask` ran out of time before the task reached `ready` or `failed`. |

Error codes from the API:

| Code | Meaning |
| - | - |
| `unauthorized` | Invalid or missing API key. |
| `not_found` | Asset or task ID doesn't exist. |
| `bucket_not_connected` | S3 source used before bucket is configured. |
| `s3_access_denied` | SDK can't read from the specified S3 key. |
| `unsupported_format` | File type isn't supported for indexing. |
| `file_too_large` | Upload exceeds the size limit. |
| `rate_limited` | Too many requests. Back off and retry. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.