# 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 %}


---

# 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.inskill.ru/nastroiki-proekta/api.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.
