Skip to main content

List Data Policies

List data policies: versioned rulesets that transform, normalize, and validate extracted field values during resolution runs. Cursor-paginated, read scope.

A data policy is a first-class, versioned ruleset that defines how extracted field values are transformed, normalized, and validated during resolution. Resolution is the application of Data Policies to extracted values — distinct from the registry's internal binding of raw field names to canonical fields. Each policy declares a set of output fields (the contract) and a set of rules (the transformation logic), which the platform compiles into an executable pipeline. This endpoint lists every data policy in your workspace with cursor-based pagination.

Policies power the Resolve stage of a pipeline: lookup cascades that map raw values to canonical codes via reference tables, sandboxed Lua scripting for custom logic, deterministic computation, and field-to-field transforms. Because policies are versioned, you can iterate on transformation logic without affecting in-flight resolution runs that already captured a policy snapshot.

Results are ordered by creation date, newest first by default. Pass the next_cursor from a previous response as cursor to page through the list. This endpoint requires an API key with the read scope.

GET/v1/data-policies

Query parameters

limitintegerMaximum number of items to return (1-100). Default: 20
cursorstringOpaque pagination cursor from a previous response.
orderstringSort order by creation date (asc | desc). Default: desc

Response

Response fields

dataarrayArray of data policy objects.
data[].idstringData policy UUID.
data[].namestringHuman-readable policy name.
data[].descriptionstring | nullOptional description of the policy purpose.
data[].statusstringPolicy status (e.g. draft, published).
data[].created_atstringISO 8601 creation timestamp.
data[].updated_atstringISO 8601 last update timestamp.
data[].linksobjectURLs to the policy and its subresources (self, versions, fields, rules).
pagination.totalintegerTotal number of policies in the workspace.
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.

curl

Response

{
  "data": [
    {
      "id": "p1a2b3c4-e5f6-7890-abcd-ef1234567890",
      "name": "Invoice Normalization",
      "description": "Standardize currency codes, country names, and date formats for invoice processing",
      "status": "published",
      "created_at": "2024-10-01T09:00:00.000Z",
      "updated_at": "2024-10-15T11:30:00.000Z",
      "links": {
        "self": "/v1/data-policies/p1a2b3c4-e5f6-7890-abcd-ef1234567890",
        "versions": "/v1/data-policies/p1a2b3c4-e5f6-7890-abcd-ef1234567890/versions",
        "fields": "/v1/data-policies/p1a2b3c4-e5f6-7890-abcd-ef1234567890/fields",
        "rules": "/v1/data-policies/p1a2b3c4-e5f6-7890-abcd-ef1234567890/rules"
      }
    }
  ],
  "pagination": {
    "total": 1,
    "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.
Policies are versioned. The list shows the policy headers; follow links.versions to see the compiled version history and links.fields / links.rules for the current contract and logic.