Skip to main content

Get Data Product

Retrieve a single data product by UUID with its source run lineage, lifecycle status, timestamps, and ready-made links to results and CSV export endpoints.

Retrieve the full details of a specific data product by its UUID. The response includes the product name, description, the run_ids of the completed runs it assembles, its lifecycle status, timestamps, and a links object pointing at the results and export endpoints. Use this endpoint to inspect a product before fetching its result rows.

The run_ids array is the product's lineage: each UUID references a completed job or resolution run whose results feed the product. Use GET /v1/jobs/{run_id} on each to find the run's configuration, the schema it filled, and the documents it processed. That trail takes you from the delivered dataset all the way back to the original source files.

A product's composition is not fixed at creation. Runs can be added to or removed from a product in the platform, and rows are re-assembled from the current run_ids on every read — so two calls to this endpoint may show a different run_ids array if someone edited the product in between. Compare updated_at to detect changes cheaply before re-fetching results.

The detail response is intentionally small: it is the cheap call to make in a polling loop or before a heavier operation. Fetch it to confirm a product exists and is active before downloading a large CSV export, or to resolve a product ID a user pasted into your integration before acting on it. The heavier reads — result rows, exports, and the governed read contract — each live on their own sub-resources linked from this response.

GET/v1/data-products/{id}

Path parameters

id*uuidData product UUID.

Response

Response fields

idstringData product UUID.
namestringHuman-readable product name.
descriptionstring | nullOptional description.
run_idsstring[]UUIDs of the source job or resolution runs.
statusstringLifecycle status: `active` or `archived`.
created_atstringISO 8601 creation timestamp.
updated_atstringISO 8601 last update timestamp.
linksobjectRelative URLs: `self`, `results`, `export_plain`, `export_audit`.

curl

curl -s https://api.talonic.com/v1/data-products/d1a2b3c4-e5f6-7890-abcd-ef1234567890 \
  -H "Authorization: Bearer tlnc_your_api_key"

Response

{
  "id": "d1a2b3c4-e5f6-7890-abcd-ef1234567890",
  "name": "Q4 Invoice Extract",
  "description": "Structured invoice data from Q4 batch",
  "run_ids": ["r1a2b3c4-e5f6-7890-abcd-ef1234567890"],
  "status": "active",
  "created_at": "2026-06-01T14:20:00.000Z",
  "updated_at": "2026-06-01T14:25:30.000Z",
  "links": {
    "self": "/v1/data-products/d1a2b3c4-e5f6-7890-abcd-ef1234567890",
    "results": "/v1/data-products/d1a2b3c4-e5f6-7890-abcd-ef1234567890/results",
    "export_plain": "/v1/data-products/d1a2b3c4-e5f6-7890-abcd-ef1234567890/export/plain",
    "export_audit": "/v1/data-products/d1a2b3c4-e5f6-7890-abcd-ef1234567890/export/audit"
  }
}
The output columns of a product are defined by the schema of the runs it assembles, not stored on the product row itself. To see which fields the product delivers, fetch a page of results or the plain CSV export — the column set is the schema's field names.

Errors

Error responses

401unauthorizedMissing or invalid API key.
404not_foundData product not found or does not belong to your organization.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.

Frequently asked questions

How do I trace a data product back to its source documents?+
Walk the `run_ids` array. Each entry references a job run — `GET /v1/jobs/{run_id}` returns the run detail, including the schema it filled and the documents it processed. From there each result row carries a `document_id` back to the original file.
Where is the schema of a data product?+
The product row does not embed a schema reference. Its columns come from the user schema of the runs listed in `run_ids` — fetch one of those runs, or read a page of `/results`, to see the delivered field names.
What statuses can a data product have?+
Two: `active` and `archived`. Archiving is a soft delete from the platform UI that hides the product without removing rows. The list endpoint accepts the same values as a `status` filter.
Can the run_ids of a product change after creation?+
Yes. Runs can be added to or removed from a product, and results are assembled from the current `run_ids` on every read. Watch `updated_at` to detect edits before re-fetching a large result set.