WeBot API docs

OpenAPI browser

A human-readable view of the implemented OpenAPI 3.1 document served by the platform.

Route-backed schema

This page imports buildOpenApiDocument(), the same builder used by GET /api/v1/openapi.json.

GET /api/v1/openapi.json

Public machine-readable schema for implemented routes.

Auth: Public

Responses

  • 200

GET /api/v1/catalog

Returns public service families, agent intake requirements, quality signals, and job statuses.

Auth: Public

Responses

  • 200

POST /api/v1/catalog/intent-check

Checks a draft job request against public catalog intake requirements before the caller spends quota creating a job.

Auth: Public

Responses

  • 200
  • 422

GET /api/v1/me

Returns the authenticated account, role, scopes, and entitlement summary.

Auth: Supabase session or WeBot API key

Responses

  • 200
  • 401

GET /api/v1/entitlements

Returns webhook-backed entitlements for the current account.

Auth: Supabase session or WeBot API key

Responses

  • 200
  • 401
  • 403

GET /api/v1/usage

Returns server-side usage, quota, and recent safe usage events.

Auth: Supabase session or WeBot API key

Parameters

  • period_start in query optional: ISO timestamp lower bound.
  • period_end in query optional: ISO timestamp upper bound.
  • job_id in query optional: Authorized job id filter.

Responses

  • 200
  • 401

GET /api/v1/jobs

Lists account-owned jobs with safe filters and cursor pagination.

Auth: Supabase session or WeBot API key

Parameters

  • status in query optional: Optional status filter. Repeat or comma-separate for multiple statuses.
  • service_family in query optional: Optional service family id filter.
  • created_after in query optional: Optional ISO timestamp lower bound.
  • created_before in query optional: Optional ISO timestamp upper bound.
  • cursor in query optional: Opaque pagination cursor from a previous response.
  • limit in query optional: Page size from 1 to 100. Defaults to 25.

Responses

  • 200
  • 400
  • 401

POST /api/v1/jobs

Creates a resource-consuming job after entitlement, quota, rate-limit, and concurrency checks.

Auth: Supabase session or WeBot API key

Responses

  • 200
  • 201
  • 403
  • 422
  • 429

POST /api/v1/jobs/preflight

Checks account entitlement, quota, concurrency, rate-limit policy, and catalog intent before creating a job. Does not write usage, create a job, consume rate counters, or attach files.

Auth: Supabase session or WeBot API key

Responses

  • 200
  • 401
  • 422

GET /api/v1/jobs/{id}

Returns one account-owned job and its customer-safe events.

Auth: Supabase session or WeBot API key

Parameters

  • id in path required: Job id.

Responses

  • 200
  • 404

GET /api/v1/jobs/{id}/events

Returns customer-safe events for one account-owned job.

Auth: Supabase session or WeBot API key

Parameters

  • id in path required: Job id.

Responses

  • 200
  • 404

POST /api/v1/jobs/{id}/approve

Approves an account-owned job that is ready for customer review and marks it completed.

Auth: Supabase session or WeBot API key

Parameters

  • id in path required: Job id.

Responses

  • 200
  • 400
  • 404

POST /api/v1/jobs/{id}/cancel

Requests cancellation for an account-owned job.

Auth: Supabase session or WeBot API key

Parameters

  • id in path required: Job id.

Responses

  • 200
  • 404
  • 409

POST /api/v1/jobs/{id}/revision

Requests a revision for an account-owned job when eligible.

Auth: Supabase session or WeBot API key

Parameters

  • id in path required: Job id.

Responses

  • 200
  • 403
  • 404
  • 409

POST /api/v1/files/presign

Creates a short-lived private upload contract for an authorized account/job file.

Auth: Supabase session or WeBot API key

Responses

  • 201
  • 413
  • 422

POST /api/v1/files/{id}/complete

Marks an account-owned file uploaded after the private storage PUT succeeds.

Auth: Supabase session or WeBot API key

Parameters

  • id in path required: File id.

Responses

  • 200
  • 404

GET /api/v1/api-keys

Lists account API key metadata without hashes or plaintext. Requires a dashboard owner/admin Supabase session.

Auth: Supabase session

Responses

  • 200
  • 403

POST /api/v1/api-keys

Creates an API key and returns plaintext once. Cookie-authenticated dashboard requests must include x-webot-csrf-token.

Auth: Supabase session + dashboard CSRF

Responses

  • 201
  • 403

DELETE /api/v1/api-keys/{id}

Revokes an account-owned API key without returning plaintext. Cookie-authenticated dashboard requests must include x-webot-csrf-token.

Auth: Supabase session + dashboard CSRF

Parameters

  • id in path required: API key id.

Responses

  • 200
  • 404

POST /api/checkout/tier

Creates a dashboard-authenticated Stripe Checkout Session for a verified tier readback price. Cookie-authenticated dashboard requests must include x-webot-csrf-token.

Auth: Supabase session + dashboard CSRF

Responses

  • 201
  • 403
  • 503

POST /api/stripe/webhook

Provider webhook route. This route is not under /api/v1.

Auth: Public

Responses

  • 200
  • 400

Raw schema summary

Generated from buildOpenApiDocument() and served by /api/v1/openapi.json.

{
  "openapi": "3.1.0",
  "title": "WeBot API",
  "version": "1.0.0",
  "paths": [
    "/api/v1/openapi.json",
    "/api/v1/catalog",
    "/api/v1/catalog/intent-check",
    "/api/v1/me",
    "/api/v1/entitlements",
    "/api/v1/usage",
    "/api/v1/jobs",
    "/api/v1/jobs/preflight",
    "/api/v1/jobs/{id}",
    "/api/v1/jobs/{id}/events",
    "/api/v1/jobs/{id}/approve",
    "/api/v1/jobs/{id}/cancel",
    "/api/v1/jobs/{id}/revision",
    "/api/v1/files/presign",
    "/api/v1/files/{id}/complete",
    "/api/v1/api-keys",
    "/api/v1/api-keys/{id}",
    "/api/checkout/tier",
    "/api/stripe/webhook"
  ],
  "schemas": [
    "OpenApiDocument",
    "ErrorResponse",
    "RejectResponse",
    "CatalogResponse",
    "MeResponse",
    "EntitlementsResponse",
    "UsageResponse",
    "IntentCheckResponse",
    "JobListResponse",
    "JobPreflightResponse",
    "JobCreateResponse",
    "JobReadResponse",
    "JobEventsResponse",
    "JobApproveResponse",
    "JobCancelResponse",
    "JobRevisionResponse",
    "FilePresignResponse",
    "FileCompleteResponse",
    "ApiKeysResponse",
    "ApiKeyCreateResponse",
    "ApiKeyRevokeResponse",
    "CheckoutCreateResponse",
    "CreateJobRequest",
    "IntentCheckRequest",
    "RevisionRequest",
    "FilePresignRequest",
    "ApiKeyCreateRequest",
    "CheckoutCreateRequest"
  ]
}