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.