Get one template catalogue entry with its version list.
Returns a single template (by slug) plus its version list (newest first). Human principals only: a browser session or a WorkOS user-token bearer is accepted; rsk_* API keys and BYOA OAuth-agent tokens authenticate but are rejected 403. Templates are tenant-private: only the authoring org or a first-party `rensei` system template is visible; any other slug returns 404 so existence is not leaked across the tenant boundary. For shared `rensei` templates, per-version publisher identity and validation reports are stripped.
AuthorizationBearer <rsk_live_*>Rensei API key presented as Authorization: Bearer rsk_live_. Required API-key scopes are recorded per operation in x-rensei-required-scopes.
slug*stringThe template slug.
The template and its versions.
application/json- response
template*supersededBy*|nullversions*array<>curl -X GET 'https://app.rensei.ai/api/templates/string'{ "template": { "id": "string", "slug": "string", "name": "string", "description": "string", "author": "string", "latestVersion": "string", "category": "string", "visibility": "org", "createdAt": "string", "updatedAt": "string" }, "supersededBy": { "itemId": "string", "canonicalKey": "string", "templateSlug": "string", "templateName": "string", "latestVersion": "string" }, "versions": [ { "id": "string", "version": "string", "bundleSha256": "string", "metadata": { "property1": null, "property2": null }, "validationReport": { "property1": null, "property2": null }, "publishedBy": "string", "publishedAt": "string" } ]}List template catalogue entries.
Returns the template catalogue, optionally filtered by tracker, author, or category, with limit/offset pagination. Human principals only: a browser session or a WorkOS user-token bearer is accepted; rsk_* API keys and BYOA OAuth-agent tokens authenticate but are rejected 403.
Inbound webhook from a provider
Unified ingest endpoint for Linear, GitHub, GitHub Actions, and Vercel webhooks. Validates HMAC signature, checks idempotency, and immediately returns 200. All routing/execution is deferred via `after()`. Duplicate deliveries are detected via the gateway's idempotency layer and return `{ ok: true, duplicate: true }`. Providers register at: `POST /api/integrations/{provider}/oauth/authorize`.