Перейти к основному содержимому
Разработчикам · HTTP API

Streamrise API

Оптовые заказы зрителей, чата и фолловеров для Twitch и Kick. Совместимо с PerfectPanel, плюс собственный HTTP API — авторизация одним API-ключом.

PerfectPanel + нативный API Обновлено Twitch + Kick
01 Быстрый старт

Первый звонок — за две минуты.

Четыре шага от нового аккаунта до живого заказа. Нужны пополненный аккаунт Streamrise и ссылка на канал.

1

Создайте аккаунт Streamrise

Зарегистрируйтесь на stream-rise.com — регистрация бесплатная. Вы пополняете баланс, и каждый заказ списывается с него.

2

Скопируйте ваш API-ключ

Аккаунт→Настройки→API

Ваш ключ показан в Настройках, его можно скопировать — перевыпустить в любой момент. Относитесь к нему как к паролю: любой, у кого он есть, может потратить ваш баланс.

3

Задайте ключ как переменную окружения

shell
export STREAMRISE_KEY=YOUR_API_KEY
4

Отправьте первый заказ

Создайте заказ одним вызовом. A 200 ответ содержит ID заказа и его исходное состояние.

cURL
curl "https://stream-rise.com/api/newOrder?key=$STREAMRISE_KEY&service=twitchViewers&channel=yourchannel&amount=100"
200 OKОтвет
JSON
{
  "orderId": 12345,
  "order": {
    "id": 12345,
    "service": "twitchViewers",
    "channel": "yourchannel",
    "amount": 100,
    "status": "active"
  }
}
Если вы видите "status": "active", вы в эфире.
02 Аутентификация

Каждый запрос содержит ключ.

Каждый запрос содержит ваш API-ключ — передавайте его как key query-параметр, a key поле в теле JSON или key cookie. Найдите свой ключ в аккаунте — откройте Settings → API.

HTTP
# As a query parameter — native /api/* endpoints
GET https://stream-rise.com/api/getOrders?key=YOUR_API_KEY

# In the JSON body — PerfectPanel endpoint
POST https://stream-rise.com/perfectPanel
{ "key": "YOUR_API_KEY", "action": "balance" }

Куда вставить ключ

Чтение PerfectPanel key из тела JSON; нативно /api/* читает его из строки запроса. A key cookie тоже подойдёт — что проще в вашем стеке.

Некоторым запросам ключ не нужен

Проверка полей (/api/validateOrderProperty) открыт, так что проверить название канала можно даже до регистрации.

Получить ключ

Откройте Настройки → API в вашем аккаунте, чтобы скопировать или перевыпустить ключ. Аккаунты бесплатные; вы платите только за каждый заказ из баланса.

Храните ключ на сервере. API-ключом можно потратить ваш баланс. Никогда не встраивайте его в клиентский код, мобильное приложение или публичный репозиторий.
03 Эндпоинты

API справочник.

PerfectPanel

Один POST-эндпоинт, который переключается полем «action», — готовая замена для софта SMM-панелей, работающего по протоколу PerfectPanel.

POST/perfectPanel

Возвращает полный каталог услуг с актуальными ставками со скидкой для аккаунта.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
actionstringОбязательноservicesДолжно быть «services».
Пример запроса
cURL
curl -X POST https://stream-rise.com/perfectPanel -H "Content-Type: application/json" -d '{"key":"YOUR_API_KEY","action":"services"}'
Ответ
200Успешно
JSON
[
  {
    "service": 1,
    "name": "Twitch Viewers",
    "type": "Default",
    "category": "Twitch",
    "rate": "0.90",
    "min": "10",
    "max": "10000",
    "cancel": true
  },
  {
    "service": 2,
    "name": "Twitch Chatbots",
    "type": "Custom Comments",
    "category": "Twitch",
    "rate": "8.00",
    "min": "10",
    "max": "1500",
    "cancel": false
  }
]
POST/perfectPanel

Возвращает текущий баланс аккаунта и его валюту.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
actionstringОбязательноbalanceДолжно быть «balance».
Пример запроса
cURL
curl -X POST https://stream-rise.com/perfectPanel -H "Content-Type: application/json" -d '{"key":"YOUR_API_KEY","action":"balance"}'
Ответ
200Успешно
JSON
{
  "balance": "100.84",
  "currency": "USD"
}
POST/perfectPanel

Возвращает списание, стартовый счётчик, статус и оставшиеся единицы для одного заказа.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
actionstringОбязательноstatusДолжно быть "status".
orderstringОбязательно—Один ID заказа.
Пример запроса
cURL
curl -X POST https://stream-rise.com/perfectPanel -H "Content-Type: application/json" -d '{"key":"YOUR_API_KEY","action":"status","order":12345}'
Ответ
200Успешно
JSON
{
  "charge": "0.27",
  "start_count": "3572",
  "status": "In progress",
  "remains": "157",
  "currency": "USD"
}
200Ошибка — неизвестный заказ
JSON
{
  "error": "Incorrect order ID"
}
POST/perfectPanel

Возвращает статус сразу для многих заказов, с ключом по ID заказа.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
actionstringОбязательноstatusДолжно быть "status".
ordersstringОбязательно—ID заказов через запятую.
Пример запроса
cURL
curl -X POST https://stream-rise.com/perfectPanel -H "Content-Type: application/json" -d '{"key":"YOUR_API_KEY","action":"status","orders":"12345,12346,99999"}'
Ответ
200Успешно
JSON
{
  "12345": {
    "charge": "0.27",
    "start_count": "3572",
    "status": "Partial",
    "remains": "157",
    "currency": "USD"
  },
  "12346": {
    "charge": "1.44",
    "start_count": "234",
    "status": "In progress",
    "remains": "10",
    "currency": "USD"
  },
  "99999": {
    "error": "Incorrect order ID"
  }
}
POST/perfectPanel

Создаёт заказ. Услуга указывается по её числовому ID PerfectPanel из списка услуг.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
actionstringОбязательноaddДолжно быть «add».
serviceintegerОбязательно—Числовой ID услуги из списка услуг.
linkstringОбязательно—Полный URL канала, на который направлен заказ.
quantityintegerОбязательно—Количество единиц к выполнению, в пределах минимума и максимума услуги.
intervalstringНеобязательно—Услуги для зрителей: интервал подачи в минутах.
commentsstringНеобязательно—Услуги чат-ботов: пользовательские сообщения, разделённые переносом строки.
periodAmountstringНеобязательно—Услуги на период: сколько длится заказ.
Примеры кода
curl -X POST https://stream-rise.com/perfectPanel -H "Content-Type: application/json" -d '{"key":"YOUR_API_KEY","action":"add","service":1,"link":"https://twitch.tv/username","quantity":100}'
const res = await fetch("https://stream-rise.com/perfectPanel", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    key: "YOUR_API_KEY",
    action: "add",
    service: 1,
    link: "https://twitch.tv/username",
    quantity: 100
  })
});
const data = await res.json();
import requests

res = requests.post(
    "https://stream-rise.com/perfectPanel",
    json={
        "key": "YOUR_API_KEY",
        "action": "add",
        "service": 1,
        "link": "https://twitch.tv/username",
        "quantity": 100,
    },
)
data = res.json()
Ответ
200Успешно
JSON
{
  "order": 23501
}
POST/perfectPanel

Отменяет один или несколько заказов. Доступность зависит от того, поддерживает ли сервис отмену.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
actionstringОбязательноcancelДолжно быть «cancel».
ordersstringОбязательно—ID заказов через запятую.
Пример запроса
cURL
curl -X POST https://stream-rise.com/perfectPanel -H "Content-Type: application/json" -d '{"key":"YOUR_API_KEY","action":"cancel","orders":"23501,23502"}'
Ответ
200Успешно
JSON
[
  {
    "order": 23501,
    "cancel": 1
  },
  {
    "order": 23502,
    "cancel": {
      "error": "Incorrect order ID"
    }
  }
]

Каталог услуг

Нативные эндпоинты каталога — богаче, чем PerfectPanel «services»: с семействами, полями по каждой услуге, таблицами цен и лимитами.

GET/api/getFamilyServices

Перечисляет семейства услуг (платформы) и порядок их отображения.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
Пример запроса
cURL
curl "https://stream-rise.com/api/getFamilyServices?key=YOUR_API_KEY"
Ответ
200Успешно
JSON
[
  {
    "service": "twitch",
    "order": 1
  },
  {
    "service": "kick",
    "order": 2
  },
  {
    "service": "youtube",
    "order": 3
  },
  {
    "service": "tiktok",
    "order": 4
  }
]
GET/api/getServices

Возвращает все услуги, сгруппированные по семействам, с метаданными полей для каждой услуги.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
Пример запроса
cURL
curl "https://stream-rise.com/api/getServices?key=YOUR_API_KEY"
Ответ
200Успешно
JSON
{
  "services": {
    "twitch": {
      "twitchViewers": {
        "service": "twitchViewers",
        "serviceFamily": "twitch",
        "serviceType": "viewers",
        "enabled": true,
        "fieldsData": { … }
      },
      "twitchChatBots": {
        "service": "twitchChatBots",
        "serviceFamily": "twitch",
        "serviceType": "chatbots",
        "enabled": true,
        "fieldsData": { … }
      }
    },
    "kick": { … }
  },
  "types": { … }
}
GET/api/getPrices

Возвращает таблицу цен услуги (цены за единицу по тарифам).

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
servicestringНеобязательно—Фильтр по одной услуге.
Пример запроса
cURL
curl "https://stream-rise.com/api/getPrices?key=YOUR_API_KEY&service=twitchViewers"
Ответ
200Успешно
JSON
{
  "twitchViewers": {
    "1": {
      "10": 0.9,
      "50": 4.2,
      "100": 7.8
    }
  }
}
GET/api/availableToSend

Перечисляет поля, которые каждая услуга принимает при создании заказа.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
Пример запроса
cURL
curl "https://stream-rise.com/api/availableToSend?key=YOUR_API_KEY"
Ответ
200Успешно
JSON
{
  "twitchViewers": [
    "channel",
    "amount",
    "interval"
  ],
  "twitchChatBots": [
    "channel",
    "amount",
    "comments"
  ],
  "types": {
    "viewers": [
      "channel",
      "amount"
    ],
    "chatbots": [
      "channel",
      "amount",
      "comments"
    ]
  }
}
GET/api/availableToChange

Перечисляет поля, которые каждая услуга позволяет менять в существующем заказе.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
Пример запроса
cURL
curl "https://stream-rise.com/api/availableToChange?key=YOUR_API_KEY"
Ответ
200Успешно
JSON
{
  "twitchViewers": [
    "channel",
    "amount"
  ],
  "twitchChatBots": [
    "channel",
    "comments"
  ],
  "types": {
    "viewers": [
      "channel",
      "amount"
    ],
    "chatbots": [
      "channel",
      "comments"
    ]
  }
}
GET/api/availableToUpgrade

Перечисляет поля, которые каждая услуга позволяет улучшать в существующем заказе.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
Пример запроса
cURL
curl "https://stream-rise.com/api/availableToUpgrade?key=YOUR_API_KEY"
Ответ
200Успешно
JSON
{
  "twitchViewers": [
    "amount"
  ],
  "twitchViewersPeriod": [
    "amount",
    "period"
  ],
  "types": {
    "viewers": [
      "amount"
    ]
  }
}
GET/api/getParamsLimits

Возвращает минимальные и максимальные границы для каждого числового поля услуги.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
servicestringНеобязательно—Услуга, для которой читать лимиты.
Пример запроса
cURL
curl "https://stream-rise.com/api/getParamsLimits?key=YOUR_API_KEY&service=twitchViewers"
Ответ
200Успешно
JSON
{
  "amount": {
    "min": 10,
    "max": 10000
  },
  "interval": {
    "min": 1,
    "max": 60
  }
}
GET/api/validateOrderProperty

Проверяет одно поле заказа (например, название канала) до отправки. Ключ не нужен.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
servicestringОбязательно—Услуга, к которой относится поле.
fieldstringОбязательно—Имя поля, например "channel".
valuestringОбязательно—Значение для проверки.
Пример запроса
cURL
curl "https://stream-rise.com/api/validateOrderProperty?service=twitchViewers&field=channel&value=username"
Ответ
200Валидно
HTTP
200 OK
200Ошибка — недопустимое значение
JSON
{
  "error": {
    "channel": "Channel not found"
  }
}

Заказы

Нативное управление заказами — создание, чтение, изменение, приостановка и удаление заказов. Услуги адресуются по строковому имени (например, twitchViewers).

GET/api/newOrder

Создаёт заказ и возвращает его ID и начальное состояние.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
servicestringОбязательно—Название услуги, например twitchViewers.
channelstringОбязательно—Название или ссылка на целевой канал.
amountintegerОбязательно—Количество единиц к выполнению.
periodstringНеобязательно—Услуги по периоду: тип периода.
periodAmountstringНеобязательно—Услуги на период: сколько длится заказ.
intervalstringНеобязательно—Услуги для зрителей: интервал подачи в минутах.
commentsstringНеобязательно—Услуги чат-ботов: сообщения, разделённые переносом строки.
Примеры кода
curl "https://stream-rise.com/api/newOrder?key=YOUR_API_KEY&service=twitchViewers&channel=username&amount=100"
const res = await fetch(
  "https://stream-rise.com/api/newOrder?key=YOUR_API_KEY&service=twitchViewers&channel=username&amount=100"
);
const data = await res.json();
import requests

res = requests.get(
    "https://stream-rise.com/api/newOrder",
    params={
        "key": "YOUR_API_KEY",
        "service": "twitchViewers",
        "channel": "username",
        "amount": 100,
    },
)
data = res.json()
Ответ
200Успешно
JSON
{
  "orderId": 12345,
  "order": {
    "id": 12345,
    "service": "twitchViewers",
    "channel": "username",
    "amount": 100,
    "status": "active"
  }
}
200Ошибка — проверка поля
JSON
{
  "error": {
    "channel": "channelEmpty"
  }
}
GET/api/getOrders

Возвращает ваши заказы с ключом по ID. При желании можно отфильтровать по конкретным ID.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
idsstringНеобязательно—ID через запятую для фильтра.
Пример запроса
cURL
curl "https://stream-rise.com/api/getOrders?key=YOUR_API_KEY"
Ответ
200Успешно
JSON
{
  "12345": {
    "id": 12345,
    "service": "twitchViewers",
    "channel": "username",
    "amount": 100,
    "pause": false
  },
  "12346": {
    "id": 12346,
    "service": "twitchChatBots",
    "channel": "username2",
    "amount": 50,
    "pause": true
  }
}
GET/api/getOrdersPage

Возвращает отсортированную, доступную для поиска, постраничную выборку заказов и необязательный итог.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
startчислоНеобязательно—Индекс первой строки (с 0).
endчислоНеобязательно—Индекс последней строки.
totalbooleanНеобязательно—Укажите общее количество строк.
sortKeystringНеобязательно—Столбец для сортировки, например orderTime.
sortDirectionstringНеобязательно—"asc" или "desc".
searchValuestringНеобязательно—Фильтр по свободному тексту.
serviceTypestringНеобязательно—Фильтр по типу услуги.
idsstringНеобязательно—ID через запятую для фильтра.
Пример запроса
cURL
curl "https://stream-rise.com/api/getOrdersPage?key=YOUR_API_KEY&start=0&end=15&total=true&sortKey=orderTime&sortDirection=desc"
Ответ
200Успешно
JSON
{
  "history": [
    {
      "id": 12345,
      "service": "twitchViewers",
      "channel": "username",
      "amount": 100,
      "orderTime": 1711500000000,
      "pause": false
    }
  ],
  "total": "42"
}
GET/api/pauseOrder

Приостанавливает доставку по активному заказу.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
idstringОбязательно—ID заказа.
Пример запроса
cURL
curl "https://stream-rise.com/api/pauseOrder?key=YOUR_API_KEY&id=12345"
Ответ
200Успешно
HTTP
200 OK
GET/api/resumeOrder

Возобновляет приостановленный заказ.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
idstringОбязательно—ID заказа.
Пример запроса
cURL
curl "https://stream-rise.com/api/resumeOrder?key=YOUR_API_KEY&id=12345"
Ответ
200Успешно
HTTP
200 OK
GET/api/deleteOrder

Безвозвратно удаляет заказ.

Запрос
Параметры запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
idstringОбязательно—ID заказа.
Пример запроса
cURL
curl "https://stream-rise.com/api/deleteOrder?key=YOUR_API_KEY&id=12345"
Ответ
200Успешно
HTTP
200 OK
POST/api/calculateUpgradePrice

Рассчитывает цену и скидку на апгрейд заказа, не применяя его.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
idstringОбязательно—ID заказа.
orderobjectОбязательно—Свойства нового заказа для расчёта цены.
Пример запроса
cURL
curl -X POST "https://stream-rise.com/api/calculateUpgradePrice?key=YOUR_API_KEY" -H "Content-Type: application/json" -d '{"id":12345,"order":{"amount":200}}'
Ответ
200Успешно
JSON
{
  "price": 5.5,
  "totalDiscount": 0.55
}
POST/api/upgradeOrder

Применяет апгрейд (например, больше единиц) к существующему заказу.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
idstringОбязательно—ID заказа.
orderobjectОбязательно—Свойства нового заказа.
Пример запроса
cURL
curl -X POST "https://stream-rise.com/api/upgradeOrder?key=YOUR_API_KEY" -H "Content-Type: application/json" -d '{"id":12345,"order":{"amount":200}}'
Ответ
200Успешно
HTTP
200 OK
POST/api/changeOrder

Изменяет редактируемые параметры заказа, например целевой канал.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Ваш API-ключ.
idstringОбязательно—ID заказа.
orderobjectОбязательно—Свойства для изменения.
Пример запроса
cURL
curl -X POST "https://stream-rise.com/api/changeOrder?key=YOUR_API_KEY" -H "Content-Type: application/json" -d '{"id":12345,"order":{"channel":"new_channel_name"}}'
Ответ
200Успешно
HTTP
200 OK
200Ошибка — проверка поля
JSON
{
  "error": {
    "channel": "Invalid channel name"
  }
}

В реальном времени

Статус заказа передаётся по WebSocket — тот же живой поток, на котором работает панель Streamrise. Используйте его вместо цикла опроса; /api/getOrders остаётся запасным вариантом. Классические HTTP-вебхуки (POST на ваш URL) запланированы и пока не работают.

WSwss://stream-rise.com

Откройте WebSocket на origin сайта, пройдите авторизацию своим API-ключом и подпишитесь на поток ordersUpdates. Изменения заказов затем передаются вам по мере их появления (пакетами примерно каждые 250 мс), только с полями, которые разрешено читать вашему ключу. Число одновременных сокетов на ключ ограничено (по умолчанию 4; партнёрские лимиты задаются для каждого ключа). Чтобы ограничить поток одним заказом, подпишитесь на orderUpdatesByOrderId; чтобы остановить поток, отправьте {"event":"unsubscribe","thread":"…"}.

Запрос
Тело запроса
ПолеТипОбязательноПо умолчаниюОписание
keystringОбязательно—Первое сообщение после подключения: {"key": "YOUR_API_KEY"} — аутентифицирует сокет. Неаутентифицированные сокеты получают {"event":"no auth"}.
eventstringОбязательно—"subscribe" или "unsubscribe" — отправляется следующим сообщением после авторизации.
threadstringОбязательно—"ordersUpdates" для всех ваших заказов или "orderUpdatesByOrderId" для одного заказа.
Примеры кода
# wscat (npm i -g wscat)
wscat -c wss://stream-rise.com
> {"key": "YOUR_API_KEY"}
< {"event":"auth","message":"Authenticated","socketsLeft":3}
> {"event": "subscribe", "thread": "ordersUpdates"}
< {"event":"subscribe","message":"subscribed to ordersUpdates"}
const WebSocket = require('ws');
const ws = new WebSocket('wss://stream-rise.com');
ws.on('open', () => ws.send(JSON.stringify({ key: 'YOUR_API_KEY' })));
ws.on('message', (m) => {
  const msg = JSON.parse(m.toString());
  if (msg.event === 'auth') {
    ws.send(JSON.stringify({ event: 'subscribe', thread: 'ordersUpdates' }));
  }
  if (msg.event === 'threadMessage' && msg.thread === 'ordersUpdates') {
    console.log(msg.message.orders); // { "<orderId>": { ...changed fields } }
  }
});
import asyncio, json, websockets

async def main():
    async with websockets.connect("wss://stream-rise.com") as ws:
        await ws.send(json.dumps({"key": "YOUR_API_KEY"}))
        async for raw in ws:
            msg = json.loads(raw)
            if msg.get("event") == "auth":
                await ws.send(json.dumps({"event": "subscribe", "thread": "ordersUpdates"}))
            if msg.get("event") == "threadMessage" and msg.get("thread") == "ordersUpdates":
                print(msg["message"]["orders"])  # { "<orderId>": { ...changed fields } }

asyncio.run(main())
Ответ
WSПри подключении
JSON
{
  "event": "socketClientId",
  "socketClientId": 13
}
WSПосле ключевого сообщения
JSON
{
  "event": "auth",
  "message": "Authenticated",
  "socketsLeft": 3
}
WSПодписка подтверждена
JSON
{
  "event": "subscribe",
  "message": "subscribed to ordersUpdates"
}
WSОбновление заказа — передаётся, пакетами ~250 мс
JSON
{
  "event": "threadMessage",
  "thread": "ordersUpdates",
  "message": {
    "orders": {
      "12345": { "status": …, /* changed, whitelisted fields */ }
    }
  }
}
WSСлишком много сокетов для этого ключа
JSON
{
  "event": "too many",
  "message": "Too many sockets connected for this client"
}
04 Коды ошибок

Каждая ошибка — расшифрована.

Специальных HTTP-кодов ошибок для отдельной обработки нет — неудачный вызов всё равно возвращает 200 OK с небольшим error поле. Оно бывает в одном из двух видов: строка из PerfectPanel или { field: reason } сопоставление из native-формата /api/*. Фильтр по любому тексту ниже.

Ошибка PerfectPanel

JSON
{ "error": "Incorrect order ID" }

Ошибка нативного поля

JSON
{ "error": { "channel": "channelEmpty" } }
7 ошибок
областьответ с ошибкойкогда это происходиткак исправить
perfectPanel{ "error": "Incorrect order ID" }ID заказа неизвестен или не относится к этому ключу.Убедитесь, что ID вернулся на этот аккаунт.
perfectPanel{ "error": "Access denied" }Это действие не разрешено для этого ключа.Используйте ключ, у которого есть право на это действие.
perfectPanel{ "error": "Service doesn't support cancel" }Услугу нельзя отменить.Проверить cancel сначала на сервисе в каталоге.
/api/*{ "error": { "channel": "channelEmpty" } }Обязательное поле не заполнено.Прочитайте ключ поля и укажите значение.
/api/*{ "error": { "channel": "Channel not found" } }Канал не существует или недоступен.Сначала проверьте его с помощью /api/validateOrderProperty.
/api/*{ "error": { "channel": "Invalid channel name" } }Поле не прошло проверку при изменении или апгрейде.Исправьте указанное поле и отправьте снова.
both{ "error": "..." }The key отсутствует, неверен или отозван.Отправьте действующий ключ из раздела «Настройки → API» вашего аккаунта.
Нет ошибок, подходящих под этот фильтр. Сбросьте фильтр, чтобы увидеть все.
05 SLA и надёжность

К чему мы стремимся. Цели

99.5%
Целевой аптайм
Доступность, на которую мы проектируем и которую поддерживаем — это цель, а не договорная гарантия.
100%
Возвращено
Невыполненные или отменённые единицы полностью возвращаются на ваш баланс.
4ч
Ответ поддержки
Типичный первый ответ на обращение по разработке, 9–21 UTC.

Это операционные цели, а не договорные гарантии. Вопросы или инцидент? Напишите нам: /contacts.

06 История изменений

Стабильно и без версий.

API Streamrise стабилен и без версий. Новые услуги, поля и эндпоинты добавляются, не ломая существующие вызовы, — поэтому нет переключений версий, за которыми нужно следить, и нет сроков устаревания, которые нужно догонять.

Сегодня
Совместимо

Два интерфейса: эндпоинт, совместимый с PerfectPanel, и собственный /api/* поверхность, обе аутентифицированы вашим key.

Аддитивный

Новые услуги и поля добавляются без изменения существующей структуры запросов и ответов.

Запланировано

Webhook'и, уровни частоты запросов и публичная история изменений есть в планах.

07 Всё ещё нужна помощь

Поговорите с теми, кто этим занимается.

Поддержка разработчиков, с приоритетной маршрутизацией.

Проблемы с API обрабатываются вне общей очереди. Пришлите ID заказа и точный запрос, который вы отправили, — и мы сможем отследить его напрямую.

Email поддержки разработчиков Общие контакты Обычно отвечаем в течение 4 часов, 9–21 UTC
Как получить API-ключ Streamrise?

Войдите в аккаунт Streamrise и откройте Настройки → API — ваш ключ показан там, его можно скопировать (перевыпустить можно в любой момент). Храните его как пароль: с него списываются средства с вашего баланса.

Какой лимит запросов к API Streamrise?

Сейчас принудительного лимита частоты запросов нет. Пожалуйста, распределяйте массовые вызовы разумно; опубликованные объёмные уровни — в планах.

Есть ли у Streamrise вебхуки?

Пока нет — вебхуки запланированы. Пока опрашивайте /api/getOrders или PerfectPanel status отслеживать выполнение.

Streamrise делает докрутку или возврат по заказам?

Отдельного эндпоинта докрутки сейчас нет. Невыполненные или отменённые единицы возвращаются на ваш баланс.

API версионируется?

Нет. API стабильный и без версий — новые услуги и поля добавляются, не ломая существующие вызовы.

Как избежать дублей заказов при повторных попытках?

Ключа идемпотентности сейчас нет, поэтому не повторяйте слепо запись, которая могла уже пройти, — проверьте /api/getOrders первый.