powstepowita

pow solving api. before the captcha.

gateway: UP | solves/sec: - (60s) | now - (10s) | max t: - 

what is pow

roblox locks logins behind a math problem. before you even see a captcha, their server answers your login request with a challenge: compute a^(2^t) mod n. n is a 309 digit number. t can go up to 160,000,000.

your client has to grind that out and attach the answer, or the login dies right there. doing it on one cpu core takes seconds per solve. if you are checking accounts, that speed is the whole game.

we solve everything up to our difficulty cap, shown live in the status line above. the normal login challenge sits far below it. the occasional giant (t in the hundreds of millions) is rejected instantly and free, because one of those would pin a core for the better part of a minute -- your client falls back to solving those locally, and pays nothing for them here.

we run the math on our own machines. you send us the challenge, you get the answer back in under half a second, your client never notices.

POST /login
<- 403  pow challenge: a=..., n=...(309 digits), t=160000000
        solve a^(2^t) mod n        <- this is the part we do
POST /login  (answer attached)
<- 200
[ captcha comes after this, if it even triggers ]

how it works

no sdk, no wrapper, no client install. one https call from whatever you already run.

buy a top up, redeem the code for a key, put the key in a header, post the challenge fields. you get the answer and your remaining balance in the same response. 1 credit per successful solve. nothing charged on failure or reject.

python:

import requests

r = requests.post(
    "https://powstepowita.com/v1/solve",
    headers={"X-Api-Key": "pow_xxxxxxxxxxxxxxxxxxxxxxxx"},
    json={
        "a": "<the a from the 403 challenge>",
        "n": "<the 309 digit n from the challenge>",
        "t": 400000,
    },
    timeout=30,
)
print(r.json())   # {"result": "1234...", "balance": 999999}

luau (from a wrapper with a request function):

local HttpService = game:GetService("HttpService")

local body = HttpService:JSONEncode({
    a = challenge.a,
    n = challenge.n,
    t = challenge.t,
})
local req = request({
    Url = "https://powstepowita.com/v1/solve",
    Method = "POST",
    Headers = { ["X-Api-Key"] = KEY, ["Content-Type"] = "application/json" },
    Body = body,
})
local res = HttpService:JSONDecode(req.Body)
print(res.result, res.balance)

pricing

planpricewhat you get
pay as you go $1 per 100,000 solves no expiry. 1 credit per successful solve, failed and rejected solves never charge. buy as many as you want, $10 is still 1,000,000.
unlimited day $15 per day unlimited solves for 24 hours. 1 ip only. the same $15 buys 1,500,000 credits that never expire, so this only wins if you burn more than that inside the day.

buy: dm kasow22 or ask in discord. you get a code, redeem it at /redeem for a new key or to top up the one you have. self serve checkout is being moved, codes and keys work exactly the same meanwhile.

quantity stacks onto one code: 2 day passes is one code worth 2 days, 10 credit packs is one code worth 1,000,000 solves.

questions first: discord.gg/C6Pnp7FHZm or dm kasow22

api

POST https://powstepowita.com/v1/solve
X-Api-Key: pow_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{"a": "<digit string>", "n": "<digit string>", "t": 400000}

<- 200
{"result": "<the answer>", "balance": 999999}
codemeaningwhat to do
400bad body, or challenge over the difficulty capcheck the fields, do not retry the same one
401bad keycheck the key
402no credits left, or a day key that expiredbuy a top up, redeem it onto the same key at /redeem
503servers busyretry, this is normal under load
504worker timeoutretry with backoff

full docs with more examples (python, javascript, luau): /API.md · ready made python client, drop it straight in: /client.py

check your key

faq

how do i buy and start using it

ask in discord or dm kasow22 and you get a code. take it to /redeem and either leave the key box empty to get a brand new key, or paste your existing key to add the top up onto it. the key is shown once, so write it down. codes you already hold still work, nothing changed about them.

do you refund

no. codes are delivered instantly and a code is worth exactly what it says, so once it is issued it is yours whether you redeem it or not. the one thing we do fix is a failed delivery: if you paid and no code came back, bring the order id to discord and you get the code you paid for.

what happens on giant challenges

there is a difficulty cap. challenges over it get rejected instantly and never charge. if your workload actually needs the big ones, ask in discord, the cap can be raised per key.

do failed solves charge

no. a credit is taken only when a solve succeeds and the answer is returned to you. rejects and errors are free.

how fast is it

the math itself finishes in a few ms on our hardware. the 150 to 500ms you see end to end is almost all network, mostly the cloudflare hop in front of the api. customers running on our rdps hit the gateway over lan, skip cloudflare entirely, and get much lower.

are there rate limits

no cap on solves per second. a day key is one ip at a time, so run it from one box. beyond that it is fair usage: sustained abuse that pins the fleet for everyone gets throttled, normal checker traffic never comes close.

can i use it in my own wrapper or checker

yes. it is a plain https api with one endpoint. there are copy paste examples in the docs and a ready made python client you can drop in.

is there a hook or backdoor in the client

no. everything is open source: the docs and the python client are a few readable lines that do one thing, post the challenge and hand back the answer. no request hooking, no reading your accounts, no middleman between you and roblox. open devtools or wireshark and watch every request it sends, there is nothing hidden.

what if cloudflare is in the way

customers running on our rdps can hit the gateway directly over lan and skip cloudflare entirely. ask in discord.