Sprzedawaj nasze usługi Steam z własnego panelu po cenach dla resellerów.
Składaj zamówienia, śledź ich realizację i sprawdzaj saldo za pomocą prostych żądań HTTP. Każda odpowiedź jest w formacie JSON, a wszystkie ceny podane są w USD.
Zamówienia złożone przez API mają 20% zniżki w porównaniu z cenami w panelu. Podane poniżej ceny już ją uwzględniają.
Bazowy URL
https://cappiservices.com/api/Reseller
Twój klucz API znajdziesz w panelu klienta, w sekcji API Key. Utworzenie nowego klucza natychmiast unieważnia poprzedni. Otwórz stronę API Key
Testowanie i użycie
Aby przetestować API i z niego korzystać, możesz użyć Swagger UI:
Każde żądanie poza ServicesList wymaga Twojego klucza API. Możesz go przesłać na jeden z trzech sposobów:
Nagłówek HTTP X-Api-Key (zalecane: klucz nie trafia do adresów URL ani logów serwera).
Parametr w zapytaniu URL (query string) key.
Pole key w treści application/x-www-form-urlencoded (tylko POST).
Klucze utworzone przed listopadem 2026 mogą zawierać znaki + i /: zakoduj je (URL-encode) przy wysyłaniu w zapytaniu URL, w przeciwnym razie + zamieni się w spację i klucz zostanie odrzucony. Nowe klucze mają 64 znaki szesnastkowe i nie wymagają kodowania.
Żądania i odpowiedzi
Parametry przesyłaj w zapytaniu URL lub w treści formularza (POST). Powodzenie zwraca HTTP 200; błąd biznesowy zwraca HTTP 400 z polem error (RegisterOrder ustawia dodatkowo success na false). Gdy zamówienie zostaje odrzucone, nic nie jest pobierane z salda.
Limit 120 żądań co 1 min na adres IP. Po jego przekroczeniu API odpowiada HTTP 429 z nagłówkiem Retry-After.
Usługi
Ta tabela jest aktualizowana na żywo: ceny już uwzględniają Twoją zniżkę, a max to ilość dostępna w tej chwili (zależy od zapasu naszych kont). Usługa oznaczona jako niedostępna jest odrzucana przez RegisterOrder, dopóki nie wróci; ta sama informacja znajduje się w polu active w ServicesList.
ID
Usługa
Typ
Cena za jednostkę
Min / Max
Status
199825
Steam Like SharedFiles/Screenshots/Guides/Workshop
link: Adres URL zrzutu ekranu, grafiki, poradnika lub elementu Warsztatu: steamcommunity.com/sharedfiles/filedetails/?id=... (lub /workshop/filedetails/?id=...).
link: Adres URL zrzutu ekranu, grafiki, poradnika lub elementu Warsztatu: steamcommunity.com/sharedfiles/filedetails/?id=... (lub /workshop/filedetails/?id=...).
Default
$ 0.0152
1 / 4797
Aktywna
199827
Steam Group Members
link: Adres URL publicznej grupy: steamcommunity.com/groups/yourgroup. Grupa musi być publiczna.
Default
$ 0.02
1 / 5467
Aktywna
199828
Steam Workshop Followers
link: SteamID64 autora Warsztatu (17 cyfr, np. 76561198307708414) lub steamcommunity.com/profiles/SteamID64. Niestandardowe adresy URL (/id/name) nie są akceptowane.
link: Adres URL recenzji: steamcommunity.com/id/user/recommended/appid/ lub steamcommunity.com/profiles/SteamID64/recommended/appid/. Głosy są zawsze "przydatne" (Rate Up).
Default
$ 0.012
1 / 4797
Aktywna
199831
Steam Trade Boost (trade offers, 1 gem each)
link: Adres URL wymiany Steam konta odbierającego: steamcommunity.com/tradeoffer/new/?partner=...&token=... Ekwipunek musi być publiczny; każda jednostka to jedna oferta wymiany zawierająca 1 klejnot.
Default
$ 0.0022
1 / 1000
Aktywna
199832
Steam Profile Comments (ready-made packages)
link: SteamID64 profilu (17 cyfr) lub steamcommunity.com/profiles/SteamID64. Profil musi zezwalać na komentarze. Komentarze pochodzą z naszych gotowych pakietów (wymagany parametr package).
link: Adres URL zrzutu ekranu, grafiki lub elementu Warsztatu (steamcommunity.com/sharedfiles/filedetails/?id=...). Komentarze pochodzą z naszych gotowych pakietów (wymagany parametr package).
Parametry opcjonalne: package
Default
$ 0.0264
1 / 10000
Aktywna
199834
Steam Group Comments (ready-made packages)
link: Adres URL publicznej grupy: steamcommunity.com/groups/yourgroup. Komentarze pochodzą z naszych gotowych pakietów (wymagany parametr package).
Parametry opcjonalne: package
Default
$ 0.0264
1 / 10000
Aktywna
199835
Steam Profile Comments (your own comments)
link: SteamID64 profilu lub steamcommunity.com/profiles/SteamID64 oraz Twoje własne komentarze w parametrze comments (jeden w wierszu). Opcjonalny parametr delay.
Steam Screenshot/Artwork/Workshop Comments (your own comments)
link: Adres URL zrzutu ekranu, grafiki lub elementu Warsztatu oraz Twoje własne komentarze w parametrze comments (jeden w wierszu). Opcjonalny parametr delay.
W usługach z gotowymi komentarzami parametr package jest wymagany. Przyjmuje cat:<category>[:<language>] (zatwierdzone komentarze z naszej biblioteki w jednej kategorii; bez języka: angielskie oraz komentarze bez słów) i lib:<id> (oficjalny lub opublikowany pakiet biblioteki albo jeden z Twoich pakietów; do 10 na zamówienie). Kilka wartości oddziel przecinkami: zamówienie używa do quantity różnych komentarzy z nich, losowanych bez powtórzeń (jeden na komentarz), i wymaga co najmniej 5 komentarzy.
Kody języków: 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 = komentarze bez słów, np. emoji).
Własne komentarze (parametr comments): jeden komentarz w wierszu, maksymalnie 500 wierszy po 1000 znaków każdy. Puste wiersze są ignorowane. Wysyłaj je w treści formularza, a nie w adresie URL.
Usługi z własnymi komentarzami przyjmują dokładnie jedno źródło: comments (jeden komentarz w wierszu, jak wyżej), comments_json (tylko w treści formularza: tablica JSON z tekstami, jeden komentarz na element; podziały wierszy i wcięcia są zachowane; do 999 bajtów i 30 wierszy na komentarz, a quantity może wynosić najwyżej 25 razy liczbę różnych komentarzy) lub package=lib:<id> (Twoje prywatne pakiety biblioteki, oddzielone przecinkami).
Każdy własny komentarz jest sprawdzany przed utworzeniem zamówienia. Odrzucane są tylko oszustwa: reputacja wymian lub zaufania, linki, kontakt poza Steam, podszywanie się pod wsparcie Valve lub Steam, fałszywe rozdania lub reklamy, prawdziwe dane osobowe i treści seksualne z udziałem nieletnich. Żarty, przekleństwa oraz treści toksyczne lub dla dorosłych są dozwolone. Jeśli któryś komentarz nie zostanie zatwierdzony, zamówienie jest odrzucane i nic nie jest pobierane; wyślij allow_partial=1, aby kontynuować tylko z zatwierdzonymi (ta sama cena). Lista comments_json z większą liczbą różnych komentarzy niż quantity jest przycinana do losowej próbki (truncatedComments).
Parametr delay (tylko własne komentarze): odstęp między dwoma komentarzami. Dozwolone wartości: 10 Seconds, 7 Minutes, 15 Minutes, 30 Minutes, 1 Hour, 3 Hours, 6 Hours. Domyślnie: 10 Seconds. Cena za komentarz to cena wybranego odstępu; rate w tabeli to cena dla 10 Seconds.
Endpointy
GET/ServicesList
Lista wszystkich usług z ID, ceną za jednostkę, limitami i opisem sposobu wypełnienia pola link. Uwierzytelnianie nie jest wymagane.
Tworzy zamówienie i od razu pobiera środki z portfela (quantity × rate). Link jest sprawdzany przed pobraniem środków; zamówienie jest odrzucane, bez żadnej opłaty, gdy usługa jest niedostępna, ilość wykracza poza zakres, link nie pasuje do usługi albo saldo jest niewystarczające.
Parametry żądania
Parametr
Typ
Opis
key
string
Klucz API do uwierzytelniania.
serviceId
integer
ID usługi.
link
string
Cel zamówienia: adres URL, SteamID64 lub adres URL wymiany, zależnie od usługi (zobacz tabelę Usługi).
quantity
integer
Liczba jednostek do dostarczenia, między min a max usługi.
comments
string
Tylko usługi własnych komentarzy: Twoje komentarze, jeden w wierszu.
comments_json
string
Tylko usługi z własnymi komentarzami i tylko w treści formularza: tablica JSON z tekstami, jeden komentarz na element (podziały wierszy dozwolone). Używaj zamiast comments.
package
string
Tylko usługi komentarzy. Wymagany w usługach z gotowymi komentarzami; kilka wartości oddzielonych przecinkami. Przyjmuje cat:<category>[:<language>] i lib:<id> (do 10 lib:<id> na zamówienie). W usługach z własnymi komentarzami: lib:<id> Twoich prywatnych pakietów.
delay
string
Tylko usługi własnych komentarzy: odstęp między komentarzami; cena za komentarz to cena tego odstępu. Opcjonalny, domyślnie 10 Seconds.
allow_partial
string
Tylko usługi z własnymi komentarzami: 1 = kontynuuj z zatwierdzonymi komentarzami, gdy niektóre nie zostaną zatwierdzone (ta sama cena). Opcjonalny.
Przykładowe żądanie
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"
Tylko zamówienia z własnymi komentarzami: ile komentarzy z Twojej listy zatwierdzono, odrzucono, wysłano do ręcznej weryfikacji, nie sprawdzono (spróbuj później) i pominięto przez przycięcie do quantity.
rejectedIndexes rejectedReasons
integer[] string[]
Tylko zamówienia z własnymi komentarzami: pozycje (od 0) odrzuconych komentarzy na Twojej liście i powód każdego z nich (format, link, contact lub policy).
GET/OrderStatus
Status i liczby realizacji jednego z Twoich zamówień.
{
"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"
}
Parametry odpowiedzi
Parametr
Typ
Opis
status
string
Status zamówienia: EnviarParaBackEnd (opłacone, czeka na wysłanie), NaFila (w kolejce), Processing (w trakcie realizacji) lub Complete (zakończone: w pełni zrealizowane, częściowo zrealizowane, nieudane lub anulowane).
charge
decimal
Kwota pobrana z portfela w chwili utworzenia zamówienia (USD).
walletReturn
decimal
Kwota zwrócona do portfela za jednostki, których nie udało się dostarczyć (USD). 0, dopóki zamówienie nie osiągnie statusu Complete.
mode
string
Wewnętrzna nazwa usługi (MODE).
success
integer
Dostarczone jednostki.
sucess
integer
Ta sama wartość co success. Zachowane ze względu na zgodność (dawna pisownia).
failed
integer
Jednostki niedostarczone (ostateczna wartość dopiero przy statusie Complete).
quantity
integer
Zamówione jednostki.
remains
integer
Jednostki, które jeszcze zostały do dostarczenia.
observation
string
Komunikat o wyniku (nieprawidłowy link, brak kont, anulowanie...). Pusty, gdy wszystko zostało dostarczone.
currency
string
Waluta opłat.
date
string
Data i godzina utworzenia (UTC).
Cykl życia zamówienia i zwroty
Środki z portfela są pobierane w chwili utworzenia zamówienia. Zamówienia przechodzą przez EnviarParaBackEnd, NaFila, Processing i Complete. Complete jest jedynym statusem końcowym: porównaj quantity, success i failed, aby sprawdzić, czy zamówienie zostało zrealizowane w całości, czy częściowo. Jednostki, których nie udało się dostarczyć, są automatycznie zwracane do portfela po zakończeniu zamówienia (walletReturn), a observation wyjaśnia powód. Zamówień nie można anulować przez API; użyj panelu klienta, gdy zamówienie ma status Processing.
Komunikaty o błędach
Wszystkie błędy używają HTTP 400 i pola error. Najczęstsze:
{ "error": "Invalid ApiKey." }
error
Opis
Invalid parameters
Brakujący lub nieprawidłowy key, serviceId, link lub quantity.
Invalid ApiKey.
Klucz nie należy do żadnego konta (sprawdź kodowanie URL starszych kluczy).
Your account has been disabled, please contact support. Before accessing the panel you need to confirm your email.
Konto wyłączone lub adres e-mail nie został jeszcze potwierdzony.
Service:{id} Not Found
Nieznany serviceId.
Service temporarily unavailable.
Usługa jest teraz wyłączona lub brakuje zapasu (zobacz active w ServicesList).
Quantity must be between 1 and {max}.
Ilość poza zakresem min/max usługi.
Invalid URL Link Invalid Parameters: Only the user's SteamID64 must be entered, not a URL
Link nie pasuje do formatu oczekiwanego przez usługę.
Insufficient Funds!!
Saldo portfela niższe niż quantity × rate. Nic nie zostało pobrane.
Unknown comments package "..." Unknown comments category "..." Some comments were not approved ... Comment review limit reached, try again later
Komentarze: nieznany pakiet lub kategoria, za mały wybór, niezatwierdzone komentarze lub weryfikacja chwilowo niedostępna. Nic nie jest pobierane.
Order not found. Access denied.
Zamówienie nie istnieje lub należy do innego konta.
Too many requests... (HTTP 429)
Limit 120 żądań co 1 min na adres IP. Po jego przekroczeniu API odpowiada HTTP 429 z nagłówkiem Retry-After.