Skip to Content
FAQ & Support

FAQ & Support

How do I get access?

Self-serve with any wallet: request a challenge, sign it, and verify for a session token. Then top up with USDC through x402 or MPP. Do you prefer an API key? Join the waitlist on the landing page, and we will issue one.

How do I reach a human?

  • In-band (works today, no auth): POST /api/v1/feedback with {"type": "bug" | "feature_request" | "provisioning" | "job_type_request", "title": "...", "description": "..."}. We triage every entry.
  • A support email and a community channel are in preparation. We will list them here.

What does it cost?

Computalot meters each task per second at the live market rate plus a 35% service markup. The minimum billed time per task-attempt is 60 seconds. Indicative ranges, worked examples, and the hold and settle model are on Pricing. The summary.billing_estimate in your submit response is the authoritative quote.

How do I give my agent access?

Tell your agent to install the Computalot skill from https://computalot.com/skill.md, or have it read https://computalot.com/llms.txt. See Agent Integration.

Debugging failed jobs

  1. Read the job: GET /api/v1/jobs/:id — look at error and recommended_action
  2. Read the tasks: GET /api/v1/jobs/:id/tasks — per-task error, output, exit_code, latest_progress
  3. Read the project: GET /api/v1/projects/:name/status
  4. Read the billing truth: GET /api/v1/account/balance, GET /api/v1/account/holds, GET /api/v1/account/ledger, and GET /api/v1/account/quotes
SymptomLikely causeFix
402 Payment RequiredInsufficient creditsPay the returned shortfall quote (x402 or MPP) or top up. Then retry the same blocked request
Project init rejectedBalance less than $5Top up, then retry POST /api/v1/projects/:name/init
Tasks stuck in queuedCold start or capacity catch-upRead the project status and job diagnostics. The first job can wait while runtime preparation happens on demand
Tasks fail immediatelyThe Dockerfile misses dependencies, or a runtime errorCorrect the Dockerfile or manifest. Push a new revision. Then retry with a small smoke job or an optional /init
Useless error messageTruncated outputRead the per-task output field (full 10 KB)
Submit rejected with 422Contract mismatchThe error body names the field and the fix. See the recommended_action

Poll for job completion

while true; do STATUS=$(curl -sS -H "Authorization: Bearer $TOKEN" \ https://computalot.com/api/v1/jobs/<job_id> \ | python3 -c "import sys,json; print(json.load(sys.stdin)['status'])") case $STATUS in completed|partial|failed|cancelled) break ;; esac sleep 5 done

Cancel a job

curl -sS -X PUT -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ https://computalot.com/api/v1/jobs/<job_id>/cancel \ -d '{"reason":"no longer needed"}'

How long are results kept?

Terminal jobs and their results stay queryable for 30 days. Artifacts stay retained and quota-accounted until you delete them. Deletion is refused only while a non-terminal job references the artifact. After deletion, historical job artifact links return not found.

What languages are supported?

Python, Node.js, Deno, Bun, Ruby, Julia, R, Rust (cargo), and any language that you install in your Dockerfile. Shell scripts as the direct entry point are blocked. Use a supported language wrapper.

API stability & deprecation

  • All product endpoints live under /api/v1. Machine-readable contracts: /openapi.json and /api/v1/docs.
  • Additive changes (new endpoints, new response fields) ship without notice. Write clients that tolerate unknown fields.
  • We announce breaking changes on Recent Changes (also mirrored in the JSON index recent_changes). During beta they can ship on short notice. Retired endpoints fail explicitly rather than disappear silently. For example, the removed direct and multipart artifact uploads return 410 Gone with migration guidance in the body.
  • Reserved fields stay non-authoritative. result_quality and result_warnings are response placeholders. The API accepts and ignores object-shaped result_schema metadata for compatibility (non-object values return 422). Non-empty callback_url values return 422 until callbacks ship.
Last updated on