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

# Введение в API

> OnlyTraffic Marketer API v2: получайте RevShare-офферы и кампании, CPL-кампании, CPC-заказы, транзакции, подписчиков и статистику дашборда программно, запускайте, останавливайте и обновляйте кампании.

OnlyTraffic Marketer API даёт доступ к каталогу RevShare-офферов и к данным о ваших кампаниях, CPC-заказах, транзакциях, подписчиках и статистике. Через него также можно запускать, останавливать и обновлять кампании, принимать и отклонять CPL-кампании. Используйте его для интеграций, дашбордов и автоматизации.

## Base URL

```text theme={null}
https://partners.onlytraffic.com
```

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

Все запросы требуют заголовок `Authorization` с API-ключом. Ключи создаются в личном кабинете партнёра: **Tools -> API** ([partners.onlytraffic.com/tools/api](https://partners.onlytraffic.com/tools/api)). У аккаунта может быть до 5 именованных ключей, каждый с доступом **Full** или **Read-only**. Ключ показывается один раз при создании, поэтому сразу скопируйте его. Подробности на странице [Аутентификация](/docs/ru/partners/api/authentication).

```bash theme={null}
curl "https://partners.onlytraffic.com/api/marketer/revshare/campaigns" \
  -H "Authorization: your-api-key-here"
```

<Info>Коды ошибок и подробная настройка описаны на странице [Аутентификация](/docs/ru/partners/api/authentication).</Info>

## Эндпоинты

| Эндпоинт                                  | Метод | Описание                                                            |
| ----------------------------------------- | ----- | ------------------------------------------------------------------- |
| `/api/marketer/revshare/offers`           | GET   | Каталог RevShare-офферов: модели, которых можно продвигать          |
| `/api/marketer/revshare/campaigns`        | GET   | Список ваших RevShare-кампаний                                      |
| `/api/marketer/revshare/transactions`     | GET   | Финансовые транзакции RevShare                                      |
| `/api/marketer/cpl/campaigns`             | GET   | CPL-кампании, размещённые на ваших офферах                          |
| `/api/marketer/cpc/orders`                | GET   | CPC-заказы (оплата за клик)                                         |
| `/api/marketer/cpc/categories`            | GET   | Каталог CPC-категорий для таргетинга виджетов                       |
| `/api/marketer/subscribers`               | GET   | Фаны, привлечённые через все кампании (RevShare + CPL)              |
| `/api/marketer/stats/fans`                | GET   | Привлечённые фаны по моделям оплаты и по дням                       |
| `/api/marketer/stats/income`              | GET   | Доход по моделям оплаты и по дням                                   |
| `/api/marketer/stats/conversion`          | GET   | Вовлечённость фанов (3+ сообщения, покупки, ARPU) по моделям оплаты |
| `/api/marketer/revshare/campaigns/start`  | POST  | Запустить RevShare-кампанию на модель                               |
| `/api/marketer/revshare/campaigns/stop`   | POST  | Остановить RevShare-кампанию                                        |
| `/api/marketer/revshare/campaigns/update` | POST  | Переименовать кампанию, изменить заметку или теги                   |
| `/api/marketer/cpl/campaigns/accept`      | POST  | Принять CPL-кампанию, размещённую на вашем оффере                   |
| `/api/marketer/cpl/campaigns/reject`      | POST  | Отклонить CPL-кампанию                                              |
| `/api/marketer/cpl/campaigns/stop`        | POST  | Остановить принятую CPL-кампанию                                    |
| `/api/marketer/cpl/campaigns/start`       | POST  | Начать лить трафик на CPL-оффер клиента (Find Offers)               |

## Запись данных

Ключ с доступом Full читает и пишет; ключи Read-only получают `403` на эндпоинтах записи. Эндпоинты записи делают ровно то, что вы можете сделать в кабинете, с теми же сообщениями валидации. Идентификаторы в запросах на запись — публичные id (`revc_…` для кампаний, `cplo_…` для CPL-кампаний); числовые внутренние id отклоняются с `404`. Каждая запись возвращает обновлённый объект в `data`, в том же формате, что и соответствующий списочный эндпоинт.

<Info>Правила описаны на странице [Write API](/docs/ru/partners/api/write-api), тела запросов — на страницах отдельных эндпоинтов.</Info>

## Пагинация

Все списочные эндпоинты принимают `offset` и `limit` как query-параметры. У эндпоинтов статистики пагинации нет. Вместо неё они принимают период `from` / `to`: Unix timestamp или дату `Y-m-d`, не более 366 дней между ними. У CPC Categories пагинации тоже нет: весь каталог приходит одним ответом.

| Параметр | По умолчанию | Максимум | Описание                   |
| -------- | ------------ | -------- | -------------------------- |
| `offset` | 0            | -        | Сколько записей пропустить |
| `limit`  | 50           | 1000     | Сколько записей вернуть    |

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

У каждого поля с временной меткой есть два варианта:

* **Строка ISO 8601** (`*_at`), например `"2024-06-01T12:00:00+00:00"`
* **Целое число Unix timestamp** (`*_at_ts` / `*_ts`), например `1717243200`

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

Все ответы возвращают HTTP `200`. Фактический статус находится в поле `status`.

<CodeGroup>
  ```json Success theme={null}
  {
    "status": "success",
    "data": [ ... ]
  }
  ```

  ```json Error theme={null}
  {
    "status": "error",
    "error_code": 422,
    "message": "Invalid parameters"
  }
  ```
</CodeGroup>

## Коды ошибок

| Код   | Значение                                                                                                                                            |
| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `403` | Доступ запрещён: ключ не передан, неизвестен, истёк или отозван, аккаунт не является активным партнёром, либо ключ Read-only вызвал эндпоинт записи |
| `404` | Ресурс не найден                                                                                                                                    |
| `422` | Некорректные параметры запроса (в `message` сказано, что не так)                                                                                    |
| `429` | Превышен лимит запросов, либо ещё выполняется другой запуск кампании                                                                                |
| `500` | Ошибка сервера                                                                                                                                      |
| `503` | Сервис временно недоступен, повторите позже                                                                                                         |
