> For the complete documentation index, see [llms.txt](https://docs.inskill.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.inskill.ru/nastroiki-proekta/api.md).

# API

## Введение

{% hint style="warning" %}

#### Внимание!

API находится в режиме альфа-тестирования.&#x20;

Если вы обнаружили ошибку в работе API, напишите нам о ней на [api@inskill.ru.](<mailto:api@inskill.ru >)
{% endhint %}

### Доступ к API

Доступ к API осуществляется по многоразовому **токену аутентификации**.&#x20;

Токен выдается по запросу в техническую поддержку через личный кабинет, или по email: <api@inskill.ru>.

### Точка доступа

Доступ к API осуществляется по URL:

> #### https\://{subdomain}.inskill.ru/api/v3/

где `{subdomain}` - уникальный поддомен вашего проекта в системе InSkill.

{% hint style="warning" %}

#### Доступ к API по HTTP-протоколу не поддерживается.&#x20;

Используйте только HTTPS-соединение.
{% endhint %}

### Формат данных

Все данные передаются в формате `JSON` в теле запроса.

Ответы на запросы также возвращаются в формате `JSON`.&#x20;

Каждый запрос должен содержать заголовки формата:

```http
Accept: application/json
Content-Type: application/json
```

Подробнее о формате: <https://jsonapi.org/format/>&#x20;

### Ограничения

Количество запросов к API ограничено: не более **200** запросов в **минуту**.

При превышении лимита возвращается HTTP-статус **429** (Too Many Requests), а в заголовке ответа присутствует параметр **Retry-After** – количество секунд до сброса лимита.&#x20;

## Аутентификация

Каждый запрос должен содержать `Authorization` заголовок с токеном аутентификации.

Аутентификация происходит по `Bearer` методу.&#x20;

Токен указывается через пробел после команды `Bearer`.

### Примеры

#### HTTP

```http
POST https://fitnessproject.inskill.ru/api/v3/students
Accept: application/json
Content-Type: application/json
Authorization: Bearer [TOKEN]
```

#### PHP

Если вы используете Guzzle для запросов (<http://docs.guzzlephp.org/en/stable/>) - просто добавьте соответствующие заголовки в настройки клиента:

```php
$client = new Guzzle( [
	'base_uri' => 'https://fitnessproject.inskill.ru/api/v3',
	'headers'  => [
		'Authorization' => 'Bearer ' . $token,
		'Accept'        => 'application/json',
		'Content-Type'  => 'application/json',
	],
] );
```

## Список ресурсов

### Students

Управление участниками проекта.

{% content-ref url="/pages/-LXcFD3pViYkfqVf-5Sj" %}
[Students](/nastroiki-proekta/api/students.md)
{% endcontent-ref %}

{% hint style="warning" %}

#### API находится в режиме разработки.

Список ресурсов будет пополняться.
{% endhint %}
