---
title: "All registered deliverable resolvers"
method: GET
path: "/v1/delivery/catalog/deliverables"
tags: ["Delivery"]
---

# All registered deliverable resolvers

`GET /v1/delivery/catalog/deliverables`

## Request

- Base URL: `https://api.talonic.com`
- URL: `https://api.talonic.com/v1/delivery/catalog/deliverables`
- Auth: HTTP bearer

Live resolvers include `notification`, `markdown`, `document.capture`,
`document.meta`, `run.dataspace.outcome`, `run.structuring.outcome`,
`run.resolution.outcome`, `run.extraction.outcome`, `record.approved`,
`pipeline.capture`, and `case.snapshot` (routes the `case.resolved`
signal into a flat case snapshot record).


Four resolvers serve pipeline-level and Dispatch-node grains:
`pipeline.rows` (every structured record of a One Engine pipeline, or a
Dispatch node's frozen document slice — one row per document, the
`records[]` contract of the retired `run.completed` webhook; binds to
`pipeline.completed` and `dispatch.pipeline.requested`),
`pipeline.assembly_product` (the composed assembly product set, one row
per anchor-merged product record; binds to
`dispatch.assembly.requested`), `pipeline.matcher_product` (per
document, the matcher decision for each bound output field — matched /
shortlist / no_match, tier, matched value and the winner's pinned
reference columns; rival rows never ship; binds to
`dispatch.matcher.requested`) and `data_product.export` (the same CSV
bytes `GET /data-products/{id}/export` serves, for the pipeline's data
product; blob shape, so raw/file serializers only; binds to
`dispatch.data_product.requested`).


The `graph.relations` resolver remains a stub with an
empty `compatible_signals` array and never routes real traffic.

## Response `200`

Array of deliverable catalog entries.

- DeliverableCatalogEntry[]
  - `type` string, required
  - `label` string: Short human-readable label, e.g. "Document markdown content". Falls back to `type` if unknown.
  - `description` string: One-line explanation of what the resolver emits.
  - `compatible_signals` string[], required: Empty for slice-2 stub resolvers — they appear in the list but never route.
  - `shape` union, required
    - object
      - `kind` 'record', required
      - `is_collection` boolean, required
      - `columns` object[], required
        - `name` string, required
        - `type` 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'json', required
        - `nullable` boolean
    - object
      - `kind` 'blob', required
      - `mime` string, required
    - object
      - `kind` 'graph', required
      - `node_types` string[], required
      - `edge_types` string[], required
    - object
      - `kind` 'envelope', required

## Other responses

- `401`: Missing or invalid API key.
- `429`: Daily rate limit exceeded.

---

[API](https://skmtc.dev/talonic/apis/talonic-api.md) · [All operations](https://skmtc.dev/talonic/apis/talonic-api/llms.txt) · [OpenAPI document](https://skmtc.dev/talonic/apis/talonic-api/revisions/678fe5f8c9c3?raw)
