# API

## Обзор

Мы предоставляем программный интерфейс ко всем ресурсам, доступным пользователю. API доступен по адресу `https://api.tuna.am` для всех зарегистрированных пользователей.

Все ресурсы собраны на [отдельной странице](https://my.tuna.am/swagger/), там же можно проверить работу интересующего метода указав свой API-ключ в SwaggerUI.

## Быстрый старт

Перед началом работы нужно создать API ключ, сделать это можно на [отдельной странице](https://my.tuna.am/api_keys). Для прохождения аутентификации ключ нужно передавать в HTTP заголовке `Authorization: Bearer {API-ключ}`

примечание

Устаревший вариант `Authentication: Bearer {API-ключ}` поддерживается, но может быть удален в будущем, пожалуйста, используйте актуальный заголовок.

### Пример с cURL

Чтобы получить описание пользователя выполните запрос с помощью curl:

```bash
curl -H "Authorization: Bearer {API-ключ}" https://api.tuna.am/v1/user 

```

### Пример с tuna

```bash
tuna config save-api-key "{API-ключ}"
tuna domain list

```

## Ошибки

### HTTP статус коды

Ошибки обычно возвращают `4xx` код ответа. Реже вы можете получать ошибки `5xx` - это означает, что ошибка связана с tuna API, а не с вашим кодом.

### Формат ошибки

Все ошибки возвращаемые tuna имеют следующий формат:

```json
{
  "code": "BadRequest",
  "error": "Incorrect identifier: strconv.ParseInt: parsing \"foobar\": invalid syntax",
  "request_id": "785f3f7e174cc6dc2c2d359bed4d921d"
}

```

Ошибки всегда содержат поле `code` и опционально текст в поле `error`.
