tiero

Developers

Build on tiero: read catalogs and consensus boards, publish your own templates, embed boards and the builder, and connect agents.

Start here

The basics

Everything lives under one versioned base path, https://tiero.io/api/v1/, and speaks JSON. The full machine-readable description is at /api/v1/openapi.json (OpenAPI 3.1), so you can generate a client or load it into your own tools.

  • Catalogs (also called templates) are the items people rank. Providers publish them with PUT /api/v1/catalogs/{slug}.
  • Lists are tier lists people make from a catalog.
  • Consensus is the board built from every public list of a catalog, at GET /api/v1/catalogs/{owner}/{slug}/consensus.

Public reads need no key and are cached for 60 seconds, with Access-Control-Allow-Origin: *, so a browser on any site can call them.

Authentication

Writes need one of three credentials:

CredentialUsed byHow
API keyServers, scripts, CIAuthorization: Bearer tiero_sk_..., created at Account, API keys with the scopes it needs
Sessiontiero.io itselfThe sign-in cookie. Cross-site writes are refused.
Embed tokenThe embedded builderIssued after a user connects their account inside an embed. See Embeds.

API key scopes are catalogs:write, media:write, lists:read and lists:write. Keys are shown once when you create them; store them in an environment variable, never in code.

Errors

Every error has the same shape. code is stable and safe to branch on; message is for people. Codes are only ever added, never renamed.

422 response
{
  "error": {
    "code": "validation_failed",
    "message": "Catalog is invalid",
    "details": { "issues": [{ "pointer": "/items/0/id", "code": "invalid_format", "message": "Invalid id" }] }
  }
}

A 429 carries Retry-After: wait that many seconds and try again. See Limits for the numbers.