Русский
Cappi-Services

Документация API для реселлеров

Продавайте наши услуги для Steam из собственной панели по реселлерским ценам.

Создавайте заказы, отслеживайте их выполнение и проверяйте баланс простыми HTTP-запросами. Все ответы приходят в формате JSON, все цены указаны в USD.

На заказы, оформленные через API, действует скидка 20% от цен в панели. Указанные ниже цены уже включают её.

Базовый URL

https://cappiservices.com/api/Reseller

Ваш API-ключ находится в панели клиента, в разделе API Key. Создание нового ключа сразу делает предыдущий недействительным. Открыть страницу API Key

Тестирование и использование

Для тестирования и работы с API можно использовать Swagger UI:

https://cappiservices.com/swagger

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

Для всех запросов, кроме ServicesList, нужен ваш API-ключ. Передавайте его одним из трёх способов:

Ключи, созданные до ноября 2026 года, могут содержать символы + и /: при передаче в строке запроса кодируйте их как URL, иначе + превратится в пробел и ключ будет отклонён. Новые ключи состоят из 64 шестнадцатеричных символов и в кодировании не нуждаются.

Запросы и ответы

Параметры передаются в строке запроса или в теле формы (POST). При успехе возвращается HTTP 200; ошибка бизнес-логики возвращает HTTP 400 с полем error (RegisterOrder дополнительно устанавливает success в false). Если заказ отклонён, средства не списываются.

Лимит: 120 запросов в 1 мин. с одного IP-адреса. При превышении API отвечает HTTP 429 с заголовком Retry-After.

Услуги

Эта таблица обновляется в реальном времени: цены уже включают вашу скидку, а max - это количество, доступное прямо сейчас (оно зависит от остатка наших аккаунтов). Услуга со статусом «Недоступна» отклоняется методом RegisterOrder, пока снова не станет доступной; та же информация содержится в поле active метода ServicesList.

ID Услуга Тип Цена за единицу Мин. / Макс. Статус
199825
Steam Like SharedFiles/Screenshots/Guides/Workshop

link: Ссылка на скриншот, иллюстрацию, руководство или предмет Мастерской: steamcommunity.com/sharedfiles/filedetails/?id=... (или /workshop/filedetails/?id=...).

Default $ 0.0152 1 / 4797 Доступна
199826
Steam Favorite SharedFiles/Screenshots/Guides/Workshop

link: Ссылка на скриншот, иллюстрацию, руководство или предмет Мастерской: steamcommunity.com/sharedfiles/filedetails/?id=... (или /workshop/filedetails/?id=...).

Default $ 0.0152 1 / 4797 Доступна
199827
Steam Group Members

link: Ссылка на публичную группу: steamcommunity.com/groups/yourgroup. Группа должна быть публичной.

Default $ 0.02 1 / 5467 Доступна
199828
Steam Workshop Followers

link: SteamID64 автора Мастерской (17 цифр, например 76561198307708414) или steamcommunity.com/profiles/SteamID64. Короткие ссылки (/id/name) не принимаются.

Default $ 0.012 1 / 4797 Доступна
199829
Steam Curator Followers

link: Страница куратора: store.steampowered.com/curator/12345678-Name/.

Default $ 0.024 1 / 5467 Доступна
199830
Steam Game Review Rate Up (helpful votes)

link: Ссылка на обзор: steamcommunity.com/id/user/recommended/appid/ или steamcommunity.com/profiles/SteamID64/recommended/appid/. Голоса всегда ставятся как «полезный» (Rate Up).

Default $ 0.012 1 / 4797 Доступна
199831
Steam Trade Boost (trade offers, 1 gem each)

link: Ссылка для обмена принимающего аккаунта в Steam: steamcommunity.com/tradeoffer/new/?partner=...&token=... Инвентарь должен быть открытым; каждая единица - это одно предложение обмена с 1 самоцветом.

Default $ 0.0022 1 / 1000 Доступна
199832
Steam Profile Comments (ready-made packages)

link: SteamID64 профиля (17 цифр) или steamcommunity.com/profiles/SteamID64. В профиле должны быть разрешены комментарии. Комментарии берутся из наших готовых пакетов (обязательный параметр package).

Необязательные параметры: package

Default $ 0.0264 1 / 10000 Доступна
199833
Steam Screenshot/Artwork/Workshop Comments (ready-made packages)

link: Ссылка на скриншот, иллюстрацию или предмет Мастерской (steamcommunity.com/sharedfiles/filedetails/?id=...). Комментарии берутся из наших готовых пакетов (обязательный параметр package).

Необязательные параметры: package

Default $ 0.0264 1 / 10000 Доступна
199834
Steam Group Comments (ready-made packages)

link: Ссылка на публичную группу: steamcommunity.com/groups/yourgroup. Комментарии берутся из наших готовых пакетов (обязательный параметр package).

Необязательные параметры: package

Default $ 0.0264 1 / 10000 Доступна
199835
Steam Profile Comments (your own comments)

link: SteamID64 профиля или steamcommunity.com/profiles/SteamID64, а также ваши собственные комментарии в параметре comments (по одному в строке). Необязательный параметр delay.

Необязательные параметры: delay, comments_json, package, allow_partial

Custom Comments $ 0.0264 1 / 10000 Доступна
199836
Steam Screenshot/Artwork/Workshop Comments (your own comments)

link: Ссылка на скриншот, иллюстрацию или предмет Мастерской, а также ваши собственные комментарии в параметре comments (по одному в строке). Необязательный параметр delay.

Необязательные параметры: delay, comments_json, package, allow_partial

Custom Comments $ 0.0264 1 / 10000 Доступна
199837
Steam Group Comments (your own comments)

link: Ссылка на публичную группу, а также ваши собственные комментарии в параметре comments (по одному в строке). Необязательный параметр delay.

Необязательные параметры: delay, comments_json, package, allow_partial

Custom Comments $ 0.0264 1 / 10000 Доступна

Услуги комментариев

Официальные пакеты: укажите lib:<id> в параметре package. Нажмите на название, чтобы увидеть его комментарии:

В услугах с готовыми комментариями параметр package обязателен. Он принимает cat:<category>[:<language>] (одобренные комментарии нашей библиотеки из одной категории; без языка — английские плюс комментарии без слов) и lib:<id> (официальный или опубликованный пакет библиотеки либо один из ваших пакетов; до 10 на заказ). Несколько значений разделяйте запятыми: заказ использует до quantity разных комментариев из них, выбранных случайно без повторов (по одному на комментарий), и их должно быть не меньше 5.

Категории библиотеки:

cat:praise Compliments cat:friendly Greetings & Wishes cat:funny Funny cat:game Skill & Gameplay cat:counter_strike Counter-Strike cat:teammate Teammates & GG cat:rep +Rep (gameplay) cat:emoji Emoji cat:ascii_art ASCII Art cat:birthday Birthday cat:halloween Halloween cat:christmas Christmas cat:new_year New Year cat:valentines Valentine's Day cat:festive Other Holidays cat:toxic Toxic cat:spicy Spicy (18+) cat:other Other

Коды языков: en, pt, es, ru, tr, de, pl, zh, ja, fr, it, ko, uk, ar, th, vi, id, ms, tl, hi, he, cs, sk, nl, hu, ro, sv, da, fi, no, el, bg, sr, none, other (none — комментарии без слов, например эмодзи).

Ваши собственные комментарии (параметр comments): один комментарий в строке, до 500 строк по 1000 символов. Пустые строки игнорируются. Передавайте параметр в теле формы, а не в URL.

Услуги со своими комментариями принимают ровно один источник: comments (один комментарий на строку, как выше), comments_json (только в теле формы: JSON-массив строк, один комментарий на элемент; переносы строк и отступы сохраняются; до 999 байт и 30 строк на комментарий, а quantity — не более чем в 25 раз больше числа разных комментариев) или package=lib:<id> (ваши личные пакеты библиотеки, через запятую).

Каждый свой комментарий проверяется до создания заказа. Отклоняется только мошенничество: репутация обменов или доверия, ссылки, контакты вне Steam, выдача себя за поддержку Valve или Steam, фальшивые розыгрыши или реклама, реальные личные данные и сексуальный контент с несовершеннолетними. Шутки, мат, токсичный и взрослый контент разрешены. Если какой-либо комментарий не одобрен, заказ отклоняется и ничего не списывается; отправьте allow_partial=1, чтобы продолжить только с одобренными (по той же цене). Список comments_json, в котором разных комментариев больше, чем quantity, сокращается до случайной выборки (truncatedComments).

Параметр delay (только для собственных комментариев): интервал между двумя комментариями. Допустимые значения: 10 Seconds, 7 Minutes, 15 Minutes, 30 Minutes, 1 Hour, 3 Hours, 6 Hours. По умолчанию: 10 Seconds. Цена за комментарий зависит от выбранного интервала; rate в таблице — это цена для 10 Seconds.

Эндпоинты

GET /ServicesList

Список всех услуг с ID, ценой за единицу, лимитами и форматом ссылки. Аутентификация не требуется.

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

curl "https://cappiservices.com/api/Reseller/ServicesList"

Пример ответа

[
  {
    "rate": 0.0152,
    "service": 199825,
    "category": "Steam",
    "name": "Steam Like SharedFiles/Screenshots/Guides/Workshop",
    "desc": "link: a steamcommunity.com/sharedfiles/filedetails/?id=... URL ...",
    "type": "Default",
    "min": 1,
    "max": 1100,
    "active": true,
    "optionalParams": []
  },
  {
    "rate": 0.0264,
    "service": 199835,
    "category": "Steam",
    "name": "Steam Profile Comments (your own comments)",
    "desc": "link: the profile SteamID64 ... Send \"comments\", \"comments_json\" or package=lib:<id> ...",
    "type": "Custom Comments",
    "min": 1,
    "max": 10000,
    "active": true,
    "optionalParams": ["delay", "comments_json", "package", "allow_partial"]
  }
]

Параметры ответа

ПараметрТипОписание
serviceintegerID услуги.
ratedecimalЦена за единицу, все цены указаны в USD.
categorystringКатегория услуги.
namestringНазвание услуги.
descstringОписание услуги или инструкция по её использованию.
typestringDefault (link + quantity; для сервисов комментариев также нужен package) или Custom Comments (дополнительно нужен comments, comments_json или package=lib:).
minintegerМинимальное допустимое количество для услуги.
maxintegerМаксимальное допустимое количество для услуги.
activebooleanfalse, если услуга отключена или закончился запас: RegisterOrder её отклоняет.
optionalParamsstring[]Необязательные параметры RegisterOrder, которые принимает услуга.

GET /Balance

Текущий баланс кошелька аккаунта, которому принадлежит API-ключ.

Параметры запроса

ПараметрТипОписание
keystringAPI-ключ для аутентификации.

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

curl -H "X-Api-Key: YOUR_API_KEY" "https://cappiservices.com/api/Reseller/Balance"

Пример ответа

{ "balance": 250.75, "currency": "USD" }

POST /RegisterOrder

Создаёт заказ и сразу списывает средства с кошелька (quantity × rate). Ссылка проверяется до списания; заказ отклоняется без списания средств, если услуга недоступна, количество вне допустимого диапазона, ссылка не подходит для услуги или на балансе недостаточно средств.

Параметры запроса

ПараметрТипОписание
keystringAPI-ключ для аутентификации.
serviceIdintegerID услуги.
linkstringЦель заказа: URL, SteamID64 или ссылка для обмена, в зависимости от услуги (см. таблицу услуг).
quantityintegerКоличество единиц для выполнения, от min до max услуги.
commentsstringТолько для услуг с собственными комментариями: ваши комментарии, по одному в строке.
comments_jsonstringТолько для услуг со своими комментариями и только в теле формы: JSON-массив строк, один комментарий на элемент (переносы строк разрешены). Используется вместо comments.
packagestringТолько для услуг с комментариями. Обязателен в услугах с готовыми комментариями; несколько значений через запятую. Принимает cat:<category>[:<language>] и lib:<id> (до 10 lib:<id> на заказ). В услугах с собственными комментариями: lib:<id> ваших личных пакетов.
delaystringТолько для услуг с собственными комментариями: интервал между комментариями; цена за комментарий зависит от этого интервала. Необязательный, по умолчанию 10 Seconds.
allow_partialstringТолько для услуг со своими комментариями: 1 — продолжить с одобренными комментариями, если какие-то не одобрены (по той же цене). Необязательный.

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

curl -X POST -H "X-Api-Key: YOUR_API_KEY" \
  -d "serviceId=199825" \
  -d "link=https://steamcommunity.com/sharedfiles/filedetails/?id=123456789" \
  -d "quantity=100" \
  "https://cappiservices.com/api/Reseller/RegisterOrder"

# custom comments (199835): one comment per line, URL-encoded line breaks (%0A) in the form body
curl -X POST -H "X-Api-Key: YOUR_API_KEY" \
  --data-urlencode "serviceId=199835" \
  --data-urlencode "link=76561198307708414" \
  --data-urlencode "quantity=20" \
  --data-urlencode "delay=7 Minutes" \
  --data-urlencode $'comments=Nice profile!\nGreat games.\n+rep' \
  "https://cappiservices.com/api/Reseller/RegisterOrder"

# comments_json (199835-199837, form body only): one comment per item, line breaks kept
curl -X POST -H "X-Api-Key: YOUR_API_KEY" \
  --data-urlencode "serviceId=199835" \
  --data-urlencode "link=76561198307708414" \
  --data-urlencode "quantity=20" \
  --data-urlencode 'comments_json=["Nice profile!","GG WP\nsee you next match"]' \
  "https://cappiservices.com/api/Reseller/RegisterOrder"

# library (199832-199834, package required): categories and/or packages, comma separated
curl -X POST -H "X-Api-Key: YOUR_API_KEY" \
  --data-urlencode "serviceId=199832" \
  --data-urlencode "link=76561198307708414" \
  --data-urlencode "quantity=20" \
  --data-urlencode "package=cat:praise:en,cat:emoji,lib:12" \
  "https://cappiservices.com/api/Reseller/RegisterOrder"

Пример ответа

{ "success": true, "error": null, "insufficientFunds": false, "orderId": 12345, "charge": 1.52 }

{ "success": false, "error": "Insufficient Funds!!", "insufficientFunds": true, "orderId": 0, "charge": 1.52 }

{ "success": false, "error": "Some comments were not approved (see rejectedIndexes). ...", "insufficientFunds": false, "orderId": 0, "charge": 0,
  "acceptedComments": 2, "rejectedComments": 1, "reviewComments": 0, "unverifiedComments": 0, "truncatedComments": 0,
  "rejectedIndexes": [2], "rejectedReasons": ["link"] }

Параметры ответа

ПараметрТипОписание
successbooleanПоказывает, был ли заказ успешно оформлен.
orderIdintegerID оформленного заказа.
chargedecimalСписанная сумма (USD): quantity × rate.
insufficientFundsbooleanПоказывает, был ли заказ отклонён из-за недостатка средств на балансе.
errorstringСообщение об ошибке, если заказ не удалось оформить.
acceptedComments
rejectedComments
reviewComments
unverifiedComments
truncatedComments
integerТолько для заказов со своими комментариями: сколько комментариев из вашего списка одобрено, отклонено, отправлено на ручную проверку, не проверено (повторите позже) и не вошло из-за сокращения до quantity.
rejectedIndexes
rejectedReasons
integer[]
string[]
Только для заказов со своими комментариями: позиции (с 0) отклонённых комментариев в вашем списке и причина каждого (format, link, contact или policy).

GET /OrderStatus

Статус и данные о выполнении одного из ваших заказов.

Параметры запроса

ПараметрТипОписание
keystringAPI-ключ для аутентификации.
orderIdintegerИдентификационный номер заказа.

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

curl -H "X-Api-Key: YOUR_API_KEY" "https://cappiservices.com/api/Reseller/OrderStatus?orderId=12345"

Пример ответа

{
  "status": "Complete",
  "charge": 1.52,
  "walletReturn": 0.0304,
  "mode": "Like_SharedFile",
  "sucess": 98,
  "success": 98,
  "failed": 2,
  "quantity": 100,
  "remains": 2,
  "observation": "Info - Your order was finalized due to a lack of accounts in the database...",
  "currency": "USD",
  "date": "2026-11-01T14:03:27.1234567Z"
}

Параметры ответа

ПараметрТипОписание
statusstringСтатус заказа: EnviarParaBackEnd (оплачен, ожидает отправки), NaFila (в очереди), Processing (выполняется) или Complete (завершён: выполнен полностью, частично, не выполнен или отменён).
chargedecimalСумма, списанная с кошелька при создании заказа (USD).
walletReturndecimalСумма, возвращённая на ваш кошелёк за единицы, которые не удалось выполнить (USD). Равна 0, пока заказ не перейдёт в статус Complete.
modestringВнутреннее название услуги (MODE).
successintegerВыполненные единицы.
sucessintegerТо же значение, что и success. Сохранено для совместимости (устаревшее написание).
failedintegerНевыполненные единицы (окончательное значение только при статусе Complete).
quantityintegerЗаказанные единицы.
remainsintegerЕдиницы, которые ещё предстоит выполнить.
observationstringСообщение об итоге (неверная ссылка, закончились аккаунты, отмена...). Пусто, если всё выполнено.
currencystringВалюта списаний.
datestringДата и время создания (UTC).

Жизненный цикл заказа и возвраты

Средства списываются с кошелька при создании заказа. Заказ проходит статусы EnviarParaBackEnd, NaFila, Processing и Complete. Complete - единственный конечный статус: сравните quantity, success и failed, чтобы узнать, выполнен заказ полностью или частично. Единицы, которые не удалось выполнить, автоматически возвращаются на кошелёк при завершении заказа (walletReturn), а observation объясняет причину. Заказы нельзя отменить через API; используйте панель клиента, пока заказ в статусе Processing.

Сообщения об ошибках

Все ошибки возвращаются с HTTP 400 и полем error. Наиболее частые:

{ "error": "Invalid ApiKey." }
errorОписание
Invalid parametersОтсутствует или неверен key, serviceId, link или quantity.
Invalid ApiKey.Ключ не принадлежит ни одному аккаунту (проверьте URL-кодирование старых ключей).
Your account has been disabled, please contact support.
Before accessing the panel you need to confirm your email.
Аккаунт отключён или e-mail ещё не подтверждён.
Service:{id} Not FoundНеизвестный serviceId.
Service temporarily unavailable.Услуга сейчас отключена или закончился запас (см. active в ServicesList).
Quantity must be between 1 and {max}.Количество вне диапазона min/max услуги.
Invalid URL Link
Invalid Parameters: Only the user's SteamID64 must be entered, not a URL
Ссылка не соответствует формату, который ожидает услуга.
Insufficient Funds!!Баланс кошелька меньше quantity × rate. Средства не списаны.
Unknown comments package "..."
Unknown comments category "..."
Some comments were not approved ...
Comment review limit reached, try again later
Комментарии: неизвестный пакет или категория, слишком маленькая выборка, комментарии не одобрены или проверка временно недоступна. Ничего не списывается.
Order not found.
Access denied.
Заказ не существует или принадлежит другому аккаунту.
Too many requests... (HTTP 429)Лимит: 120 запросов в 1 мин. с одного IP-адреса. При превышении API отвечает HTTP 429 с заголовком Retry-After.