---
title: "Get this document"
method: GET
path: "/api/v1/openapi.json"
tags: ["About the API"]
---

# Get this document

`GET /api/v1/openapi.json`

## Request

- Base URL: `https://verifiedhandles.org`
- URL: `https://verifiedhandles.org/api/v1/openapi.json`
- Auth: none required

This description of the public API, as OpenAPI 3.1. It is generated from the same registry the routes are tested against, so it changes when the API does.

Any origin may read it: `Access-Control-Allow-Origin: *`, methods GET and OPTIONS, no credentials. An `OPTIONS` preflight answers 204. No key is needed. A request that sends one (`Authorization: Bearer`) has it checked, so a wrong, revoked or expired key is refused 401, and is counted against the key’s read limit; it gets the same answer, marked `no-store`.

## Response `200`

The OpenAPI document.

- OpenApiDocument: An OpenAPI 3.1 document: this one.
  - `openapi` '3.1.0', required
  - `info` object, required
    - `title` string, required
    - `version` string, required
  - `paths` object, required
  - `components` object, required

## Other responses

- `429`: Too many requests from this IP address in the last minute (at a route that takes a key, an admin key’s are counted per key instead, at the limits set on Console → Rate limits). Wait the number of seconds `Retry-After` gives.
- `503`: The site is down for maintenance. The body is the maintenance page, as HTML. Try again later: `Retry-After` gives the seconds.

---

[API](https://skmtc.dev/verifiedhandles/apis/verified-handles-api.md) · [All operations](https://skmtc.dev/verifiedhandles/apis/verified-handles-api/llms.txt) · [OpenAPI document](https://skmtc.dev/verifiedhandles/apis/verified-handles-api/revisions/40720de2e0ec?raw)
