---
title: "This document"
method: GET
path: "/v1/openapi.yaml"
tags: ["Meta"]
---

# This document

`GET /v1/openapi.yaml`

## Request

- Base URL: `https://api.trayo.ai`
- URL: `https://api.trayo.ai/v1/openapi.yaml`
- Auth: none required

Unauthenticated, so that a caller can fetch this document before it has a key configured. Generated from the running server's own routes, so it cannot drift from the API it describes.

The same document is served at `GET /openapi.json` and `GET /.well-known/openapi`. The extension chooses the default serialization — YAML here, JSON there — and an explicit `Accept` of `application/json` or `application/yaml` overrides it either way.

## Response `200`

This OpenAPI document.

- object

## Other responses

- `429`: Unauthenticated, so this route is limited per source network rather than per workspace and carries `Retry-After` alone — there is no workspace bucket to report, and no `RateLimit-*` headers. Fetch this document once and reuse it rather than re-reading it per call. `rate_limited` (`retry: retry_later`) — The workspace or source network exhausted its request budget for one bucket. `details.retryAfterSeconds` (and `Retry-After` on REST) is the wait: wait that long, then retry the same request once. Do not poll or retry sooner; an early retry is refused again. If you cannot wait, stop and tell the user when to retry; do not fill the wait with other calls. `details.limit` and `details.bucket` name the exhausted budget. When present, RateLimit-* headers describe the active budget and reset.

---

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