# Общая информация

Методы: [info](#info)

Общая информация по АПИ

API-ключ проекта находится в настройках личного кабинета, в разделе «Интеграция».

Boomstream API использует протокол взаимодействия REST. Префикс API:

```
https://boomstream.com/api/
```

Поддерживаются два режима передачи входных параметров.

### Режим 1 — GET через form-параметры (по умолчанию)

Все входные параметры передаются как GET-параметры query-строки. Форматы выходных данных: json и xml. Формат задаётся параметром `format`. Примеры:

```
https://boomstream.com/api/info?apikey=[API_KEY]&format=xml&ver=1.2
https://boomstream.com/api/info?apikey=[API_KEY]&format=json&ver=1.2
https://boomstream.com/api/info?apikey=[API_KEY]&format=xls&ver=1.2 [experimental]
```

### Режим 2 — POST через JSON

Альтернативно входные параметры можно передавать как JSON-объект в теле POST-запроса с заголовком `Content-Type: application/json`. Этот режим работает для **всех** методов API.

Особенности:

* все входные параметры, **включая `apikey`**, формируются в JSON-объект и передаются на выбранный эндпоинт;
* если в запросе `Content-Type: application/json`, ответ **автоматически** возвращается в формате JSON — параметр `format` указывать не требуется;
* массивные параметры (например, `code[]` в `media/bulkinfo`) передаются как JSON-массив.

Пример (curl):

```bash
curl -X POST https://boomstream.com/api/media/info \
  -H "Content-Type: application/json" \
  -d '{"apikey": "[API_KEY]", "code": "[MEDIA_CODE]"}'
```

Пример с массивом:

```bash
curl -X POST https://boomstream.com/api/media/bulkinfo \
  -H "Content-Type: application/json" \
  -d '{"apikey": "[API_KEY]", "code": ["[MEDIA_CODE_1]", "[MEDIA_CODE_2]"]}'
```

### Версии API

* Версия API по умолчанию — **1.0**

  - Boomstream API v.1.0 loads by default

* Промежуточная версия API — **1.1**

  - Changed the response format for the method ppv/listBuyers

* Текущая версия API — **1.2**
  - changed the response format for methods ppv/listMedia and ppv/addMedia


Чтобы использовать текущую версию API, необходимо передать HTTP-параметр **ver** — `&ver=1.2`.

### Формат ответа

Каждый ответ API содержит параметр `Status`, который указывает на статус выполнения запроса. Успешные запросы имеют статус `Success`, неуспешные — `Failed`. Кроме того, ответы с ошибкой содержат дополнительный параметр `Message` с текстом ошибки.


## info

*Get additional information about media by its code*

#### Входные параметры

Обязательные параметры:

* *String* **apikey** (АПИ ключ проекта)

#### Выходные параметры

* *String* **Success** (Статус ответа)

Пример запроса:

```text
https://boomstream.com/api/info?apikey=[API_KEY]
```

**Пример успешного ответа:**

```xml
<Response>
    <Status>Success</Status>
    <sections>
        <section>
            api/media
        </section>
        ...
    </sections>
    <Version>1.1</Version>
    <Versions>
        <Item>Boomstream API v.1.0 is loaded by default</Item>
        <Item>
            Boomstream API v.1.1. Add &ver=1.1 to the HTTP request to use it. Change log: it is changed the response format for the method - ppv/listBuyers
        </Item>
    </Versions>
</Response>
```

**Пример ответа с ошибкой:**

```xml
<Response>
    <Message>Method not found</Message>
    <Status>Failed</Status>
    <Version>1.1</Version>
</Response>
```

### Классы API

Ниже представлены классы для работы с API:

* [Media](/media.md)
* [Screenshot](/screenshot.md)
* [Folder](/folder.md)
* [PPV](/ppv.md)
* [Live](/live.md)
* [Playlist](/playlist.md)
* [Statistics](/stats.md)
* [Chat](/chat.md)
* [Record Live](/record-live.md)
* [Live - ip camera](/live-ipcamera.md)
* [Project](/project.md)
* [Subtitles](/subtitles.md)
* [Timecodes](/timecodes.md)
* [Conference](/conference.md)
* [Webhooks](/webhooks.md)
