---
title: "API index"
method: GET
path: "/"
---

# API index

`GET /`

## Request

- Base URL: `https://api.doseplot.com`
- URL: `https://api.doseplot.com/`
- Auth: none required

Names the live endpoints, the payment rail, and the source dataset revision.

## Response `200`

API index document.

- Index
  - `disclaimer` string, required: Fixed disclaimer. Must be preserved when relaying any output to a human (terms clause 2).
  - `intended_use` string, required: Fixed intended-use statement. Must be preserved when relaying any output to a human.
  - `name` string, required
  - `version` string, required
  - `docs_url` string, uri
  - `openapi_url` string, uri
  - `terms_url` string, uri
  - `endpoints` object, required
    - `free` object[]
      - `method` string, required
      - `path` string, required
      - `description` string, required
    - `paid` object[]
      - `method` string, required
      - `path` string, required
      - `description` string, required
  - `paid_endpoints` object, required: The paid compute surface as configured on THIS deployment. `network` is read from the deployment's own configuration per request, so it never claims a chain the paywall is not set up for.
    - `note` string
    - `price_usd_per_call` 0.01: US dollars per paid call.
    - `rail` string
    - `network` string, nullable: CAIP-2 chain id this deployment settles on.
    - `network_name` string, nullable: Plain-language name of that chain, or null if unrecognised.
    - `free_calls_per_day` 0: Free compute calls per address bucket per UTC day. 0: every compute call needs an x402 payment.
    - `endpoints` object[]
      - `method` string, required
      - `path` string, required
      - `description` string, required
  - `payment` object, required: An unpaid compute call answers 402 with the x402 payment-requirements document base64-encoded in the PAYMENT-REQUIRED header -- NOT an RFC 9457 problem+json body. Callers must branch on status 402 before parsing an error as a Problem.
    - `summary` string
    - `scheme` string
    - `asset` string
    - `requirements_header` string
    - `payment_header` string
  - `source_data` object, required
    - `native_sha` string, nullable
    - `compounds_published` integer

## Other responses

- `405`: Method not allowed on a live path. The read endpoints are GET-only; the compute endpoints are POST-only.
- `429`: Rate limit exceeded (60 requests/minute on the read routes; 1000 /v1 reads/day; 300 requests/minute on the paid compute routes). Carries a Retry-After header. NOTE: a 429 raised by Cloudflare's own edge protection, rather than by this Worker, MAY be a non-JSON body (HTML) with no Retry-After -- treat ANY 429 as retryable regardless of content type, and do not assume the problem+json schema below.
- `500`: Unexpected internal error. Generic body; nothing about the request is echoed.

---

[API](https://skmtc.dev/doseplot/apis/doseplot-agent-api.md) · [All operations](https://skmtc.dev/doseplot/apis/doseplot-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/doseplot/apis/doseplot-agent-api/revisions/f35133f7fbc1?raw)
