---
title: "The call sequences that make up a task"
method: GET
path: "/v1/recipes"
tags: ["Meta"]
---

# The call sequences that make up a task

`GET /v1/recipes`

## Request

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

Unauthenticated. Each recipe is an ordered list of operations from this document — by `operationId`, `method` and `path` — with what each step does in that sequence and, for a poll step, the condition that ends the loop (`until`). `when` says which recipe fits a task; `spends` says what it costs before you start.

The same list is carried in the OpenAPI document as `x-recipes` and rendered in `/llms.txt`. A recipe can only name an operation this document describes: the list is resolved against the document, not maintained beside it.

## Response `200`

The recipes.

## 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)
