Skip to content
Docs

API reference / Operations by tag

apps

Mobile apps, partner access, install attribution, deep links, SKAN and events.

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

Operations

MethodPathSummary
GET/app-partnersList app x partner postback settings
POST/app-partnersCreate app x partner postback settings (send_all vs attributed_only)
GET/app-partners/{id}Get app x partner settings
PATCH/app-partners/{id}Update app x partner settings
DELETE/app-partners/{id}Delete app x partner settings
GET/appsList Apps
POST/appsCreate App (returns sdk_secret and s2s_key once)
GET/apps/{id}Get App
PATCH/apps/{id}Update App
DELETE/apps/{id}Delete App
GET/apps/{id}/partnersPartner postback settings of an app
POST/apps/{id}/partnersAdd partner postback settings to an app
POST/apps/{id}/rotate-secretRotate the SDK signing secret (previous stays valid until end_rotation) or the S2S key; kind sdk|s2s|end_rotation
GET/apps/{id}/sdk-configSDK integration config: app token, endpoints, signature scheme
GET/skan/cv-schemasList SKAN / AAK conversion-value schema
POST/skan/cv-schemasCreate SKAN / AAK conversion-value schema
GET/skan/cv-schemas/{id}Get SKAN / AAK conversion-value schema
PATCH/skan/cv-schemas/{id}Update SKAN / AAK conversion-value schema
DELETE/skan/cv-schemas/{id}Delete SKAN / AAK conversion-value schema
POST/skan/cv-schemas/{id}/activateMake the schema the app's active one (served to SDKs; the previous active one is archived)
GET/skan/cv-schemas/{id}/decode-tableDecode table: fine 0-63 and coarse per window -> implied events and revenue estimate
POST/skan/cv-schemas/simulateSimulate the device evaluator: {schema, install, steps[{at,event,revenue}]} -> postback updates
GET/skan/mappingsList SKAN source mapping (ad network + source identifier -> partner / offer / campaign)
POST/skan/mappingsCreate SKAN source mapping (ad network + source identifier -> partner / offer / campaign)
GET/skan/mappings/{id}Get SKAN source mapping (ad network + source identifier -> partner / offer / campaign)
PATCH/skan/mappings/{id}Update SKAN source mapping (ad network + source identifier -> partner / offer / campaign)
DELETE/skan/mappings/{id}Delete SKAN source mapping (ad network + source identifier -> partner / offer / campaign)
GET/skan/postbacksList received SKAN / AAK postback
GET/skan/postbacks/{id}Get received SKAN / AAK postback
GET/unilink-templatesList unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)
POST/unilink-templatesCreate unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)
GET/unilink-templates/{id}Get unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)
PATCH/unilink-templates/{id}Update unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)
DELETE/unilink-templates/{id}Delete unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)
GET/unilinksList unilink (short code on a template; attributed when offer + partner are set)
POST/unilinksCreate unilink (short code on a template; attributed when offer + partner are set)
GET/unilinks/{id}Get unilink (short code on a template; attributed when offer + partner are set)
PATCH/unilinks/{id}Update unilink (short code on a template; attributed when offer + partner are set)
DELETE/unilinks/{id}Delete unilink (short code on a template; attributed when offer + partner are set)
GET/unilinks/{id}/previewPreview a stored unilink
GET/unilinks/{id}/qrQR code of the short link (format png|svg, size px)
POST/unilinks/previewLive preview of a draft unilink: short URL, per-platform redirect, OG, AASA / assetlinks

GET /app-partners

List app x partner postback settings

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

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json AppPartnerList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/app-partners?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /app-partners

Create app x partner postback settings (send_all vs attributed_only)

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

Request body (application/json, required): AppPartnerCreate

FieldTypeFlagsDescription
app_idstringrequired
partner_idstringrequired
postback_modeenum: attributed_only, send_all
send_installsboolean
send_reattributionsboolean
eventsarray of string
statusenum: active, paused
StatusDescriptionBody
201okapplication/json AppPartner
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/app-partners' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"app_id":"","partner_id":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /app-partners/{id}

Get app x partner settings

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /app-partners/{id}

Update app x partner settings

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): AppPartnerUpdate

FieldTypeFlagsDescription
app_idstring
partner_idstring
postback_modeenum: attributed_only, send_all
send_installsboolean
send_reattributionsboolean
eventsarray of string
statusenum: active, paused
StatusDescriptionBody
200okapplication/json AppPartner
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/app-partners/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"app_id":"","partner_id":"","postback_mode":"attributed_only","send_installs":false}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /app-partners/{id}

Delete app x partner settings

Operation deleteAppPartnersId. 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/app-partners/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

GET /apps

List Apps

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

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json AppList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/apps?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /apps

Create App (returns sdk_secret and s2s_key once)

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

Request body (application/json, required): AppCreate

FieldTypeFlagsDescription
namestringrequired
platformenum: ios, android, webrequired
bundle_idstringrequirediOS bundle id / Android package / web origin
store_idstring
store_urlstring
icon_urlstring
advertiser_idstring
offer_idstringdefault offer installs are attributed under
statusenum: active, paused, archived
currencystring
timezonestring
require_signatureboolean
click_window_hoursinteger
view_window_hoursinteger
probabilistic_enabledboolean
probabilistic_window_hoursinteger
probabilistic_ios_att_deniedboolean
reattribution_enabledboolean
reattribution_inactivity_daysinteger
reattribution_window_daysinteger
reengagement_enabledboolean
reengagement_window_daysinteger
reinstall_exclusion_daysinteger
click_injection_guardboolean
uninstall_trackingboolean
uninstall_push_providerenum: fcm, apns, other
validation_rulesobject (free-form)events{name:{required[],revenue_required,value_min,value_max,currencies[]}}, allow_unknown_events, require_event_id, max_revenue
san_configobject (free-form)networks[{key,name,partner_id,offer_id,priority,enabled}]
preinstall_configobject (free-form)campaigns[{key,partner_id,offer_id}]
settingsobject (free-form)
StatusDescriptionBody
201okapplication/json AppSecrets
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/apps' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","platform":"ios","bundle_id":""}'

Example 201 response:

json
{
  "id": "",
  "sdk_key": "",
  "sdk_secret": "",
  "s2s_key": ""
}

GET /apps/{id}

Get App

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /apps/{id}

Update App

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): AppUpdate

FieldTypeFlagsDescription
namestring
platformenum: ios, android, web
bundle_idstringiOS bundle id / Android package / web origin
store_idstring
store_urlstring
icon_urlstring
advertiser_idstring
offer_idstringdefault offer installs are attributed under
statusenum: active, paused, archived
currencystring
timezonestring
require_signatureboolean
click_window_hoursinteger
view_window_hoursinteger
probabilistic_enabledboolean
probabilistic_window_hoursinteger
probabilistic_ios_att_deniedboolean
reattribution_enabledboolean
reattribution_inactivity_daysinteger
reattribution_window_daysinteger
reengagement_enabledboolean
reengagement_window_daysinteger
reinstall_exclusion_daysinteger
click_injection_guardboolean
uninstall_trackingboolean
uninstall_push_providerenum: fcm, apns, other
validation_rulesobject (free-form)events{name:{required[],revenue_required,value_min,value_max,currencies[]}}, allow_unknown_events, require_event_id, max_revenue
san_configobject (free-form)networks[{key,name,partner_id,offer_id,priority,enabled}]
preinstall_configobject (free-form)campaigns[{key,partner_id,offer_id}]
settingsobject (free-form)
StatusDescriptionBody
200okapplication/json App
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/apps/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","platform":"ios","bundle_id":"","store_id":""}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /apps/{id}

Delete App

Operation deleteAppsId. 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/apps/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

GET /apps/{id}/partners

Partner postback settings of an app

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

ParameterInTypeRequiredDescription
idpathstringyes
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json AppPartnerList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/apps/<id>/partners?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /apps/{id}/partners

Add partner postback settings to an app

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): AppPartnerCreate

FieldTypeFlagsDescription
app_idstringrequired
partner_idstringrequired
postback_modeenum: attributed_only, send_all
send_installsboolean
send_reattributionsboolean
eventsarray of string
statusenum: active, paused
StatusDescriptionBody
201okapplication/json AppPartner
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/apps/<id>/partners' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"app_id":"","partner_id":""}'

Example 201 response:

json
{
  "external_ref": ""
}

POST /apps/{id}/rotate-secret

Rotate the SDK signing secret (previous stays valid until end_rotation) or the S2S key; kind sdk|s2s|end_rotation

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): Ok

FieldTypeFlagsDescription
okboolean
StatusDescriptionBody
200okapplication/json AppSecrets
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/apps/<id>/rotate-secret' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ok":false}'

Example 200 response:

json
{
  "id": "",
  "sdk_key": "",
  "sdk_secret": "",
  "s2s_key": ""
}

GET /apps/{id}/sdk-config

SDK integration config: app token, endpoints, signature scheme

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

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

Example 200 response:

json
{
  "ok": false
}

GET /skan/cv-schemas

List SKAN / AAK conversion-value schema

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

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json SkanCvSchemaList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/skan/cv-schemas?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /skan/cv-schemas

Create SKAN / AAK conversion-value schema

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

Request body (application/json, required): SkanCvSchemaCreate

FieldTypeFlagsDescription
app_idstringrequired
namestringrequired
currencystring
schemaobject (free-form)SDK contract: version, windows[{window 0-2, lock_at_fine_gte, rules[{fine 0-63, coarse low|medium|high, lock, when{event, count_gte, revenue_gte}}]}] (sdks/test-vectors/cv-schema.json)
StatusDescriptionBody
201okapplication/json SkanCvSchema
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/skan/cv-schemas' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"app_id":"","name":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /skan/cv-schemas/{id}

Get SKAN / AAK conversion-value schema

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /skan/cv-schemas/{id}

Update SKAN / AAK conversion-value schema

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): SkanCvSchemaUpdate

FieldTypeFlagsDescription
app_idstring
namestring
currencystring
schemaobject (free-form)SDK contract: version, windows[{window 0-2, lock_at_fine_gte, rules[{fine 0-63, coarse low|medium|high, lock, when{event, count_gte, revenue_gte}}]}] (sdks/test-vectors/cv-schema.json)
StatusDescriptionBody
200okapplication/json SkanCvSchema
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/skan/cv-schemas/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"app_id":"","name":"","currency":"","schema":{}}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /skan/cv-schemas/{id}

Delete SKAN / AAK conversion-value schema

Operation deleteSkanCvSchemasId. 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/skan/cv-schemas/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

POST /skan/cv-schemas/{id}/activate

Make the schema the app's active one (served to SDKs; the previous active one is archived)

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

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json SkanCvSchema
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/skan/cv-schemas/<id>/activate' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "external_ref": ""
}

GET /skan/cv-schemas/{id}/decode-table

Decode table: fine 0-63 and coarse per window -> implied events and revenue estimate

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

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

Example 200 response:

json
{
  "ok": false
}

POST /skan/cv-schemas/simulate

Simulate the device evaluator: {schema, install, steps[{at,event,revenue}]} -> postback updates

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

Request body (application/json, required): Ok

FieldTypeFlagsDescription
okboolean
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/skan/cv-schemas/simulate' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ok":false}'

Example 200 response:

json
{
  "ok": false
}

GET /skan/mappings

List SKAN source mapping (ad network + source identifier -> partner / offer / campaign)

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

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json SkanSourceMappingList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/skan/mappings?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /skan/mappings

Create SKAN source mapping (ad network + source identifier -> partner / offer / campaign)

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

Request body (application/json, required): SkanSourceMappingCreate

FieldTypeFlagsDescription
app_idstring
ad_network_idstringrequired
source_identifierstringSKAN 4 / AAK source identifier or SKAN <=3 campaign id; empty = network default
source_app_idstring
partner_idstring
offer_idstring
campaign_namestring
statusenum: active, paused
StatusDescriptionBody
201okapplication/json SkanSourceMapping
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/skan/mappings' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ad_network_id":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /skan/mappings/{id}

Get SKAN source mapping (ad network + source identifier -> partner / offer / campaign)

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /skan/mappings/{id}

Update SKAN source mapping (ad network + source identifier -> partner / offer / campaign)

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): SkanSourceMappingUpdate

FieldTypeFlagsDescription
app_idstring
ad_network_idstring
source_identifierstringSKAN 4 / AAK source identifier or SKAN <=3 campaign id; empty = network default
source_app_idstring
partner_idstring
offer_idstring
campaign_namestring
statusenum: active, paused
StatusDescriptionBody
200okapplication/json SkanSourceMapping
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/skan/mappings/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"app_id":"","ad_network_id":"","source_identifier":"","source_app_id":""}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /skan/mappings/{id}

Delete SKAN source mapping (ad network + source identifier -> partner / offer / campaign)

Operation deleteSkanMappingsId. 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/skan/mappings/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

GET /skan/postbacks

List received SKAN / AAK postback

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

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json SkanPostbackList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/skan/postbacks?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

GET /skan/postbacks/{id}

Get received SKAN / AAK postback

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

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

Example 200 response:

json
{
  "external_ref": ""
}

List unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)

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

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json UnilinkTemplateList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/unilink-templates?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /unilink-templates

Create unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)

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

Request body (application/json, required): UnilinkTemplateCreate

FieldTypeFlagsDescription
namestringrequired
statusenum: active, paused, archived
tracking_domain_idstringempty = every tracking domain
ios_app_idstring
android_app_idstring
ios_team_idstringApple Team ID (AASA appID prefix)
ios_schemestring
ios_universal_linksboolean
ios_store_urlstring
ios_fallbackenum: store, web
android_schemestring
android_app_linksboolean
android_store_urlstring
android_sha256_fingerprintsarray of string
android_fallbackenum: store, web
android_intentboolean
web_urlstring
desktop_behaviorenum: web, qr_page, custom
desktop_urlstring
og_titlestring
og_descriptionstring
og_image_urlstring
deferred_enabledboolean
deferred_ttl_hoursinteger
fingerprint_ttl_minutesinteger
default_payloadobject (free-form)
StatusDescriptionBody
201okapplication/json UnilinkTemplate
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/unilink-templates' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":""}'

Example 201 response:

json
{
  "external_ref": ""
}

Get unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)

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

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

Example 200 response:

json
{
  "external_ref": ""
}

Update unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): UnilinkTemplateUpdate

FieldTypeFlagsDescription
namestring
statusenum: active, paused, archived
tracking_domain_idstringempty = every tracking domain
ios_app_idstring
android_app_idstring
ios_team_idstringApple Team ID (AASA appID prefix)
ios_schemestring
ios_universal_linksboolean
ios_store_urlstring
ios_fallbackenum: store, web
android_schemestring
android_app_linksboolean
android_store_urlstring
android_sha256_fingerprintsarray of string
android_fallbackenum: store, web
android_intentboolean
web_urlstring
desktop_behaviorenum: web, qr_page, custom
desktop_urlstring
og_titlestring
og_descriptionstring
og_image_urlstring
deferred_enabledboolean
deferred_ttl_hoursinteger
fingerprint_ttl_minutesinteger
default_payloadobject (free-form)
StatusDescriptionBody
200okapplication/json UnilinkTemplate
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/unilink-templates/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","status":"active","tracking_domain_id":"","ios_app_id":""}'

Example 200 response:

json
{
  "external_ref": ""
}

Delete unilink template (per-app routing, AASA / assetlinks data, OG, deferred deep linking)

Operation deleteUnilinkTemplatesId. 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/unilink-templates/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

List unilink (short code on a template; attributed when offer + partner are set)

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

ParameterInTypeRequiredDescription
pagequeryintegerno
page_sizequeryintegerno
sortquerystringnofield or -field
includequerystringnocomma-separated relationships
filterqueryobject (free-form)no
qquerystringnofree-text search
StatusDescriptionBody
200okapplication/json UnilinkList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/unilinks?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /unilinks

Create unilink (short code on a template; attributed when offer + partner are set)

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

Request body (application/json, required): UnilinkCreate

FieldTypeFlagsDescription
template_idstringrequired
codestringgenerated when omitted; short link https://{domain}/u/{code}
namestring
statusenum: active, paused, archived
offer_idstring
partner_idstring
paramsobject (free-form)sub1..sub5, source, campaign (strings)
deep_link_valuestring
payloadobject (free-form)
web_urlstring
og_titlestring
og_descriptionstring
og_image_urlstring
StatusDescriptionBody
201okapplication/json Unilink
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/unilinks' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"template_id":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /unilinks/{id}

Get unilink (short code on a template; attributed when offer + partner are set)

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /unilinks/{id}

Update unilink (short code on a template; attributed when offer + partner are set)

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): UnilinkUpdate

FieldTypeFlagsDescription
template_idstring
codestringgenerated when omitted; short link https://{domain}/u/{code}
namestring
statusenum: active, paused, archived
offer_idstring
partner_idstring
paramsobject (free-form)sub1..sub5, source, campaign (strings)
deep_link_valuestring
payloadobject (free-form)
web_urlstring
og_titlestring
og_descriptionstring
og_image_urlstring
StatusDescriptionBody
200okapplication/json Unilink
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/unilinks/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"template_id":"","code":"","name":"","status":"active"}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /unilinks/{id}

Delete unilink (short code on a template; attributed when offer + partner are set)

Operation deleteUnilinksId. 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/unilinks/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 204 response:

json
{
  "ok": false
}

GET /unilinks/{id}/preview

Preview a stored unilink

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

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

Example 200 response:

json
{
  "ok": false
}

GET /unilinks/{id}/qr

QR code of the short link (format png|svg, size px)

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

ParameterInTypeRequiredDescription
idpathstringyes
formatqueryenum: png, svgno
sizequeryintegerno
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/unilinks/<id>/qr' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "ok": false
}

POST /unilinks/preview

Live preview of a draft unilink: short URL, per-platform redirect, OG, AASA / assetlinks

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

Request body (application/json, required): Ok

FieldTypeFlagsDescription
okboolean
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/unilinks/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ok":false}'

Example 200 response:

json
{
  "ok": false
}