Português
Cappi-Services

Documentação da API de revenda

Venda nossos serviços Steam no seu próprio painel, com preço de revendedor.

Crie pedidos, acompanhe a entrega e consulte seu saldo com requisições HTTP simples. Toda resposta é JSON e todo preço é em USD.

Pedidos feitos pela API têm 20% de desconto sobre o preço do painel. Os preços abaixo já incluem o desconto.

URL base

https://cappiservices.com/api/Reseller

Sua chave de API fica no painel do cliente, em API Key. Criar uma chave nova invalida a anterior na hora. Abrir a página API Key

Testes e uso

Para testar e usar a API, você pode usar o Swagger UI:

https://cappiservices.com/swagger

Autenticação

Toda requisição, menos ServicesList, precisa da sua chave de API. Envie de uma destas três formas:

Chaves criadas antes de novembro de 2026 podem conter + e /: faça URL-encode ao enviá-las na query string, senão o + vira espaço e a chave é recusada. Chaves novas têm 64 caracteres hexadecimais e não precisam de encode.

Requisições e respostas

Os parâmetros vão na query string ou num corpo de formulário (POST). Sucesso responde HTTP 200; erro de negócio responde HTTP 400 com o campo error (no RegisterOrder, success também vem false). Nada é debitado quando um pedido é recusado.

Limite de 120 requisições a cada 1 minuto(s) por endereço IP. Acima disso a API responde HTTP 429 com o cabeçalho Retry-After.

Serviços

Esta tabela é ao vivo: os preços já incluem o seu desconto e max é a quantidade disponível agora (acompanha o nosso estoque de contas). Serviço marcado como indisponível é recusado pelo RegisterOrder até voltar; a mesma informação está no campo active do ServicesList.

ID Serviço Tipo Preço por unidade Mín / Máx Situação
199825
Steam Like SharedFiles/Screenshots/Guides/Workshop

link: URL da screenshot, artwork, guia ou item da Workshop: steamcommunity.com/sharedfiles/filedetails/?id=... (ou /workshop/filedetails/?id=...).

Default $ 0.0152 1 / 4797 Ativo
199826
Steam Favorite SharedFiles/Screenshots/Guides/Workshop

link: URL da screenshot, artwork, guia ou item da Workshop: steamcommunity.com/sharedfiles/filedetails/?id=... (ou /workshop/filedetails/?id=...).

Default $ 0.0152 1 / 4797 Ativo
199827
Steam Group Members

link: URL pública do grupo: steamcommunity.com/groups/seugrupo. O grupo precisa ser público.

Default $ 0.02 1 / 5467 Ativo
199828
Steam Workshop Followers

link: SteamID64 do autor na Workshop (17 dígitos, ex.: 76561198307708414) ou steamcommunity.com/profiles/SteamID64. URLs personalizadas (/id/nome) não são aceitas.

Default $ 0.012 1 / 4797 Ativo
199829
Steam Curator Followers

link: Página do curador: store.steampowered.com/curator/12345678-Nome/.

Default $ 0.024 1 / 5467 Ativo
199830
Steam Game Review Rate Up (helpful votes)

link: URL da análise: steamcommunity.com/id/usuario/recommended/appid/ ou steamcommunity.com/profiles/SteamID64/recommended/appid/. Os votos são sempre "útil" (Rate Up).

Default $ 0.012 1 / 4797 Ativo
199831
Steam Trade Boost (trade offers, 1 gem each)

link: Trade URL da conta Steam que vai receber: steamcommunity.com/tradeoffer/new/?partner=...&token=... O inventário precisa ser público; cada unidade é uma troca com 1 gema.

Default $ 0.0022 1 / 1000 Ativo
199832
Steam Profile Comments (ready-made packages)

link: SteamID64 do perfil (17 dígitos) ou steamcommunity.com/profiles/SteamID64. O perfil precisa aceitar comentários. Os comentários vêm dos nossos pacotes prontos (parâmetro obrigatório package).

Parâmetros opcionais: package

Default $ 0.0264 1 / 10000 Ativo
199833
Steam Screenshot/Artwork/Workshop Comments (ready-made packages)

link: URL da screenshot, artwork ou item da Workshop (steamcommunity.com/sharedfiles/filedetails/?id=...). Os comentários vêm dos nossos pacotes prontos (parâmetro obrigatório package).

Parâmetros opcionais: package

Default $ 0.0264 1 / 10000 Ativo
199834
Steam Group Comments (ready-made packages)

link: URL pública do grupo: steamcommunity.com/groups/seugrupo. Os comentários vêm dos nossos pacotes prontos (parâmetro obrigatório package).

Parâmetros opcionais: package

Default $ 0.0264 1 / 10000 Ativo
199835
Steam Profile Comments (your own comments)

link: SteamID64 do perfil ou steamcommunity.com/profiles/SteamID64, mais os seus comentários no parâmetro comments (um por linha). Parâmetro opcional delay.

Parâmetros opcionais: delay, comments_json, package, allow_partial

Custom Comments $ 0.0264 1 / 10000 Ativo
199836
Steam Screenshot/Artwork/Workshop Comments (your own comments)

link: URL da screenshot, artwork ou item da Workshop, mais os seus comentários no parâmetro comments (um por linha). Parâmetro opcional delay.

Parâmetros opcionais: delay, comments_json, package, allow_partial

Custom Comments $ 0.0264 1 / 10000 Ativo
199837
Steam Group Comments (your own comments)

link: URL pública do grupo, mais os seus comentários no parâmetro comments (um por linha). Parâmetro opcional delay.

Parâmetros opcionais: delay, comments_json, package, allow_partial

Custom Comments $ 0.0264 1 / 10000 Ativo

Serviços de comentários

Pacotes oficiais: use lib:<id> no parâmetro package. Clique em um nome para ver os comentários dele:

Nos serviços de comentários prontos o parâmetro package é obrigatório. Ele aceita cat:<category>[:<language>] (comentários aprovados da nossa biblioteca em uma categoria; sem o idioma, inglês mais os comentários sem palavras) e lib:<id> (um pacote oficial ou publicado da biblioteca, ou um dos seus pacotes; até 10 por pedido). Separe vários por vírgula: o pedido usa até quantity comentários diferentes deles, sorteados sem repetir (um por comentário), e precisa de pelo menos 5 comentários.

Categorias da biblioteca:

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

Códigos de idioma: 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 = comentários sem palavras, como emoji).

Comentários próprios (parâmetro comments): um comentário por linha, até 500 linhas de 1000 caracteres cada. Linhas vazias são ignoradas. Envie no corpo do formulário, não na URL.

Os serviços de comentários próprios aceitam exatamente uma origem: comments (um comentário por linha, como acima), comments_json (só no corpo do formulário: um array JSON de strings, um comentário por item; quebras de linha e recuo são mantidos; até 999 bytes e 30 linhas por comentário, e a quantity pode ser no máximo 25 vezes o número de comentários diferentes) ou package=lib:<id> (seus pacotes privados da biblioteca, separados por vírgula).

Todo comentário próprio é revisado antes de o pedido ser criado. Só golpe é recusado: reputação de troca ou de confiança, links, contato fora da Steam, se passar pelo suporte da Valve ou da Steam, sorteio falso ou propaganda, dados pessoais reais e conteúdo sexual com menor. Piada, palavrão, conteúdo tóxico ou adulto são permitidos. Se algum comentário não for aprovado, o pedido é recusado e nada é debitado; envie allow_partial=1 para seguir só com os aprovados (mesmo preço). Uma lista comments_json com mais comentários diferentes que a quantity é cortada para uma amostra aleatória (truncatedComments).

Parâmetro delay (só comentários próprios): intervalo entre dois comentários. Valores aceitos: 10 Seconds, 7 Minutes, 15 Minutes, 30 Minutes, 1 Hour, 3 Hours, 6 Hours. Padrão: 10 Seconds. O preço por comentário é o do atraso escolhido; o rate da tabela é o preço de 10 Seconds.

Endpoints

GET /ServicesList

Lista de todos os serviços com ID, preço por unidade, limites e como preencher o link. Não precisa de autenticação.

Exemplo de requisição

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

Exemplo de resposta

[
  {
    "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"]
  }
]

Parâmetros da resposta

ParâmetroTipoDescrição
serviceintegerO ID do serviço.
ratedecimalPreço por unidade; todos os preços são em USD.
categorystringA categoria do serviço.
namestringO nome do serviço.
descstringDescrição do serviço ou de como usá-lo.
typestringDefault (link + quantity; os serviços de comentário também exigem package) ou Custom Comments (exige também comments, comments_json ou package=lib:).
minintegerA quantidade mínima permitida para o serviço.
maxintegerA quantidade máxima permitida para o serviço.
activebooleanfalse quando o serviço está desligado ou sem estoque: o RegisterOrder recusa.
optionalParamsstring[]Parâmetros opcionais do RegisterOrder que o serviço aceita.

GET /Balance

Saldo atual da carteira da conta dona da chave de API.

Parâmetros da requisição

ParâmetroTipoDescrição
keystringA chave de API para autenticação.

Exemplo de requisição

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

Exemplo de resposta

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

POST /RegisterOrder

Cria um pedido e debita a carteira na hora (quantity × rate). O link é validado antes do débito; o pedido é recusado, sem nada debitado, quando o serviço está indisponível, a quantidade está fora da faixa, o link não bate com o serviço ou o saldo é insuficiente.

Parâmetros da requisição

ParâmetroTipoDescrição
keystringA chave de API para autenticação.
serviceIdintegerO ID do serviço.
linkstringAlvo do pedido: URL, SteamID64 ou trade URL, conforme o serviço (veja a tabela de serviços).
quantityintegerUnidades a entregar, entre o mín e o máx do serviço.
commentsstringSó nos serviços de comentários próprios: seus comentários, um por linha.
comments_jsonstringSó nos serviços de comentários próprios e só no corpo do formulário: array JSON de strings, um comentário por item (quebras de linha permitidas). Use no lugar de comments.
packagestringSó nos serviços de comentários. Obrigatório nos serviços de comentários prontos; vários valores separados por vírgula. Aceita cat:<category>[:<language>] e lib:<id> (até 10 lib:<id> por pedido). Nos serviços de comentários próprios: lib:<id> dos seus pacotes privados.
delaystringSó nos serviços de comentários próprios: intervalo entre os comentários; o preço por comentário é o desse atraso. Opcional, padrão 10 Seconds.
allow_partialstringSó nos serviços de comentários próprios: 1 = seguir com os comentários aprovados quando algum não for aprovado (mesmo preço). Opcional.

Exemplo de requisição

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"

Exemplo de resposta

{ "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"] }

Parâmetros da resposta

ParâmetroTipoDescrição
successbooleanIndica se o pedido foi registrado com sucesso.
orderIdintegerO ID do pedido registrado.
chargedecimalValor debitado (USD): quantity × rate.
insufficientFundsbooleanIndica se o pedido não foi processado por saldo insuficiente.
errorstringMensagem de erro, caso o registro do pedido tenha falhado.
acceptedComments
rejectedComments
reviewComments
unverifiedComments
truncatedComments
integerSó em pedidos de comentários próprios: quantos comentários da sua lista foram aprovados, recusados, enviados para revisão manual, ficaram sem revisão (tente de novo mais tarde) e ficaram de fora pelo corte para a quantity.
rejectedIndexes
rejectedReasons
integer[]
string[]
Só em pedidos de comentários próprios: posições (a partir de 0) dos comentários recusados na sua lista e o motivo de cada um (format, link, contact ou policy).

GET /OrderStatus

Situação e números de entrega de um pedido seu.

Parâmetros da requisição

ParâmetroTipoDescrição
keystringA chave de API para autenticação.
orderIdintegerO número de identificação do pedido.

Exemplo de requisição

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

Exemplo de resposta

{
  "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"
}

Parâmetros da resposta

ParâmetroTipoDescrição
statusstringSituação do pedido: EnviarParaBackEnd (pago, aguardando despacho), NaFila (na fila), Processing (em entrega) ou Complete (encerrado: entregue por completo, em parte, falhou ou cancelado).
chargedecimalValor debitado da sua carteira na criação do pedido (USD).
walletReturndecimalValor devolvido à carteira pelas unidades que não puderam ser entregues (USD). 0 até o pedido ficar Complete.
modestringNome interno do serviço (MODE).
successintegerUnidades entregues.
sucessintegerMesmo valor de success. Mantido por compatibilidade (grafia antiga).
failedintegerUnidades não entregues (definitivo só quando status é Complete).
quantityintegerUnidades pedidas.
remainsintegerUnidades que ainda faltam entregar.
observationstringMensagem sobre o desfecho (link inválido, falta de contas, cancelado...). Vazia quando tudo foi entregue.
currencystringA moeda dos valores cobrados.
datestringData e hora da criação (UTC).

Ciclo do pedido e reembolsos

A carteira é debitada na criação do pedido. O pedido passa por EnviarParaBackEnd, NaFila, Processing e Complete. Complete é o único estado final: compare quantity, success e failed para saber se foi entregue por completo ou em parte. As unidades que não puderam ser entregues voltam para a carteira automaticamente quando o pedido encerra (walletReturn), e observation explica o motivo. Não dá para cancelar pelo API; use o painel do cliente enquanto o pedido está em Processing.

Mensagens de erro

Todo erro usa HTTP 400 e o campo error. Os mais comuns:

{ "error": "Invalid ApiKey." }
errorDescrição
Invalid parameterskey, serviceId, link ou quantity ausente ou inválido.
Invalid ApiKey.A chave não pertence a nenhuma conta (confira o URL-encode das chaves antigas).
Your account has been disabled, please contact support.
Before accessing the panel you need to confirm your email.
Conta desativada ou e-mail ainda não confirmado.
Service:{id} Not FoundserviceId desconhecido.
Service temporarily unavailable.Serviço desligado ou sem estoque neste momento (veja active no ServicesList).
Quantity must be between 1 and {max}.Quantidade fora do mín/máx do serviço.
Invalid URL Link
Invalid Parameters: Only the user's SteamID64 must be entered, not a URL
O link não está no formato que o serviço espera.
Insufficient Funds!!Saldo da carteira menor que quantity × rate. Nada foi debitado.
Unknown comments package "..."
Unknown comments category "..."
Some comments were not approved ...
Comment review limit reached, try again later
Comentários: pacote ou categoria desconhecidos, seleção pequena demais, comentários não aprovados ou revisão temporariamente indisponível. Nada é debitado.
Order not found.
Access denied.
O pedido não existe ou pertence a outra conta.
Too many requests... (HTTP 429)Limite de 120 requisições a cada 1 minuto(s) por endereço IP. Acima disso a API responde HTTP 429 com o cabeçalho Retry-After.