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

# Библиотеки для API (SDK)

> Готовые библиотеки Tungo для десяти языков: где взять, как установить и как задать первый вопрос ИИ-бухгалтеру.

Библиотека избавляет от ручной работы с HTTP: вы вызываете метод, а она сама подставляет ключ, собирает запрос и разбирает ответ. Библиотеки есть для десяти языков. Все они собраны из одного описания API, поэтому методы и поля в них называются одинаково и совпадают со справочником на вкладке «API».

Понадобится ключ API: см. [Создать ключ API](https://docs.tungo.kz/platform/api-keys.md). Что происходит внутри запросов, разобрано на странице [Сделать первый запрос](https://docs.tungo.kz/platform/first-request.md).

## Какие библиотеки есть

| Язык | Где лежит | Пакет |
| - | - | - |
| TypeScript | npm | [`@tungoai/sdk`](https://github.com/TungoAI/tungo-sdk-typescript) |
| Python | PyPI | [`tungoai`](https://github.com/TungoAI/tungo-sdk-python) |
| Go | GitHub | [`github.com/TungoAI/tungo-sdk-go`](https://github.com/TungoAI/tungo-sdk-go) |
| Rust | crates.io | [`tungo-sdk`](https://github.com/TungoAI/tungo-sdk-rust) |
| PHP | Packagist | [`tungo/sdk`](https://github.com/TungoAI/tungo-sdk-php) |
| Ruby | RubyGems | [`tungo-sdk`](https://github.com/TungoAI/tungo-sdk-ruby) |
| .NET | NuGet | [`Tungo.Sdk`](https://github.com/TungoAI/tungo-sdk-dotnet) |
| Java | Maven Central | [`kz.tungo:tungo-sdk`](https://github.com/TungoAI/tungo-sdk-java) |
| Kotlin | Maven Central | [`kz.tungo:tungo-sdk-kotlin`](https://github.com/TungoAI/tungo-sdk-kotlin) |
| Swift | GitHub | [`tungo-sdk-swift`](https://github.com/TungoAI/tungo-sdk-swift) |

Ссылка в таблице ведёт в репозиторий библиотеки. В каждом есть описание на русском, казахском и английском, примеры и список изменений. Swift ставится прямо из репозитория, остальные — из хранилища пакетов своего языка.

## Установить

```sh TypeScript theme={null}
npm install @tungoai/sdk
```

```sh Python theme={null}
pip install tungoai
```

```sh Go theme={null}
go get github.com/TungoAI/tungo-sdk-go@latest
```

```toml Rust theme={null}
# Cargo.toml
[dependencies]
tungo-sdk = "0.2"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
```

```sh PHP theme={null}
composer require tungo/sdk
```

```sh Ruby theme={null}
gem install tungo-sdk
```

```sh .NET theme={null}
dotnet add package Tungo.Sdk
```

```kotlin Java theme={null}
// build.gradle.kts
implementation("kz.tungo:tungo-sdk:0.2.0")
```

```kotlin Kotlin theme={null}
// build.gradle.kts
implementation("kz.tungo:tungo-sdk-kotlin:0.2.0")
```

```swift Swift theme={null}
// Package.swift
dependencies: [
    .package(url: "https://github.com/TungoAI/tungo-sdk-swift.git", branch: "main")
],
targets: [
    .target(name: "MyApp", dependencies: [.product(name: "TungoSDK", package: "tungo-sdk-swift")])
]
```

## Задать первый вопрос

Положите ключ в переменную окружения `TUNGO_API_KEY`: библиотека прочитает его сама, и ключ не окажется в коде.

```sh theme={null}
export TUNGO_API_KEY=tg_…
```

Id компании начинается с `co_`. Его возвращает список компаний, как в примерах для TypeScript и Python.

```ts TypeScript theme={null}
import { Tungo } from '@tungoai/sdk';

const client = new Tungo(); // ключ берётся из TUNGO_API_KEY

const { data: companies } = await client.companies.list();
const reply = await client.ask(companies[0].id, 'Какой НДС у последней реализации?');
console.log(reply.answer);
```

```python Python theme={null}
from tungoai import Tungo

with Tungo() as client:  # ключ берётся из TUNGO_API_KEY
    companies = client.companies.list()
    turn = client.ask(companies.data[0].id, "Какой НДС у последней реализации?")
    print(turn.answer)
```

```go Go theme={null}
package main

import (
	"context"
	"fmt"
	"log"

	tungo "github.com/TungoAI/tungo-sdk-go"
)

func main() {
	// ключ берётся из TUNGO_API_KEY; компания — из TUNGO_COMPANY_ID
	client := tungo.NewClient()

	turn, err := client.Ask(context.Background(), "Какой НДС у последней реализации?")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(turn.Answer)
}
```

```rust Rust theme={null}
use tungo_sdk::Tungo;

#[tokio::main]
async fn main() -> tungo_sdk::Result<()> {
    // ключ берётся из TUNGO_API_KEY
    let client = Tungo::builder().company_id("co_…").build()?;

    let turn = client.ask("Какой НДС у последней реализации?").await?;
    println!("{}", turn.answer);
    Ok(())
}
```

```php PHP theme={null}
use Tungo\Sdk\TungoClient;

// ключ берётся из TUNGO_API_KEY
$client = new TungoClient(companyId: 'co_…');

$turn = $client->ask('Какой НДС у последней реализации?');
echo $turn->answer, PHP_EOL;
```

```ruby Ruby theme={null}
require "tungo"

client = Tungo::Client.new(api_key: ENV.fetch("TUNGO_API_KEY"), company_id: "co_…")

result = client.ask("Какой НДС у последней реализации?")
puts result.answer
```

```csharp .NET theme={null}
using Tungo.Sdk;

// ключ берётся из TUNGO_API_KEY
using var client = new TungoClient(new TungoClientOptions { CompanyId = "co_…" });

var turn = await client.AskAsync("Какой НДС у последней реализации?");
Console.WriteLine(turn.Answer);
```

```java Java theme={null}
// ключ берётся из TUNGO_API_KEY
TungoClient client = TungoClient.builder().build();

ChatTurnResult turn = client.ask("co_…", "Какой НДС у последней реализации?");
System.out.println(turn.answer());
```

```kotlin Kotlin theme={null}
import kz.tungo.sdk.kotlin.TungoClient
import kz.tungo.sdk.kotlin.resources.ask

suspend fun main() {
    val client = TungoClient() // ключ берётся из TUNGO_API_KEY

    val turn = client.chat.ask("Какой НДС у последней реализации?", companyId = "co_…")
    println(turn.answer)

    client.close()
}
```

```swift Swift theme={null}
import TungoSDK

let client = TungoClient(apiKey: "tg_…", companyID: "co_…")

let reply = try await client.ask("Какой НДС у последней реализации?")
print(reply.answer)
```

## Настройки

Каждую настройку можно передать при создании клиента. Три из них библиотека читает из переменных окружения, если вы их не передали.

| Переменная | Что задаёт |
| - | - |
| `TUNGO_API_KEY` | Ключ API |
| `TUNGO_BASE_URL` | Адрес API, по умолчанию `https://api.tungo.kz` |
| `TUNGO_WEBHOOK_SECRET` | Секрет для проверки подписи вебхуков |

Библиотеки для Go, PHP, Ruby, .NET, Kotlin и Swift читают ещё `TUNGO_COMPANY_ID` — компанию по умолчанию, чтобы не передавать её в каждый вызов.

Один клиент можно создать при запуске и использовать из нескольких потоков. При сбое сети библиотека сама повторяет запрос, а подпись вебхука проверяет одним вызовом: см. [Получать события (вебхуки)](https://docs.tungo.kz/platform/webhooks.md).

## Что дальше

* [Сделать первый запрос](https://docs.tungo.kz/platform/first-request.md): те же шаги без библиотеки, с разбором ответа.
* [Ошибки и ограничения](https://docs.tungo.kz/platform/errors-and-limits.md): какие отказы вернёт библиотека и что с ними делать.
* [Документация для ИИ-помощников (MCP)](https://docs.tungo.kz/platform/mcp.md): подключите эту документацию к Claude или Cursor, чтобы они писали код под Tungo.


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