API referenceTemplates

Get a template and one version

Get a template and one version (default current)

Endpoint
GET https://api.dairo.app/v1/templates/{idOrSlug}

Returns a template addressed by idOrSlug (a UUID matches on id, anything else on slug) together with one version's full body, including its source. Without the version query parameter the template's current published version is returned; pass version=N (a positive integer) to fetch a specific historical version instead. The version is nested under version as an object: "template_version" carrying source, subject, variables, notes, and createdAt. Responds 404 when the template does not exist, is archived, has no published version, or the requested version was never published. Requires the templates:read scope.

Scope: templates:read. Send the API key as a bearer token; Scopes lists what each one reaches.

Request

cURL
curl "https://api.dairo.app/v1/templates/idOrSlug" \
  -H "Authorization: Bearer $DAIRO_API_KEY"

Path parameters

NameTypeRequiredDescription
idOrSlugstringyesTemplate UUID or slug.

Query parameters

NameTypeRequiredDescription
versionintegernoReturn this version instead of the current published version. (minimum 1)

Response

200 Success. Body: application/json, TemplateDetailResponse.

FieldTypeRequiredDescription
templateTemplateyes
versionTemplateVersionDetailyes
200
{
  "template": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "slug": "welcome",
    "name": "Ada Lovelace",
    "description": null,
    "currentVersion": null,
    "status": "string",
    "createdAt": "2026-10-19T09:30:00Z",
    "updatedAt": "2026-10-19T09:30:00Z"
  },
  "version": {
    "version": 0,
    "source": "string",
    "subject": "Hello from Acme",
    "variables": {},
    "notes": null,
    "createdAt": "2026-10-19T09:30:00Z"
  }
}

Errors

Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.

StatusMeaning
400The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch).
401The API key is missing or invalid.
403The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted).
404No such resource in this account (resource_not_found).
422The request is well-formed but a field failed validation (validation_failed).
429Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached).
500An unexpected error; retry with backoff, then contact support (internal_error).

On this page