Getting started
The fastest path is to hand this page to your agent. If you’d rather drive the API yourself, the manual path follows — five steps from code to results.
Open access. Any wallet can authenticate and fund an account — request a challenge, sign it, verify, then top up with USDC via x402 or MPP. API keys are issued on request via the waitlist.
Path 0: Tell your agent
Paste this into Claude Code, Cursor, or any capable coding agent:
Fetch https://computalot.com/skill.md and follow it to set up Computalot
(on-demand GPU/CPU compute). Then use it to <describe your workload>
and report the results.The skill walks the agent through authentication, checking and funding the balance, submitting jobs, and reading results. You review what comes back; Pricing explains what it costs before anything runs.
The manual path: run your own code
Create a sandboxed project, upload your code, and submit typed jobs.
Prerequisites
export BASE_URL="https://computalot.com"
export TOKEN="flk_..." # API key or wallet session tokenIf you don’t have a token yet, see Authentication for the access model and waitlist path. Before your first submission, check GET /api/v1/account/balance so you know what the account can spend — Billing covers holds, the ledger, and funding quotes.
Step 1: Create a project
curl -sS "$BASE_URL/api/v1/projects" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my-project",
"remote_dir": "/root/my-project"
}'Step 2: Write your code
Your project needs a Dockerfile (defines the runtime), a computalot.project.json manifest, and your code. See Projects for the full setup guide.
# job.py
import json, os
payload = json.load(open(os.environ["COMPUTALOT_TASK_PAYLOAD"]))
print(f"Processing: {payload}")
result = {"status": "ok", "input": payload}
json.dump(result, open(os.environ["COMPUTALOT_TASK_RESULT"], "w"))Step 3: Upload your project
tar czf code.tar.gz Dockerfile computalot.project.json job.py
curl -sS "$BASE_URL/api/v1/projects/my-project/push" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
--data-binary @code.tar.gzAfter a successful push, the latest revision is published immediately. You can submit jobs right away; the first one may take longer while Computalot prepares runtime capacity on demand.
Optional: if you want to prepare currently available workers ahead of time, call init manually:
curl -sS "$BASE_URL/api/v1/projects/my-project/init" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}'If project init returns 402 Payment Required with a shortfall quote, fund the account and retry the same POST /api/v1/projects/my-project/init request.
Step 4: Submit a job
curl -sS "$BASE_URL/api/v1/jobs" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "structured_runner",
"runner_command": ["python3", "job.py"],
"payload": {"test": true},
"project": "my-project",
"timeout_s": 120
}'If job submit returns 402 Payment Required with a shortfall quote, fund the account and retry the same submit request.
Check GET /api/v1/projects/my-project/status if you want to inspect whether the revision is merely published (can_accept_new_jobs: true, ready_for_jobs: false) or already warm (ready_for_jobs: true).
Step 5: Read results
curl -sS "$BASE_URL/api/v1/results/<job_id>" \
-H "Authorization: Bearer $TOKEN"What things cost
Every submit response includes summary.billing_estimate — the authoritative quote for that job — and unused hold is released at settlement. Indicative rates and worked examples live on Pricing.
Found a bug or have an idea? POST /api/v1/feedback — no auth required. Types: bug, feature_request, provisioning, job_type_request.