Skip to content
Docs

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

MethodPathSummary
GET/adjustmentsList adjustments
POST/adjustmentsCreate adjustment
POST/adjustments/{id}/revertRevert adjustment
POST/advertiser/conversions/searchAdvertiser conversions
POST/advertiser/reconciliationUpload advertiser-reported conversions
GET/conversion-holdsHeld conversions (conversion rules with action hold): countdown to release, then-status, outcome
POST/conversion-holds/{id}/releaseRelease 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/summaryHold counts per status and the next release time
POST/conversionsCreate conversion (clickless/manual)
GET/conversions/{id}Get conversion
PATCH/conversions/{id}Change status/payout
GET/conversions/{id}/holdThe hold of one conversion (404 when it was never held)
POST/conversions/{id}/postbacks/resendResend partner postbacks
POST/conversions/bulkBulk create/status change
GET/conversions/lookupLookup by txn_id/click_id/order_id/email_hash
POST/conversions/searchSearch conversions
POST/partner/conversions/searchPartner conversions

GET /adjustments

List adjustments

Operation getAdjustments. 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 LogSearchResult
defaulterrorapplication/json Error
bash
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:

json
{
  "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

FieldTypeFlagsDescription
idstringread-only
display_idintegerread-only
hash_idstringread-only
external_refstring
custom_fieldsobject (free-form)tenant-defined fields
versionintegerread-only
created_atstring (date-time)read-only
updated_atstring (date-time)read-only
deleted_atstring (date-time)read-only
datestring (date)
offer_idstring
partner_idstring
advertiser_idstring
goal_idstring
clicksinteger
conversionsinteger
payoutstringdecimal string
revenuestringdecimal string
sale_amountstringdecimal string
currencystring
reasonstring
sourcestring
reverted_atstring (date-time)
StatusDescriptionBody
201okapplication/json Adjustment
defaulterrorapplication/json Error
bash
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:

json
{
  "external_ref": ""
}

POST /adjustments/{id}/revert

Revert adjustment

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

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

Example 200 response:

json
{
  "ok": false
}

POST /advertiser/conversions/search

Advertiser conversions

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

Request body (application/json, required): LogSearchRequest

FieldTypeFlagsDescription
fromstring (date-time)
tostring (date-time)
timezonestring
filtersarray of object (free-form)
searchobject (free-form)type, value
fieldsarray of string
limitinteger
cursorstring
sortobject (free-form)
StatusDescriptionBody
200okapplication/json LogSearchResult
defaulterrorapplication/json Error
bash
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:

json
{
  "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

FieldTypeFlagsDescription
modeenum: create, status_change, upload_csv
itemsarray of ConversionCreate
status_changesarray of object
file_refstring
fire_postbackstring
fetch_ip_detailsboolean
StatusDescriptionBody
202okapplication/json Job
defaulterrorapplication/json Error
bash
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:

json
{
  "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.

ParameterInTypeRequiredDescription
statusquerystringno
offer_idquerystringno
partner_idquerystringno
rule_set_idquerystringno
qquerystringno
pagequeryintegerno
page_sizequeryintegerno
StatusDescriptionBody
200okapplication/json ConversionHoldList
defaulterrorapplication/json Error
bash
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:

json
{
  "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.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json ConversionHold
defaulterrorapplication/json Error
bash
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:

json
{
  "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.

StatusDescriptionBody
200okapplication/json ConversionHoldSummary
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/conversion-holds/summary' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "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

FieldTypeFlagsDescription
conversion_idstring
click_idstring
impression_idstring
txn_idstring
order_idstring
conversion_typeenum: base, goal, event, upsell, rebill, refund, chargeback, adjustment
goal_idstring
goal_keystring
offer_idstring
partner_idstring
advertiser_idstring
landing_page_idstring
creative_idstring
coupon_codestring
tsstring (date-time)
click_tsstring (date-time)
ctit_secondsinteger
statusenum: pending, approved, rejected, cancelled, extended, flagged, scrubbed
status_reasonstring
status_sourcestring
is_hidden_from_partnerboolean
payoutstringdecimal string
revenuestringdecimal string
sale_amountstringdecimal string
currencystring
fx_ratestringdecimal string
profitstringdecimal string
advobject (free-form)adv1..adv10
paramsobject (free-form)sub1..sub15, source, ...
methodenum: postback, pixel, iframe, js, sdk, s2s, coupon, manual, import
attributionobject (free-form)model, touch, confidence, is_organic
ipstring
click_ipstring
geoobject (free-form)
deviceobject (free-form)
user_idstring
fraudobject (free-form)score, reasons, rule_ids
is_testboolean
raw_requeststring
historyarray of object (free-form)
StatusDescriptionBody
201okapplication/json Conversion
defaulterrorapplication/json Error
bash
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:

json
{
  "external_ref": ""
}

GET /conversions/{id}

Get conversion

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /conversions/{id}

Change status/payout

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): ConversionPatch

FieldTypeFlagsDescription
statusenum: pending, approved, rejected, cancelled, extended, flagged, scrubbed
reasonstring
payoutstringdecimal string
revenuestringdecimal string
sale_amountstringdecimal string
fire_postbackboolean
StatusDescriptionBody
200okapplication/json Conversion
defaulterrorapplication/json Error
bash
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:

json
{
  "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.

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

Example 200 response:

json
{
  "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.

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200okapplication/json Ok
defaulterrorapplication/json Error
bash
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:

json
{
  "ok": false
}

POST /conversions/bulk

Bulk create/status change

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

Request body (application/json, required): ConversionBulk

FieldTypeFlagsDescription
modeenum: create, status_change, upload_csv
itemsarray of ConversionCreate
status_changesarray of object
file_refstring
fire_postbackstring
fetch_ip_detailsboolean
StatusDescriptionBody
202okapplication/json Job
defaulterrorapplication/json Error
bash
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:

json
{
  "external_ref": ""
}

GET /conversions/lookup

Lookup by txn_id/click_id/order_id/email_hash

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

ParameterInTypeRequiredDescription
txn_idquerystringno
click_idquerystringno
order_idquerystringno
email_hashquerystringno
StatusDescriptionBody
200okapplication/json Conversion
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/conversions/lookup' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "external_ref": ""
}

POST /conversions/search

Search conversions

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

Request body (application/json, required): LogSearchRequest

FieldTypeFlagsDescription
fromstring (date-time)
tostring (date-time)
timezonestring
filtersarray of object (free-form)
searchobject (free-form)type, value
fieldsarray of string
limitinteger
cursorstring
sortobject (free-form)
StatusDescriptionBody
200okapplication/json LogSearchResult
defaulterrorapplication/json Error
bash
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:

json
{
  "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

FieldTypeFlagsDescription
fromstring (date-time)
tostring (date-time)
timezonestring
filtersarray of object (free-form)
searchobject (free-form)type, value
fieldsarray of string
limitinteger
cursorstring
sortobject (free-form)
StatusDescriptionBody
200okapplication/json LogSearchResult
defaulterrorapplication/json Error
bash
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:

json
{
  "rows": [
    {}
  ],
  "next_cursor": "",
  "has_more": false
}