Skip to content
Docs

API reference / Operations by tag

data-locker

Data locker: scheduled Parquet exports, partitions, backfills and BI connectors.

15 operations. Base URL https://api.metrixed.com/v1; see authentication, errors and pagination.

Operations

MethodPathSummary
GET/connectorsList BI connectors (BigQuery, Snowflake)
POST/connectorsCreate a connector; config + credentials must pass the offline dry-run
GET/connectors/{id}Get connector
PATCH/connectors/{id}Update connector (credentials optional: omitted keeps the stored secret)
DELETE/connectors/{id}Delete connector and its sealed credentials
POST/connectors/{id}/runQueue a load of locker partitions the connector has not loaded yet
GET/connectors/{id}/runsConnector run history
POST/connectors/{id}/testCredentials dry-run (offline checks); live=true also queues an authentication probe
POST/data-locker/backfillQueue a backfill of a dataset over a date range (max 366 days; one in flight per dataset)
GET/data-locker/backfillsBackfill history and progress
GET/data-locker/configData locker storage + schedule config (secret write-only)
PUT/data-locker/configUpdate locker config; omitted fields keep their value, secret_key is required the first time
GET/data-locker/manifestManifest of one dataset (files, row counts, schema + evolution version)
GET/data-locker/partitionsPartition ledger (filters: dataset, status, from, to)
GET/data-locker/statusPer-dataset partition counts, rows, bytes, failures and backfill states

GET /connectors

List BI connectors (BigQuery, Snowflake)

Operation getConnectors. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
StatusDescriptionBody
200okapplication/json DataConnectorList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/connectors?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {
      "kind": "bigquery",
      "name": ""
    }
  ],
  "page": {}
}

POST /connectors

Create a connector; config + credentials must pass the offline dry-run

Operation postConnectors. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): DataConnector

FieldTypeFlagsDescription
idstringread-only
kindenum: bigquery, snowflakerequired
namestringrequired
configobject (free-form)bigquery: project, dataset, location, table_prefix | snowflake: account, user, role, warehouse, database, schema, stage, storage_integration, table_prefix
credentialsstringBigQuery: service-account JSON. Snowflake: password or PEM private key. Write-only; sealed at rest.
has_credentialsbooleanread-only
datasetsarray of enum: clicks, conversions, events, postback_logs, postback_in_logs, agg_hourly
statusenum: active, paused
last_run_atstring (date-time)read-only
last_statusstringread-only
last_errorstringread-only
loaded_throughstring (date-time)read-only
versionintegerread-only
created_atstring (date-time)read-only
updated_atstring (date-time)read-only
StatusDescriptionBody
201okapplication/json DataConnector
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/connectors' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"kind":"bigquery","name":""}'

Example 201 response:

json
{
  "kind": "bigquery",
  "name": ""
}

GET /connectors/{id}

Get connector

Operation getConnectorsId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json DataConnector
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/connectors/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "kind": "bigquery",
  "name": ""
}

PATCH /connectors/{id}

Update connector (credentials optional: omitted keeps the stored secret)

Operation patchConnectorsId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): DataConnector

FieldTypeFlagsDescription
idstringread-only
kindenum: bigquery, snowflakerequired
namestringrequired
configobject (free-form)bigquery: project, dataset, location, table_prefix | snowflake: account, user, role, warehouse, database, schema, stage, storage_integration, table_prefix
credentialsstringBigQuery: service-account JSON. Snowflake: password or PEM private key. Write-only; sealed at rest.
has_credentialsbooleanread-only
datasetsarray of enum: clicks, conversions, events, postback_logs, postback_in_logs, agg_hourly
statusenum: active, paused
last_run_atstring (date-time)read-only
last_statusstringread-only
last_errorstringread-only
loaded_throughstring (date-time)read-only
versionintegerread-only
created_atstring (date-time)read-only
updated_atstring (date-time)read-only
StatusDescriptionBody
200okapplication/json DataConnector
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/connectors/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"kind":"bigquery","name":""}'

Example 200 response:

json
{
  "kind": "bigquery",
  "name": ""
}

DELETE /connectors/{id}

Delete connector and its sealed credentials

Operation deleteConnectorsId. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
204okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X DELETE 'https://api.metrixed.com/v1/connectors/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

POST /connectors/{id}/run

Queue a load of locker partitions the connector has not loaded yet

Operation postConnectorsIdRun. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
202okapplication/json DataConnectorRun
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/connectors/<id>/run' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 202 response:

json
{
  "id": "",
  "connector_id": "",
  "kind": "load",
  "status": "queued"
}

GET /connectors/{id}/runs

Connector run history

Operation getConnectorsIdRuns. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes
pagequeryintegerno
page_sizequeryintegerno
StatusDescriptionBody
200okapplication/json DataConnectorRunList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/connectors/<id>/runs?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

POST /connectors/{id}/test

Credentials dry-run (offline checks); live=true also queues an authentication probe

Operation postConnectorsIdTest. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): DataConnectorTestRequest

FieldTypeFlagsDescription
livebooleanalso queue a real authentication probe executed by the worker
StatusDescriptionBody
200okapplication/json DataConnectorTestResult
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/connectors/<id>/test' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"live":false}'

Example 200 response:

json
{
  "report": {},
  "run": {}
}

POST /data-locker/backfill

Queue a backfill of a dataset over a date range (max 366 days; one in flight per dataset)

Operation postDataLockerBackfill. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): DataLockerBackfillRequest

FieldTypeFlagsDescription
datasetenum: clicks, conversions, events, postback_logs, postback_in_logs, agg_hourlyrequired
fromstringrequiredRFC3339 or YYYY-MM-DD (UTC)
tostringrequired
grainenum: hour, day
StatusDescriptionBody
202okapplication/json DataLockerBackfill
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/data-locker/backfill' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"dataset":"clicks","from":"","to":""}'

Example 202 response:

json
{
  "id": "",
  "dataset": "",
  "from_ts": "1970-01-01T00:00:00.000Z",
  "to_ts": "1970-01-01T00:00:00.000Z"
}

GET /data-locker/backfills

Backfill history and progress

Operation getDataLockerBackfills. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
StatusDescriptionBody
200okapplication/json DataLockerBackfillList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/data-locker/backfills?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

GET /data-locker/config

Data locker storage + schedule config (secret write-only)

Operation getDataLockerConfig. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json DataLockerConfig
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/data-locker/config' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "enabled": false,
  "provider": "s3",
  "endpoint": "",
  "region": ""
}

PUT /data-locker/config

Update locker config; omitted fields keep their value, secret_key is required the first time

Operation putDataLockerConfig. Auth: API key (Bearer) or session cookie.

Request body (application/json, required): DataLockerConfig

FieldTypeFlagsDescription
enabledboolean
providerenum: s3, gcs, minio
endpointstringhost[:port]; GCS uses storage.googleapis.com (S3 interop, HMAC keys)
regionstring
bucketstring
prefixstringdefault: tenant id
use_sslboolean
path_styleboolean
access_keystring
secret_keystringwrite-only; sealed at rest
secret_setbooleanread-only
datasetsarray of enum: clicks, conversions, events, postback_logs, postback_in_logs, agg_hourly
grainsobject (free-form)dataset -> hour|day override
retention_daysinteger0 = keep forever
lag_minutesinteger
configuredbooleanread-only
last_run_atstring (date-time)read-only
last_errorstringread-only
available_datasetsarray of object (free-form)read-only
StatusDescriptionBody
200okapplication/json DataLockerConfig
defaulterrorapplication/json Error
bash
curl -X PUT 'https://api.metrixed.com/v1/data-locker/config' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"enabled":false,"provider":"s3","endpoint":"","region":""}'

Example 200 response:

json
{
  "enabled": false,
  "provider": "s3",
  "endpoint": "",
  "region": ""
}

GET /data-locker/manifest

Manifest of one dataset (files, row counts, schema + evolution version)

Operation getDataLockerManifest. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
datasetqueryenum: clicks, conversions, events, postback_logs, postback_in_logs, agg_hourlyyes
StatusDescriptionBody
200okapplication/json DataLockerManifest
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/data-locker/manifest' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "manifest": {},
  "manifest_key": "",
  "bucket": ""
}

GET /data-locker/partitions

Partition ledger (filters: dataset, status, from, to)

Operation getDataLockerPartitions. Auth: API key (Bearer) or session cookie.

ParameterInTypeRequiredDescription
datasetquerystringno
statusquerystringno
fromquerystringno
toquerystringno
pagequeryintegerno
page_sizequeryintegerno
StatusDescriptionBody
200okapplication/json DataLockerPartitionList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/data-locker/partitions?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ],
  "page": {}
}

GET /data-locker/status

Per-dataset partition counts, rows, bytes, failures and backfill states

Operation getDataLockerStatus. Auth: API key (Bearer) or session cookie.

StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/data-locker/status' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}