WeBot API docs

WeBot API

Agent-friendly docs for the implemented WeBot Platform routes: account choices, catalog discovery, account context, entitlements, usage, jobs, files, API keys, and webhook-backed access.

Start here

1. Choose access

Human plans cover dashboard work, API-only Agent plans cover automated callers, and Both plans include both access paths.

Compare plans

2. Create a key

Owners and admins sign in, then create API keys from a dashboard session. Plaintext is returned once, then only key metadata remains available.

Read auth guideOpen account access

3. Create work

Read the public catalog, run intent and account preflights, create a job with idempotency, attach files through presign, then poll status and events.

Open quickstart

4. Track limits

Use usage, rejects, and webhook-backed entitlements to decide whether to retry, wait, revise, or ask a human to change plans.

Read usage guide

Schema

The schema browser is generated from the same builder used by the OpenAPI route.

Browse OpenAPI

Access model

Checkout buttons open only after the Stripe catalog is verified for the deployed environment. Until then, plan tables are informational and access is granted only from signed Stripe webhook state.

Account and quota state come from server entitlements. Checkout query parameters such as session_id, plan, or paid never grant API access, dashboard access, or quota.

Implemented endpoints

The routes below are implemented and documented for agent-friendly account setup, intent intake, readiness checks, job creation, tracking, files, usage, and API keys.

MethodPathAuthPurpose
GET/api/v1/openapi.jsonPublicMachine-readable schema for implemented routes.
GET/api/v1/catalogPublicService families, service options, intake requirements, quality signals, and job statuses.
POST/api/v1/catalog/intent-checkPublicQuota-free draft check against catalog intake requirements before job creation.
GET/api/v1/meRequiredCurrent account, auth method, role, scopes, and entitlement summary.
GET/api/v1/entitlementsRequiredWebhook-backed account entitlements.
GET/api/v1/usageRequiredUsage, quota, remaining capacity, and recent safe usage events.
GET/api/v1/jobsRequiredList account-owned jobs with safe filters and cursor pagination.
POST/api/v1/jobs/preflightRequiredCheck account readiness, quota, intent, and active-job limits before creating a job.
POST/api/v1/jobsRequiredCreate a job with entitlement, quota, and idempotency checks.
GET/api/v1/jobs/{id}RequiredRead one account-owned job.
GET/api/v1/jobs/{id}/eventsRequiredRead customer-safe job events.
POST/api/v1/jobs/{id}/approveRequiredApprove a review-ready job and mark it complete.
POST/api/v1/jobs/{id}/cancelRequiredRequest cancellation for a job.
POST/api/v1/jobs/{id}/revisionRequiredRequest a revision when available.
POST/api/v1/files/presignRequiredCreate a short-lived upload contract.
GET/api/v1/api-keysDashboard owner/adminList API key metadata.
POST/api/v1/api-keysDashboard owner/admin + CSRFCreate an API key and show the value once.
DELETE/api/v1/api-keys/{id}Dashboard owner/admin + CSRFRevoke an account-owned API key.
POST/api/checkout/tierDashboard owner/admin + CSRFCreate a Stripe Checkout Session from verified tier readback.
POST/api/stripe/webhookStripe signatureProvider webhook route for entitlement updates.

Catalog example

curl https://api.webot.agency/api/v1/catalog

{
  "service_families": [
    {
      "id": "create_polish",
      "name": "Create & Polish",
      "intake_requirements": ["occasion or audience", "brand constraints", "desired tone", "delivery format"],
      "quality_signals": ["Audience fit", "Brand voice consistency", "Natural visual polish", "Export-ready files"],
      "service_options": [
        { "id": "tone_rewrites_copy_polish", "name": "Tone rewrites and copy polish" }
      ]
    }
  ],
  "job_statuses": ["queued", "accepted", "running", "needs_review", "ready_for_customer_review", "completed", "rejected", "canceled"]
}

Authenticated example

curl https://api.webot.agency/api/v1/me \
  -H "Authorization: Bearer $WEBOT_API_KEY"

curl https://api.webot.agency/api/v1/usage \
  -H "Authorization: Bearer $WEBOT_API_KEY" \
  -H "X-Request-Id: req_docs_example"