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

# SDKs Overview

> Native SDKs for easy integration with Gumnut

# SDKs Overview

Gumnut offers native SDKs that provide type-safe, idiomatic interfaces to the Gumnut API. Our SDKs handle authentication, request formatting, error handling, and response parsing, allowing you to focus on building your application.

## Available SDKs

### [TypeScript/JavaScript](/guides/sdks/typescript)

Our TypeScript SDK provides full type safety and works in both Node.js and browser environments.

* **Installation**: `npm install gumnut-sdk`
* **GitHub**: [github.com/gumnut-ai/photos-sdk-typescript](https://github.com/gumnut-ai/photos-sdk-typescript)
* **Features**: Full TypeScript support, universal compatibility, automatic retries, file upload helpers

### [Python](/guides/sdks/python)

Our Python SDK provides a Pythonic interface with full type hints support.

* **Installation**: `pip install gumnut-sdk`
* **GitHub**: [github.com/gumnut-ai/photos-sdk-python](https://github.com/gumnut-ai/photos-sdk-python)
* **Features**: Python 3.9+ support, async/await, type hints, context managers

<Note>
  Need an SDK in another language? Additional language SDKs can be made available on request. Contact us at [www.gumnut.ai/support](https://www.gumnut.ai/support).
</Note>

## Common Features

All SDKs share these capabilities:

* **Authentication**: API key and OAuth token support, environment variable configuration
* **Reliability**: Automatic retries with exponential backoff, comprehensive error handling
* **File Handling**: Multiple upload formats, stream support for large files
* **Pagination**: Automatic pagination helpers and iterator patterns
* **Type Safety**: Full type definitions and IDE autocompletion

## Getting Started

### 1. Install

```bash theme={null}
# TypeScript/JavaScript
npm install gumnut-sdk

# Python
pip install gumnut-sdk
```

### 2. Basic Usage

All SDKs follow similar patterns:

```javascript theme={null}
// Initialize client
const client = new Gumnut({ apiKey: "your_key" });

// Upload an asset
const asset = await client.assets.create({ /* ... */ });

// Create an album
const album = await client.albums.create({ /* ... */ });

// Add to album
await client.albums.addAssets(album.id, [asset.id]);
```

## Direct API Usage

If an SDK isn't available for your language, you can use the [REST API](/guides/apis/overview) directly:

```bash theme={null}
curl -X GET https://api.gumnut.ai/api/assets \
  -H "Authorization: Bearer YOUR_API_KEY"
```
