Upscrape generates an OpenAPI 3.1 document for each platform from its registered capabilities and the canonical API error catalog.

## What the document contains

- `POST /execute` with a capability-specific request union;
- job and result polling endpoints;
- bearer authentication;
- `Prefer`, `Idempotency-Key` and `X-Max-Credits` headers;
- rate-limit headers and canonical error envelopes;
- conditional credential endpoints for platforms that require authentication;
- JSON Schema Draft 2020-12 input definitions;
- capability-specific completed-response schemas where the contract can be expressed safely.

Raw capability output remains open-ended because upstream response shapes vary and may evolve additively.

The document lists the unversioned paths. Every path is also served under `/v1` with identical behaviour.

## Public access

Every public platform has a stable document at:

```text
https://upscrape.com/scrapers/PLATFORM_ID/openapi.json
```

The authenticated console exposes the same generated document for platforms visible to that account. Private and unlisted definitions remain available only through account-scoped console routes; they are not exposed by the public URL.

## Keeping integrations current

Use the published OpenAPI document when updating an integration. It describes the currently available request and response contracts.
