
Signature Card Catalog API Explorer
Need an API key? Contact sales@perscient.com.
How to call this API
Prefer an interactive, schema-complete reference? The OpenAPI reference documents every request/response field and offers ready-to-copy code samples in multiple languages (curl, JavaScript, Python, and more).
Every request must include your key in an Authorization header:
Authorization: Bearer etck_…
GET /v1/data/applications
Lists the applications your key can read, with each application's available filter dimensions.
curl -H 'Authorization: Bearer etck_…' \ /v1/data/applications
GET /v1/data/signatures
Returns a flat list of {applicationName, label, description?} rows across every application your key can read. Each row is a queryable unit for /v1/data/series; description is the common description from the card catalog and is omitted when none exists. Each signature also carries filterDimensions — the filter dimensions it takes (keys, display names, and values); dimension sets vary per signature, even within one application. Pass ?application= (a display name from /v1/data/applications) to restrict the list to one application.
curl -H 'Authorization: Bearer etck_…' \ /v1/data/signatures
POST /v1/data/series
Returns time-series rows for one or more (app, label) combinations. The index value is 0Index100, recomputed from density across the requested [start, end] window — the same series pulled over a different window returns different index values. filterDimensions entries combine with AND, so a multi-dimension signature is pinned by passing one entry per dimension. Pass "format": "csv" for a CSV response instead of JSON.
curl -X POST -H 'Authorization: Bearer etck_…' \
-H 'Content-Type: application/json' \
-d '{
"start": "2024-01-01",
"end": "2024-12-31",
"resolution": "daily",
"format": "json",
"series": [
{ "appName": "AI Effects", "label": "Banking",
"filterDimensions": [{"key":"industry","value":"Banking"}] }
]
}' \
/v1/data/seriesGET /v1/data/applications
Lists every application your key is authorized to read. Each row includes the applicationName and a deprecated filterDimensions map — the union of dimension keys across the whole application. Dimension sets actually vary per signature, so prefer /v1/data/signatures when choosing filters for /v1/data/series.
GET /v1/data/signatures
Returns a flat list of {applicationName, label, description?} rows across every application your key can read, or just one application when the ?application= filter above is set. Each row is a queryable unit for /v1/data/series; description is the common description from the card catalog and is omitted when a signature has none.
POST /v1/data/series
Returns time-series rows for one or more (app, label) combinations. The index value is 0Index100, recomputed from density across the requested [start, end] window — the same series pulled over a different window returns different index values. Switch the format to csv for a CSV body instead of JSON.
Responses are cached for 15 minutes per distinct request. Signature data publishes once daily, so re-sending the same request inside that window returns identical rows.
{
"start": "2025-08-18",
"end": "2026-08-18",
"resolution": "daily",
"format": "json",
"series": []
}Response Data
No request sent yet.