Skip to main content

List Schemas

List every saved extraction schema in your organization with cursor pagination, case-insensitive name search, sort order, and per-schema field counts.

The GET /v1/schemas endpoint lists every saved extraction schema in your organization. A schema defines the target column shape you want extracted from documents: save it once, then reuse it across extractions by passing its id as schema_id so every run returns the same fields. The schema is the shape only; a Spec layers a rail, resolution policies, and validation gates on top of a schema for governed Pipeline runs.

Use this endpoint to browse your organization's schemas, search by name, and paginate through large collections. Each schema in the response includes its field count, its full JSON Schema definition, and links to related extractions.

Schemas are organization-scoped. You will only see schemas created by your organization, not other tenants.
GET/v1/schemas

Query parameters

limitintegerMaximum number of results to return (1–100). Default: 20
cursorstringPagination cursor from a previous response.
orderstringSort direction by created_at. Default: desc
searchstringFilter schemas by name (case-insensitive partial match).

List schemas matching "invoice"

Response

Response fields

dataarrayArray of schema objects.
data[].idstringSchema UUID.
data[].short_idstringHuman-readable short ID (e.g. SCH-A1B2C3D4).
data[].namestringSchema name.
data[].descriptionstring | nullOptional description.
data[].definitionobjectJSON Schema definition with type, properties, and required.
data[].field_countintegerNumber of fields in the schema.
data[].versionintegerSchema version number. Detailed version history lives on the versions endpoints.
data[].created_atstringISO 8601 creation timestamp.
data[].updated_atstringISO 8601 last update timestamp.
data[].linksobjectRelated resource URLs (self, extractions, dashboard).
pagination.totalintegerTotal number of schemas matching the query.
pagination.limitintegerMaximum results per page.
pagination.has_morebooleanWhether more results exist beyond this page.
pagination.next_cursorstring | nullCursor to fetch the next page. Null if no more results.

Response

{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "short_id": "SCH-A1B2C3D4",
      "name": "Invoice",
      "description": "Standard invoice extraction schema",
      "definition": {
        "type": "object",
        "properties": {
          "invoice_number": { "type": "string", "title": "invoice_number" },
          "vendor": { "type": "string", "title": "vendor" },
          "total": { "type": "number", "title": "total" },
          "date": { "type": "date", "title": "date" }
        },
        "required": ["invoice_number"]
      },
      "field_count": 4,
      "version": 1,
      "created_at": "2024-08-20T14:00:00.000Z",
      "updated_at": "2024-09-10T09:15:00.000Z",
      "links": {
        "self": "/v1/schemas/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "extractions": "/v1/extractions?schema_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "dashboard": "https://app.talonic.com/schemas/user/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    }
  ],
  "pagination": {
    "total": 12,
    "limit": 20,
    "has_more": false,
    "next_cursor": null
  }
}

Errors

Error responses

401unauthorizedMissing or invalid API key.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.