# SDKs

These SDK pages cover the Classic API SDKs in Python and TypeScript. The SDKs take care of authentication, request formatting, response parsing, and error handling so you can focus on building AI-powered applications.

{% hint style="warning" %}
**Classic API only.** These SDKs wrap the Classic API at `api.amigo.ai`. For the Platform API (`api.platform.amigo.ai`), use the [Platform SDK](/developer-guide/platform-api/platform-sdk.md) for TypeScript or direct HTTP while additional first-party Platform SDKs are added.
{% endhint %}

## Available SDKs

### Python SDK

The official Python SDK for the Amigo API, supporting both synchronous and asynchronous operations.

| Property           | Value                                                                                |
| ------------------ | ------------------------------------------------------------------------------------ |
| **Package**        | `amigo_sdk`                                                                          |
| **Repository**     | [github.com/amigo-ai/amigo-python-sdk](https://github.com/amigo-ai/amigo-python-sdk) |
| **Registry**       | [PyPI](https://pypi.org/project/amigo_sdk/)                                          |
| **Python Version** | 3.11+                                                                                |

### TypeScript SDK

The official TypeScript/JavaScript SDK for the Amigo API, with full type safety and modern async/await patterns.

| Property            | Value                                                                                        |
| ------------------- | -------------------------------------------------------------------------------------------- |
| **Package**         | `@amigo-ai/sdk`                                                                              |
| **Repository**      | [github.com/amigo-ai/amigo-typescript-sdk](https://github.com/amigo-ai/amigo-typescript-sdk) |
| **Registry**        | [npm](https://www.npmjs.com/package/@amigo-ai/sdk)                                           |
| **Node.js Version** | 18+                                                                                          |

## Key Features

Both SDKs provide:

{% hint style="info" %}
**Auto-generated types.** Types are generated from the latest [Amigo OpenAPI schema](https://api.amigo.ai/v1/openapi.json), so they stay in sync with the API.
{% endhint %}

* **Streaming support.** Real-time conversation events with built-in NDJSON parsing.
* **Error handling.** Typed error handling for all API responses.
* **Authentication.** Automated API key-based authentication and token management.
* **Configuration.** Environment variable support with flexible configuration options.
* **Resource coverage.** Complete access to Amigo API resources (conversations, users, services, organizations).

## API Compatibility

{% hint style="warning" %}
**Version compatibility.** SDKs auto-generate types from the latest OpenAPI schema. Only the latest published SDK version is guaranteed to match the current API. Older versions may lack new endpoints or fields.
{% endhint %}

## Getting Started

{% tabs %}
{% tab title="Quick Start" %}

1. [**Installation**](/developer-guide/classic-api/sdks/sdk-installation.md)**.** Set up the SDK in your project.
2. [**Configuration**](/developer-guide/classic-api/sdks/sdk-configuration.md)**.** Configure authentication and client options.
3. [**Hello World**](/developer-guide/classic-api/sdks/sdk-hello-world.md)**.** Create your first conversation.
4. [**Error Handling**](/developer-guide/classic-api/sdks/sdk-error-handling.md)**.** Handle errors and edge cases.
   {% endtab %}

{% tab title="Advanced" %}

* [**Streaming Responses**](/developer-guide/classic-api/core-api/conversations/conversations-interact.md)**.** Handle real-time events.
* [**User Management**](/developer-guide/classic-api/core-api/users.md)**.** Create and manage users.
* [**Regional Endpoints**](/developer-guide/getting-started/regions-and-endpoints.md)**.** Configure regional deployments.
  {% endtab %}
  {% endtabs %}

## Production Examples

The SDK repositories include working examples that demonstrate production-ready patterns.

{% tabs %}
{% tab title="Python Examples" %}
**Repository:** [github.com/amigo-ai/amigo-python-sdk/examples](https://github.com/amigo-ai/amigo-python-sdk/tree/main/examples)

* Project structure best practices
* Environment configuration
* Error handling patterns
* Async/await implementations
  {% endtab %}

{% tab title="TypeScript Examples" %}
**Repository:** [github.com/amigo-ai/amigo-typescript-sdk/examples](https://github.com/amigo-ai/amigo-typescript-sdk/tree/main/examples)

* Type-safe implementations
* Modern async patterns
* Production error handling
* Real-world application contexts
  {% endtab %}
  {% endtabs %}

## Support & Resources

| Resource                  | Link                                                                     |
| ------------------------- | ------------------------------------------------------------------------ |
| **Python SDK Issues**     | [GitHub Issues](https://github.com/amigo-ai/amigo-python-sdk/issues)     |
| **TypeScript SDK Issues** | [GitHub Issues](https://github.com/amigo-ai/amigo-typescript-sdk/issues) |
| **Enterprise Support**    | Contact support through the Amigo dashboard                              |
| **API Reference**         | [OpenAPI Schema](https://api.amigo.ai/v1/openapi.json)                   |

## License

Both SDKs are licensed under the MIT License.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.amigo.ai/developer-guide/classic-api/sdks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
