API reference / Operations by tag
conversions
Conversion records: create, search, status changes and bulk import.
17 operations. Base URL https://api.metrixed.com/v1; see authentication, errors and pagination.
Operations
| Method | Path | Summary |
|---|---|---|
| GET | /adjustments | List adjustments |
| POST | /adjustments | Create adjustment |
| POST | /adjustments/{id}/revert | Revert adjustment |
| POST | /advertiser/conversions/search | Advertiser conversions |
| POST | /advertiser/reconciliation | Upload advertiser-reported conversions |
| GET | /conversion-holds | Held conversions (conversion rules with action hold): countdown to release, then-status, outcome |
| POST | /conversion-holds/{id}/release | Release a scheduled or failed hold now (its then-status through ingest, only while the conversion is still on hold; 409 when the hold already ended) |
| GET | /conversion-holds/summary | Hold counts per status and the next release time |
| POST | /conversions | Create conversion (clickless/manual) |
| GET | /conversions/{id} | Get conversion |
| PATCH | /conversions/{id} | Change status/payout |
| GET | /conversions/{id}/hold | The hold of one conversion (404 when it was never held) |
| POST | /conversions/{id}/postbacks/resend | Resend partner postbacks |
| POST | /conversions/bulk | Bulk create/status change |
| GET | /conversions/lookup | Lookup by txn_id/click_id/order_id/email_hash |
| POST | /conversions/search | Search conversions |
| POST | /partner/conversions/search | Partner conversions |
GET /adjustments
List adjustments
Operation getAdjustments. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | |
page_size | query | integer | no | |
sort | query | string | no | field or -field |
include | query | string | no | comma-separated relationships |
filter | query | object (free-form) | no | |
q | query | string | no | free-text search |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LogSearchResult |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/adjustments?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"rows": [
{}
],
"next_cursor": "",
"has_more": false
}
POST /adjustments
Create adjustment
Operation postAdjustments. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): Adjustment
| Field | Type | Flags | Description |
|---|---|---|---|
id | string | read-only | |
display_id | integer | read-only | |
hash_id | string | read-only | |
external_ref | string | ||
custom_fields | object (free-form) | tenant-defined fields | |
version | integer | read-only | |
created_at | string (date-time) | read-only | |
updated_at | string (date-time) | read-only | |
deleted_at | string (date-time) | read-only | |
date | string (date) | ||
offer_id | string | ||
partner_id | string | ||
advertiser_id | string | ||
goal_id | string | ||
clicks | integer | ||
conversions | integer | ||
payout | string | decimal string | |
revenue | string | decimal string | |
sale_amount | string | decimal string | |
currency | string | ||
reason | string | ||
source | string | ||
reverted_at | string (date-time) |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json Adjustment |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/adjustments' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"external_ref":""}'
Example 201 response:
{
"external_ref": ""
}
POST /adjustments/{id}/revert
Revert adjustment
Operation postAdjustmentsIdRevert. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X POST 'https://api.metrixed.com/v1/adjustments/<id>/revert' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
POST /advertiser/conversions/search
Advertiser conversions
Operation postAdvertiserConversionsSearch. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LogSearchRequest
| Field | Type | Flags | Description |
|---|---|---|---|
from | string (date-time) | ||
to | string (date-time) | ||
timezone | string | ||
filters | array of object (free-form) | ||
search | object (free-form) | type, value | |
fields | array of string | ||
limit | integer | ||
cursor | string | ||
sort | object (free-form) |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LogSearchResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/advertiser/conversions/search' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"1970-01-01T00:00:00.000Z","to":"1970-01-01T00:00:00.000Z","timezone":"","filters":[{}]}'
Example 200 response:
{
"rows": [
{}
],
"next_cursor": "",
"has_more": false
}
POST /advertiser/reconciliation
Upload advertiser-reported conversions
Operation postAdvertiserReconciliation. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ConversionBulk
| Field | Type | Flags | Description |
|---|---|---|---|
mode | enum: create, status_change, upload_csv | ||
items | array of ConversionCreate | ||
status_changes | array of object | ||
file_ref | string | ||
fire_postback | string | ||
fetch_ip_details | boolean |
curl -X POST 'https://api.metrixed.com/v1/advertiser/reconciliation' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"mode":"create","items":[{}],"status_changes":[{}],"file_ref":""}'
Example 202 response:
{
"external_ref": ""
}
GET /conversion-holds
Held conversions (conversion rules with action hold): countdown to release, then-status, outcome
Operation getConversionHolds. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
status | query | string | no | |
offer_id | query | string | no | |
partner_id | query | string | no | |
rule_set_id | query | string | no | |
q | query | string | no | |
page | query | integer | no | |
page_size | query | integer | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ConversionHoldList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/conversion-holds?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /conversion-holds/{id}/release
Release a scheduled or failed hold now (its then-status through ingest, only while the conversion is still on hold; 409 when the hold already ended)
Operation postConversionHoldsIdRelease. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ConversionHold |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/conversion-holds/<id>/release' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"conversion_id": "",
"status": "",
"release_at": "1970-01-01T00:00:00.000Z",
"then_status": ""
}
GET /conversion-holds/summary
Hold counts per status and the next release time
Operation getConversionHoldsSummary. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ConversionHoldSummary |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/conversion-holds/summary' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"scheduled": 0,
"released": 0,
"cancelled": 0,
"failed": 0
}
POST /conversions
Create conversion (clickless/manual)
Operation postConversions. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ConversionCreate
| Field | Type | Flags | Description |
|---|---|---|---|
conversion_id | string | ||
click_id | string | ||
impression_id | string | ||
txn_id | string | ||
order_id | string | ||
conversion_type | enum: base, goal, event, upsell, rebill, refund, chargeback, adjustment | ||
goal_id | string | ||
goal_key | string | ||
offer_id | string | ||
partner_id | string | ||
advertiser_id | string | ||
landing_page_id | string | ||
creative_id | string | ||
coupon_code | string | ||
ts | string (date-time) | ||
click_ts | string (date-time) | ||
ctit_seconds | integer | ||
status | enum: pending, approved, rejected, cancelled, extended, flagged, scrubbed | ||
status_reason | string | ||
status_source | string | ||
is_hidden_from_partner | boolean | ||
payout | string | decimal string | |
revenue | string | decimal string | |
sale_amount | string | decimal string | |
currency | string | ||
fx_rate | string | decimal string | |
profit | string | decimal string | |
adv | object (free-form) | adv1..adv10 | |
params | object (free-form) | sub1..sub15, source, ... | |
method | enum: postback, pixel, iframe, js, sdk, s2s, coupon, manual, import | ||
attribution | object (free-form) | model, touch, confidence, is_organic | |
ip | string | ||
click_ip | string | ||
geo | object (free-form) | ||
device | object (free-form) | ||
user_id | string | ||
fraud | object (free-form) | score, reasons, rule_ids | |
is_test | boolean | ||
raw_request | string | ||
history | array of object (free-form) |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json Conversion |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/conversions' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"conversion_id":"","click_id":"","impression_id":"","txn_id":""}'
Example 201 response:
{
"external_ref": ""
}
GET /conversions/{id}
Get conversion
Operation getConversionsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json Conversion |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/conversions/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /conversions/{id}
Change status/payout
Operation patchConversionsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): ConversionPatch
| Field | Type | Flags | Description |
|---|---|---|---|
status | enum: pending, approved, rejected, cancelled, extended, flagged, scrubbed | ||
reason | string | ||
payout | string | decimal string | |
revenue | string | decimal string | |
sale_amount | string | decimal string | |
fire_postback | boolean |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json Conversion |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/conversions/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"status":"pending","reason":"","payout":"","revenue":""}'
Example 200 response:
{
"external_ref": ""
}
GET /conversions/{id}/hold
The hold of one conversion (404 when it was never held)
Operation getConversionsIdHold. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ConversionHold |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/conversions/<id>/hold' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"conversion_id": "",
"status": "",
"release_at": "1970-01-01T00:00:00.000Z",
"then_status": ""
}
POST /conversions/{id}/postbacks/resend
Resend partner postbacks
Operation postConversionsIdPostbacksResend. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X POST 'https://api.metrixed.com/v1/conversions/<id>/postbacks/resend' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
POST /conversions/bulk
Bulk create/status change
Operation postConversionsBulk. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ConversionBulk
| Field | Type | Flags | Description |
|---|---|---|---|
mode | enum: create, status_change, upload_csv | ||
items | array of ConversionCreate | ||
status_changes | array of object | ||
file_ref | string | ||
fire_postback | string | ||
fetch_ip_details | boolean |
curl -X POST 'https://api.metrixed.com/v1/conversions/bulk' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"mode":"create","items":[{}],"status_changes":[{}],"file_ref":""}'
Example 202 response:
{
"external_ref": ""
}
GET /conversions/lookup
Lookup by txn_id/click_id/order_id/email_hash
Operation getConversionsLookup. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
txn_id | query | string | no | |
click_id | query | string | no | |
order_id | query | string | no | |
email_hash | query | string | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json Conversion |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/conversions/lookup' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
POST /conversions/search
Search conversions
Operation postConversionsSearch. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LogSearchRequest
| Field | Type | Flags | Description |
|---|---|---|---|
from | string (date-time) | ||
to | string (date-time) | ||
timezone | string | ||
filters | array of object (free-form) | ||
search | object (free-form) | type, value | |
fields | array of string | ||
limit | integer | ||
cursor | string | ||
sort | object (free-form) |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LogSearchResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/conversions/search' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"1970-01-01T00:00:00.000Z","to":"1970-01-01T00:00:00.000Z","timezone":"","filters":[{}]}'
Example 200 response:
{
"rows": [
{}
],
"next_cursor": "",
"has_more": false
}
POST /partner/conversions/search
Partner conversions
Operation postPartnerConversionsSearch. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LogSearchRequest
| Field | Type | Flags | Description |
|---|---|---|---|
from | string (date-time) | ||
to | string (date-time) | ||
timezone | string | ||
filters | array of object (free-form) | ||
search | object (free-form) | type, value | |
fields | array of string | ||
limit | integer | ||
cursor | string | ||
sort | object (free-form) |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LogSearchResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/partner/conversions/search' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"1970-01-01T00:00:00.000Z","to":"1970-01-01T00:00:00.000Z","timezone":"","filters":[{}]}'
Example 200 response:
{
"rows": [
{}
],
"next_cursor": "",
"has_more": false
}