Skip to main content

Create Run-Backed Data Product

Create a data product from completed job or resolution runs with one API call. Set quality thresholds and receive a share token and export links on creation.

Create a data product from one or more completed runs. A data product is the platform's final deliverable: an assembled, canonical dataset wrapped for handover, with quality thresholds, a share link, and CSV export. This endpoint is the run-backed create path — pass the run IDs that feed the product and it assembles them and mints a share token in one call.

The body requires a name and a run_ids array of completed job or resolution run UUIDs. You may optionally pass thresholds to filter rows by quality — min_confidence (0-1), require_validation_pass, and require_approval. When omitted, the platform default applies: minimum confidence 0.7 with validation pass required. The response is the created product with its id, run_ids, status, and ready-made links.

Two further optional inputs shape the delivered output. id_rules configures deterministic unique row IDs (a prefix drawn from a source field plus a sequence counter), and output_overrides layers per-field delivery overrides — suppressing a field or renaming its output column — on top of the schema's own output rules, so one schema can feed multiple products with different delivered shapes.

This is the run-backed create path. Products built from a validation session or a pipeline are created through their own surfaces (the pipeline's POST /v1/pipelines/{id}/data-product). A share token is minted automatically on create; manage it through the share endpoints.
POST/v1/data-products

Body parameters

name*stringA name for the data product.
run_ids*string[]Completed job/resolution run UUIDs to assemble.
descriptionstringOptional description.
thresholdsobjectOptional quality filters: min_confidence (0-1), require_validation_pass, require_approval.
id_rulesarrayOptional rules for generating deterministic unique IDs on result rows.
output_overridesobjectOptional per-field delivery overrides: `{ <field_name>: { suppress?, output_name? } }`.

curl

curl -s -X POST https://api.talonic.com/v1/data-products \
  -H "Authorization: Bearer tlnc_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q2 Deliveries",
    "run_ids": ["c3d4e5f6-a7b8-9012-cdef-123456789012"],
    "thresholds": { "min_confidence": 0.8 }
  }'

Response

{
  "id": "6ecb46fa-24ba-4b5d-93ee-b8b6c6b97655",
  "name": "Q2 Deliveries",
  "description": null,
  "run_ids": ["c3d4e5f6-a7b8-9012-cdef-123456789012"],
  "status": "active",
  "created_at": "2026-06-27T10:00:00.000Z",
  "updated_at": "2026-06-27T10:00:00.000Z",
  "links": {
    "self": "/v1/data-products/6ecb46fa-24ba-4b5d-93ee-b8b6c6b97655",
    "results": "/v1/data-products/6ecb46fa-24ba-4b5d-93ee-b8b6c6b97655/results",
    "export_plain": "/v1/data-products/6ecb46fa-24ba-4b5d-93ee-b8b6c6b97655/export/plain",
    "export_audit": "/v1/data-products/6ecb46fa-24ba-4b5d-93ee-b8b6c6b97655/export/audit"
  }
}

Errors

Error responses

400bad_requestValidation error: missing name, run_ids entries that are not UUIDs, or malformed thresholds.
401unauthorizedMissing or invalid API key.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.

Frequently asked questions

What runs can feed a data product?+
Completed job or resolution runs. Pass their UUIDs in `run_ids` — the product assembles their stored results into one canonical dataset, and you can add or remove runs later without recreating the product.
Does creating a product make it public?+
A share token is minted on create, but the public link is governed by the share endpoints and can be password-protected (see the `has_password` flag). Use `GET /v1/data-products/{id}/share` to read it, rotate it, or revoke it.
What do the thresholds control?+
The optional `thresholds` object filters which rows enter the product: `min_confidence` (0-1) drops low-confidence values, `require_validation_pass` keeps only rows that passed validation, and `require_approval` keeps only reviewer-approved rows. The default is min_confidence 0.7 with validation pass required.
What are output_overrides for?+
They let one schema feed multiple products with different delivered shapes. Keyed by the physical schema field name, each override can `suppress` the field from the delivered output or rebind its `output_name`; omitted properties fall back to the schema's own output rules.