Getting started
The fastest path is to hand this page to your agent. If you want to drive the API yourself, use the manual path below: five steps from code to results.
Open access. Any wallet can authenticate and fund an account: request a challenge, sign it, and verify. Then top up with USDC through x402 or MPP. Computalot issues API keys on request through 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 guides the agent through authentication, balance checks, funding, job submission, and results. You review what comes back. Pricing explains the cost 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 do not have a token yet, see Authentication for the access model and the waitlist path. Before your first submission, read GET /api/v1/account/balance. Then 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 (it 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 immediately. The first job can take longer while Computalot prepares runtime capacity on demand.
Optional: to prepare currently available workers before a burst, call init:
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. Then 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. Then retry the same submit request.
To see whether the revision is only published (can_accept_new_jobs: true, ready_for_jobs: false) or already warm (ready_for_jobs: true), read GET /api/v1/projects/my-project/status.
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. The unused hold is released at settlement. Indicative rates and worked examples are on Pricing.
Found a bug or have an idea? POST /api/v1/feedback — no auth is required. The types are bug, feature_request, provisioning, and job_type_request.