Skip to content
Docs

API reference / Operations by tag

offers

Offers: the unit you send traffic to. Includes tracking-link generation, partner access and per-offer settings.

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

Operations

MethodPathSummary
GET/offer-groupsList OfferGroups
POST/offer-groupsCreate OfferGroup
GET/offer-groups/{id}Get OfferGroup
PATCH/offer-groups/{id}Update OfferGroup
DELETE/offer-groups/{id}Delete OfferGroup
POST/offer-groups/bulk/applyBulk edit apply
POST/offer-groups/bulk/previewBulk edit preview
POST/offer-groups/searchSearch OfferGroups (advanced)
GET/offersList Offers
POST/offersCreate Offer
GET/offers/{id}Get Offer
PATCH/offers/{id}Update Offer
DELETE/offers/{id}Delete Offer
POST/offers/{id}/cloneCopy an offer with its goals, payout entries, landing pages and caps; the copy starts paused
GET/offers/{id}/partnersPartners with access/overrides for offer
GET/offers/{id}/timelineOffer timeline
POST/offers/bulk/applyBulk edit apply
POST/offers/bulk/deleteDelete up to 500 offers in one transaction (dry_run: true previews without saving)
POST/offers/bulk/payoutChange the default payout or revenue of up to 500 offers: set an amount or scale by a percentage (dry_run previews every change)
POST/offers/bulk/previewBulk edit preview
POST/offers/searchSearch Offers (advanced)
POST/offers/wizardCreate an offer with its base goal and default payout in one transaction
GET/product-feedsProduct feeds shared with partners (newest first)
POST/product-feedsCreate a product feed from an uploaded CSV (validated: header row, unique columns, at most 200,000 rows / 20 MB)
GET/product-feeds/{id}One product feed
PATCH/product-feeds/{id}Update a product feed (file_ref replaces the file)
DELETE/product-feeds/{id}Delete a product feed
GET/product-feeds/{id}/downloadDownload the feed's original CSV
GET/scheduled-actionsList ScheduledActions
POST/scheduled-actionsCreate ScheduledAction
GET/scheduled-actions/{id}Get ScheduledAction
PATCH/scheduled-actions/{id}Update ScheduledAction
DELETE/scheduled-actions/{id}Delete ScheduledAction
POST/scheduled-actions/{id}/cancelCancel a scheduled action
POST/scheduled-actions/bulk/applyBulk edit apply
POST/scheduled-actions/bulk/previewBulk edit preview
POST/scheduled-actions/searchSearch ScheduledActions (advanced)

GET /offer-groups

List OfferGroups

Operation getOfferGroups. 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 OfferGroupList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/offer-groups?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /offer-groups

Create OfferGroup

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

Request body (application/json, required): OfferGroupCreate

FieldTypeFlagsDescription
namestringrequired
statusstring
advertiser_idstring
routing_typeenum: priority, weight
settingsobject (free-form)
StatusDescriptionBody
201okapplication/json OfferGroup
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offer-groups' \
  -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 /offer-groups/{id}

Get OfferGroup

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /offer-groups/{id}

Update OfferGroup

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): OfferGroupUpdate

FieldTypeFlagsDescription
namestring
statusstring
advertiser_idstring
routing_typeenum: priority, weight
settingsobject (free-form)
StatusDescriptionBody
200okapplication/json OfferGroup
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/offer-groups/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","status":"","advertiser_id":"","routing_type":"priority"}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /offer-groups/{id}

Delete OfferGroup

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

Example 204 response:

json
{
  "ok": false
}

POST /offer-groups/bulk/apply

Bulk edit apply

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

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offer-groups/bulk/apply' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /offer-groups/bulk/preview

Bulk edit preview

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

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offer-groups/bulk/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /offer-groups/search

Search OfferGroups (advanced)

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

Request body (application/json, required): SearchRequest

FieldTypeFlagsDescription
filtersarray of object
searchstring
sortarray of object (free-form)
pageinteger
page_sizeinteger
includearray of string
StatusDescriptionBody
200okapplication/json OfferGroupList
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offer-groups/search' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"filters":[{}],"search":"","sort":[{}],"page":0}'

Example 200 response:

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

GET /offers

List Offers

Operation getOffers. 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 OfferList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/offers?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /offers

Create Offer

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

Request body (application/json, required): OfferCreate

FieldTypeFlagsDescription
namestringrequired
advertiser_idstringrequired
offer_group_idstring
description_htmlstring
is_description_plain_textboolean
internal_notesstring
thumbnail_urlstring
preview_urlstring
category_idsarray of string
tagsarray of string
channel_idsarray of string
verticalenum: web, mobile_app, igaming, lead_gen, ecommerce, call
app_identifierstring
app_namestring
eridstring
project_idstring
external_offer_idstring
statusenum: active, pending, paused, disabled, expired, deleted, archived
inactive_reasonstring
visibilityenum: public, require_approval, private
start_atstring (date-time)
end_atstring (date-time)
expire_actionenum: pause, fallback
scheduleobject (free-form)timezone, start_hour, end_hour, day_parting[{day_of_week,start_hour,start_minute,end_hour,end_minute}]
currencystring
commission_modelenum: cpa, cpi, cpl, cps, cpm, cpc, cpe, revshare, hybrid, kpi
payout_calc_paramstring
default_goal_namestring
destination_urlstringrequired
impression_urlstring
server_side_urlstring
view_through_destination_urlstring
fallback_urlstring
fallback_offer_idstring
is_allow_deep_linkboolean
deep_link_allowed_domainsarray of string
tracking_domain_idstring
conversion_tracking_domain_idstring
is_use_secure_linkboolean
redirect_modeenum: http302, http302_hide_referrer, http200_js, http200_js_hide_referrer, meta_refresh_single, meta_refresh_double, seo_friendly_301, direct_link, interstitial, app_store_smart
max_hopsinteger
allowed_tracking_link_formatenum: numeric_id, unique_id, both
conversion_methodenum: server_postback, image_pixel, iframe_pixel, javascript_sdk, cookie_based, gtm, shopify, s2s_event_api, coupon_code, call
is_whitelist_check_enabledboolean
session_definitionenum: cookie, ip, ip_user_agent, gaid, idfa, click_id_only
session_duration_hoursinteger
unique_click_session_hoursinteger
duplicate_click_actionenum: count, block, fail_traffic
already_converted_actionenum: allow, block, fail_traffic
attribution_methodenum: last_touch, first_touch, linear, position_based, time_decay
attribution_priorityarray of enum: click_id, cookie, fingerprint, email, couponWP-80: matching order for this offer's conversions; empty = default ladder (click_id, cookie, coupon; fingerprint and email off)
sku_payoutsarray of objectWP-80: per-SKU payout / revenue per line item (flat per unit or percent of the line amount); a conversion carrying SKU lines is priced as the sum of its lines
ctit_min_secondsinteger
ctit_max_hoursinteger
is_view_through_enabledboolean
view_through_lifespan_minutesinteger
view_through_min_secondsinteger
allow_impressionsboolean
email_attributionobject (free-form)enabled, method, window_minutes, window_type
track_multi_conversionsboolean
is_allow_duplicate_conversionboolean
is_must_approve_conversionboolean
default_conversion_statusenum: approved, pending
allow_spillover_conversionsboolean
cancel_fallback_conversionsboolean
cancel_blocked_postback_conversionsboolean
scrubobject (free-form)enabled, percentage, status pending|rejected
is_caps_enabledboolean
capsobject (free-form)daily/weekly/monthly/global x conversion/payout/revenue/click, is_soft_cap, timezone
partner_controlsobject (free-form)blocked_partner_ids, allowed_partner_ids, subids_blocked, subids_allowed, blacklist_postback_partners, whitelist_postback_partners, source_names, application_questionnaire_id
email_complianceobject (free-form)
integrationsobject (free-form)
termsobject (free-form)text, is_explicit, is_force
kpi_requirementsarray of object (free-form)
required_tracking_parametersarray of object (free-form)
localized_descriptionsobject (free-form)
flowarray of object (free-form)
account_manager_idstring
sales_manager_idstring
StatusDescriptionBody
201okapplication/json Offer
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","advertiser_id":"","destination_url":""}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /offers/{id}

Get Offer

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /offers/{id}

Update Offer

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): OfferUpdate

FieldTypeFlagsDescription
namestring
advertiser_idstring
offer_group_idstring
description_htmlstring
is_description_plain_textboolean
internal_notesstring
thumbnail_urlstring
preview_urlstring
category_idsarray of string
tagsarray of string
channel_idsarray of string
verticalenum: web, mobile_app, igaming, lead_gen, ecommerce, call
app_identifierstring
app_namestring
eridstring
project_idstring
external_offer_idstring
statusenum: active, pending, paused, disabled, expired, deleted, archived
inactive_reasonstring
visibilityenum: public, require_approval, private
start_atstring (date-time)
end_atstring (date-time)
expire_actionenum: pause, fallback
scheduleobject (free-form)timezone, start_hour, end_hour, day_parting[{day_of_week,start_hour,start_minute,end_hour,end_minute}]
currencystring
commission_modelenum: cpa, cpi, cpl, cps, cpm, cpc, cpe, revshare, hybrid, kpi
payout_calc_paramstring
default_goal_namestring
destination_urlstring
impression_urlstring
server_side_urlstring
view_through_destination_urlstring
fallback_urlstring
fallback_offer_idstring
is_allow_deep_linkboolean
deep_link_allowed_domainsarray of string
tracking_domain_idstring
conversion_tracking_domain_idstring
is_use_secure_linkboolean
redirect_modeenum: http302, http302_hide_referrer, http200_js, http200_js_hide_referrer, meta_refresh_single, meta_refresh_double, seo_friendly_301, direct_link, interstitial, app_store_smart
max_hopsinteger
allowed_tracking_link_formatenum: numeric_id, unique_id, both
conversion_methodenum: server_postback, image_pixel, iframe_pixel, javascript_sdk, cookie_based, gtm, shopify, s2s_event_api, coupon_code, call
is_whitelist_check_enabledboolean
session_definitionenum: cookie, ip, ip_user_agent, gaid, idfa, click_id_only
session_duration_hoursinteger
unique_click_session_hoursinteger
duplicate_click_actionenum: count, block, fail_traffic
already_converted_actionenum: allow, block, fail_traffic
attribution_methodenum: last_touch, first_touch, linear, position_based, time_decay
attribution_priorityarray of enum: click_id, cookie, fingerprint, email, couponWP-80: matching order for this offer's conversions; empty = default ladder (click_id, cookie, coupon; fingerprint and email off)
sku_payoutsarray of objectWP-80: per-SKU payout / revenue per line item (flat per unit or percent of the line amount); a conversion carrying SKU lines is priced as the sum of its lines
ctit_min_secondsinteger
ctit_max_hoursinteger
is_view_through_enabledboolean
view_through_lifespan_minutesinteger
view_through_min_secondsinteger
allow_impressionsboolean
email_attributionobject (free-form)enabled, method, window_minutes, window_type
track_multi_conversionsboolean
is_allow_duplicate_conversionboolean
is_must_approve_conversionboolean
default_conversion_statusenum: approved, pending
allow_spillover_conversionsboolean
cancel_fallback_conversionsboolean
cancel_blocked_postback_conversionsboolean
scrubobject (free-form)enabled, percentage, status pending|rejected
is_caps_enabledboolean
capsobject (free-form)daily/weekly/monthly/global x conversion/payout/revenue/click, is_soft_cap, timezone
partner_controlsobject (free-form)blocked_partner_ids, allowed_partner_ids, subids_blocked, subids_allowed, blacklist_postback_partners, whitelist_postback_partners, source_names, application_questionnaire_id
email_complianceobject (free-form)
integrationsobject (free-form)
termsobject (free-form)text, is_explicit, is_force
kpi_requirementsarray of object (free-form)
required_tracking_parametersarray of object (free-form)
localized_descriptionsobject (free-form)
flowarray of object (free-form)
account_manager_idstring
sales_manager_idstring
StatusDescriptionBody
200okapplication/json Offer
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/offers/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","advertiser_id":"","offer_group_id":"","description_html":""}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /offers/{id}

Delete Offer

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

Example 204 response:

json
{
  "ok": false
}

POST /offers/{id}/clone

Copy an offer with its goals, payout entries, landing pages and caps; the copy starts paused

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): OfferCloneRequest

StatusDescriptionBody
201okapplication/json OfferCloneResult
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers/<id>/clone' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{}'

Example 201 response:

json
{}

GET /offers/{id}/partners

Partners with access/overrides for offer

Operation getOffersIdPartners. 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 PartnerOfferSettingList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/offers/<id>/partners?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

GET /offers/{id}/timeline

Offer timeline

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

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

Example 200 response:

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

POST /offers/bulk/apply

Bulk edit apply

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

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers/bulk/apply' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /offers/bulk/delete

Delete up to 500 offers in one transaction (dry_run: true previews without saving)

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

Request body (application/json, required): BulkDeleteRequest

StatusDescriptionBody
200okapplication/json BulkActionResult
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers/bulk/delete' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{}'

Example 200 response:

json
{}

POST /offers/bulk/payout

Change the default payout or revenue of up to 500 offers: set an amount or scale by a percentage (dry_run previews every change)

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

Request body (application/json, required): BulkPayoutRequest

StatusDescriptionBody
200okapplication/json BulkActionResult
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers/bulk/payout' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{}'

Example 200 response:

json
{}

POST /offers/bulk/preview

Bulk edit preview

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

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers/bulk/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /offers/search

Search Offers (advanced)

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

Request body (application/json, required): SearchRequest

FieldTypeFlagsDescription
filtersarray of object
searchstring
sortarray of object (free-form)
pageinteger
page_sizeinteger
includearray of string
StatusDescriptionBody
200okapplication/json OfferList
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers/search' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"filters":[{}],"search":"","sort":[{}],"page":0}'

Example 200 response:

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

POST /offers/wizard

Create an offer with its base goal and default payout in one transaction

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

Request body (application/json, required): OfferWizardRequest

StatusDescriptionBody
201okapplication/json OfferWizardResult
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/offers/wizard' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{}'

Example 201 response:

json
{}

GET /product-feeds

Product feeds shared with partners (newest first) Product feeds shared with partners (newest first). WP-67: naturally small; returns at most 500 rows and capped: true when that cap is hit.

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

StatusDescriptionBody
200okapplication/json ProductFeedList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/product-feeds' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

json
{
  "data": [
    {}
  ]
}

POST /product-feeds

Create a product feed from an uploaded CSV (validated: header row, unique columns, at most 200,000 rows / 20 MB)

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

Request body (application/json, required): ProductFeedWrite

FieldTypeFlagsDescription
namestring
descriptionstring
advertiser_idstring
offer_idstring
visibilityenum: all, approved
statusenum: active, paused
file_refstringid from POST /files/upload (CSV with a header row; a url/product_url/link column enables partner tracking links)
StatusDescriptionBody
201okapplication/json ProductFeed
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/product-feeds' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","description":"","advertiser_id":"","offer_id":""}'

Example 201 response:

json
{
  "id": "",
  "name": "",
  "description": "",
  "advertiser_id": ""
}

GET /product-feeds/{id}

One product feed

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

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

Example 200 response:

json
{
  "id": "",
  "name": "",
  "description": "",
  "advertiser_id": ""
}

PATCH /product-feeds/{id}

Update a product feed (file_ref replaces the file)

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): ProductFeedWrite

FieldTypeFlagsDescription
namestring
descriptionstring
advertiser_idstring
offer_idstring
visibilityenum: all, approved
statusenum: active, paused
file_refstringid from POST /files/upload (CSV with a header row; a url/product_url/link column enables partner tracking links)
StatusDescriptionBody
200okapplication/json ProductFeed
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/product-feeds/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","description":"","advertiser_id":"","offer_id":""}'

Example 200 response:

json
{
  "id": "",
  "name": "",
  "description": "",
  "advertiser_id": ""
}

DELETE /product-feeds/{id}

Delete a product feed

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

Example 204 response:

json
{
  "ok": false
}

GET /product-feeds/{id}/download

Download the feed's original CSV

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

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

Example 200 response:

json
{}

GET /scheduled-actions

List ScheduledActions

Operation getScheduledActions. 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 ScheduledActionList
defaulterrorapplication/json Error
bash
curl 'https://api.metrixed.com/v1/scheduled-actions?page=1&page_size=50' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json'

Example 200 response:

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

POST /scheduled-actions

Create ScheduledAction

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

Request body (application/json, required): ScheduledActionCreate

FieldTypeFlagsDescription
namestring
entity_typeenum: offer, partner, advertiser, smartlink, cap, payout_entry, partner_offer_settingrequired
entity_idstringrequired
actionenum: set_status, set_cap, set_payout, set_accessrequired
paramsobject (free-form)set_status {status}; set_cap {hourly,daily,weekly,monthly,lifetime,is_soft_cap,status}; set_payout {payout_amount,revenue_amount}; set_access {access_status}
run_atstring (date-time)required
StatusDescriptionBody
201okapplication/json ScheduledAction
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/scheduled-actions' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"entity_type":"offer","entity_id":"","action":"set_status","run_at":"1970-01-01T00:00:00.000Z"}'

Example 201 response:

json
{
  "external_ref": ""
}

GET /scheduled-actions/{id}

Get ScheduledAction

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

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

Example 200 response:

json
{
  "external_ref": ""
}

PATCH /scheduled-actions/{id}

Update ScheduledAction

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

ParameterInTypeRequiredDescription
idpathstringyes

Request body (application/json, required): ScheduledActionUpdate

FieldTypeFlagsDescription
namestring
entity_typeenum: offer, partner, advertiser, smartlink, cap, payout_entry, partner_offer_setting
entity_idstring
actionenum: set_status, set_cap, set_payout, set_access
paramsobject (free-form)set_status {status}; set_cap {hourly,daily,weekly,monthly,lifetime,is_soft_cap,status}; set_payout {payout_amount,revenue_amount}; set_access {access_status}
run_atstring (date-time)
StatusDescriptionBody
200okapplication/json ScheduledAction
defaulterrorapplication/json Error
bash
curl -X PATCH 'https://api.metrixed.com/v1/scheduled-actions/<id>' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"name":"","entity_type":"offer","entity_id":"","action":"set_status"}'

Example 200 response:

json
{
  "external_ref": ""
}

DELETE /scheduled-actions/{id}

Delete ScheduledAction

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

Example 204 response:

json
{
  "ok": false
}

POST /scheduled-actions/{id}/cancel

Cancel a scheduled action

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

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

Example 200 response:

json
{
  "external_ref": ""
}

POST /scheduled-actions/bulk/apply

Bulk edit apply

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

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/scheduled-actions/bulk/apply' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /scheduled-actions/bulk/preview

Bulk edit preview

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

Request body (application/json, required): BulkPatch

FieldTypeFlagsDescription
idsarray of stringrequired
patchesarray of objectrequired
StatusDescriptionBody
200okapplication/json BulkPreview
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/scheduled-actions/bulk/preview' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"ids":[""],"patches":[{"field":"","value":{}}]}'

Example 200 response:

json
{
  "affected": 0,
  "changes": [
    {}
  ],
  "warnings": [
    ""
  ],
  "token": ""
}

POST /scheduled-actions/search

Search ScheduledActions (advanced)

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

Request body (application/json, required): SearchRequest

FieldTypeFlagsDescription
filtersarray of object
searchstring
sortarray of object (free-form)
pageinteger
page_sizeinteger
includearray of string
StatusDescriptionBody
200okapplication/json ScheduledActionList
defaulterrorapplication/json Error
bash
curl -X POST 'https://api.metrixed.com/v1/scheduled-actions/search' \
  -H "Authorization: Bearer $DT_API_KEY" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data-raw '{"filters":[{}],"search":"","sort":[{}],"page":0}'

Example 200 response:

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