API reference / Operations by tag
leads
Lead distribution: verticals, forms, buyers, ping/post routing, sales and returns.
53 operations. Base URL https://api.metrixed.com/v1; see authentication, errors and pagination.
Operations
| Method | Path | Summary |
|---|---|---|
| POST | /advertiser/lead-returns | Buyer portal: request a return |
| GET | /advertiser/lead-sales | Buyer portal: sales charged to the advertiser |
| GET | /lead-buyers | List LeadBuyers |
| POST | /lead-buyers | Create LeadBuyer |
| GET | /lead-buyers/{id} | Get LeadBuyer |
| PATCH | /lead-buyers/{id} | Update LeadBuyer |
| DELETE | /lead-buyers/{id} | Delete LeadBuyer |
| GET | /lead-campaigns | List LeadCampaigns |
| POST | /lead-campaigns | Create LeadCampaign |
| GET | /lead-campaigns/{id} | Get LeadCampaign |
| PATCH | /lead-campaigns/{id} | Update LeadCampaign |
| DELETE | /lead-campaigns/{id} | Delete LeadCampaign |
| POST | /lead-campaigns/{id}/test-send | Mapping builder: render (and optionally send) a campaign ping/post for sample fields |
| GET | /lead-delivery/templates | One-click delivery/response mapping templates |
| GET | /lead-fields | List LeadFields |
| POST | /lead-fields | Create LeadField |
| GET | /lead-fields/{id} | Get LeadField |
| PATCH | /lead-fields/{id} | Update LeadField |
| DELETE | /lead-fields/{id} | Delete LeadField |
| GET | /lead-forms | List LeadForms |
| POST | /lead-forms | Create LeadForm |
| GET | /lead-forms/{id} | Get LeadForm |
| PATCH | /lead-forms/{id} | Update LeadForm |
| DELETE | /lead-forms/{id} | Delete LeadForm |
| GET | /lead-return-reasons | Closed set of return reason codes |
| GET | /lead-returns | List LeadReturns |
| GET | /lead-returns/{id} | Get LeadReturn |
| POST | /lead-returns/{id}/approve | Approve a return: sale marked returned, buyer charge and supplier payout reversed in the ledger |
| POST | /lead-returns/{id}/reject | Reject a return request |
| GET | /lead-sales | List LeadSales |
| GET | /lead-sales/{id} | Get LeadSale |
| POST | /lead-sales/{id}/returns | Record a buyer return request (inside the return window) |
| GET | /lead-supplier-terms | List LeadSupplierTerms |
| POST | /lead-supplier-terms | Create LeadSupplierTerm |
| GET | /lead-supplier-terms/{id} | Get LeadSupplierTerm |
| PATCH | /lead-supplier-terms/{id} | Update LeadSupplierTerm |
| DELETE | /lead-supplier-terms/{id} | Delete LeadSupplierTerm |
| GET | /lead-verticals | List LeadVerticals |
| POST | /lead-verticals | Create LeadVertical |
| GET | /lead-verticals/{id} | Get LeadVertical |
| PATCH | /lead-verticals/{id} | Update LeadVertical |
| DELETE | /lead-verticals/{id} | Delete LeadVertical |
| GET | /leads | Lead log (filter[status|vertical_id|partner_id]) |
| POST | /leads | Submit a lead (supplier API key): validates, stores, runs ping/post, returns the supplier view |
| GET | /leads/{id} | Lead with the ping/post timeline, sales and returns |
| POST | /leads/report | Lead report by vertical/supplier/buyer/campaign/day: leads, sold %, revenue, cost, margin, return rate (reporting service) |
| GET | /partner/lead-verticals | Supplier portal: active verticals with their field schema |
| GET | /partner/leads | Supplier portal: own leads with masked PII and payout |
| GET | /partner/leads/summary | Supplier portal: leads / sold / rejected / returned / payout for the last N days |
| GET | /public/lead-forms/{slug} | Public: form schema (no auth) |
| GET | /public/lead-forms/{slug}/embed.js | Public: embeddable form script |
| GET | /public/lead-forms/{slug}/page | Public: hosted form page |
| POST | /public/lead-forms/{slug}/submit | Public: submit a hosted/embedded form (JSON or urlencoded; CORS per allowed_origins) |
POST /advertiser/lead-returns
Buyer portal: request a return
Operation postAdvertiserLeadReturns. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadReturnRequest
| Field | Type | Flags | Description |
|---|---|---|---|
reason_code | enum: invalid_contact, duplicate, unreachable, not_interested, out_of_area, fraud, compliance, other | required | |
reason | string |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json LeadReturn |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/advertiser/lead-returns' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"reason_code":"invalid_contact"}'
Example 201 response:
{
"external_ref": ""
}
GET /advertiser/lead-sales
Buyer portal: sales charged to the advertiser Buyer portal: sales charged to the advertiser. WP-71: paged with page/page_size (page.total over the whole match); unpaged returns the previous bound with total and capped/cap.
Operation getAdvertiserLeadSales. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | string | no | |
page_size | query | string | no |
curl 'https://api.metrixed.com/v1/advertiser/lead-sales?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /lead-buyers
List LeadBuyers
Operation getLeadBuyers. 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 LeadBuyerList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-buyers?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /lead-buyers
Create LeadBuyer
Operation postLeadBuyers. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadBuyerCreate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
advertiser_id | string | ||
status | enum: active, paused, archived | ||
contact_email | string | ||
notes | string | ||
currency | string |
curl -X POST 'https://api.metrixed.com/v1/lead-buyers' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"name":""}'
Example 201 response:
{
"external_ref": ""
}
GET /lead-buyers/{id}
Get LeadBuyer
Operation getLeadBuyersId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl 'https://api.metrixed.com/v1/lead-buyers/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /lead-buyers/{id}
Update LeadBuyer
Operation patchLeadBuyersId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadBuyerUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | ||
advertiser_id | string | ||
status | enum: active, paused, archived | ||
contact_email | string | ||
notes | string | ||
currency | string |
curl -X PATCH 'https://api.metrixed.com/v1/lead-buyers/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"name":"","advertiser_id":"","status":"active","contact_email":""}'
Example 200 response:
{
"external_ref": ""
}
DELETE /lead-buyers/{id}
Delete LeadBuyer
Operation deleteLeadBuyersId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/lead-buyers/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /lead-campaigns
List LeadCampaigns
Operation getLeadCampaigns. 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 LeadCampaignList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-campaigns?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /lead-campaigns
Create LeadCampaign
Operation postLeadCampaigns. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadCampaignCreate
| Field | Type | Flags | Description |
|---|---|---|---|
buyer_id | string | required | |
vertical_id | string | required | |
name | string | required | |
status | enum: draft, active, paused, archived | ||
priority | integer | ||
weight | integer | ||
filters | array of object (free-form) | ||
filter_match | enum: all, any | ||
caps | object (free-form) | hourly, daily | |
schedule | object (free-form) | timezone, windows[{days[1-7],from,to}] | |
pricing_type | enum: fixed, bid | ||
price | string | decimal string | |
bid_floor | string | decimal string | |
bid_ceiling | string | decimal string | |
accepts_shared | boolean | ||
ping_enabled | boolean | ||
ping_delivery | object (free-form) | delivery spec: kind, url, method, format json|form|xml, headers, auth, map[{to,from,value,template,transform,type,required}], body, root, email | |
ping_response | object (free-form) | response spec: accept/reject{status[],path,equals[],regex,contains}, price_path, reason_path, ref_path | |
delivery | object (free-form) | delivery spec (see ping_delivery) | |
post_response | object (free-form) | response spec (see ping_response) | |
timeout_ms | integer | ||
return_auto_approve_hours | integer | ||
currency | string |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json LeadCampaign |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/lead-campaigns' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"buyer_id":"","vertical_id":"","name":""}'
Example 201 response:
{
"external_ref": ""
}
GET /lead-campaigns/{id}
Get LeadCampaign
Operation getLeadCampaignsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadCampaign |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-campaigns/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /lead-campaigns/{id}
Update LeadCampaign
Operation patchLeadCampaignsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadCampaignUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
buyer_id | string | ||
vertical_id | string | ||
name | string | ||
status | enum: draft, active, paused, archived | ||
priority | integer | ||
weight | integer | ||
filters | array of object (free-form) | ||
filter_match | enum: all, any | ||
caps | object (free-form) | hourly, daily | |
schedule | object (free-form) | timezone, windows[{days[1-7],from,to}] | |
pricing_type | enum: fixed, bid | ||
price | string | decimal string | |
bid_floor | string | decimal string | |
bid_ceiling | string | decimal string | |
accepts_shared | boolean | ||
ping_enabled | boolean | ||
ping_delivery | object (free-form) | delivery spec: kind, url, method, format json|form|xml, headers, auth, map[{to,from,value,template,transform,type,required}], body, root, email | |
ping_response | object (free-form) | response spec: accept/reject{status[],path,equals[],regex,contains}, price_path, reason_path, ref_path | |
delivery | object (free-form) | delivery spec (see ping_delivery) | |
post_response | object (free-form) | response spec (see ping_response) | |
timeout_ms | integer | ||
return_auto_approve_hours | integer | ||
currency | string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadCampaign |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/lead-campaigns/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"buyer_id":"","vertical_id":"","name":"","status":"draft"}'
Example 200 response:
{
"external_ref": ""
}
DELETE /lead-campaigns/{id}
Delete LeadCampaign
Operation deleteLeadCampaignsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/lead-campaigns/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
POST /lead-campaigns/{id}/test-send
Mapping builder: render (and optionally send) a campaign ping/post for sample fields
Operation postLeadCampaignsIdTestSend. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadTestSend
| Field | Type | Flags | Description |
|---|---|---|---|
phase | enum: ping, post | ||
fields | object (free-form) | sample values; synthesised from the schema when omitted | |
price | string | decimal string | |
send | boolean | actually perform the call (SSRF-guarded) |
curl -X POST 'https://api.metrixed.com/v1/lead-campaigns/<id>/test-send' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"phase":"ping","fields":{},"price":"","send":false}'
Example 200 response:
{
"ok": false
}
GET /lead-delivery/templates
One-click delivery/response mapping templates
Operation getLeadDeliveryTemplates. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/lead-delivery/templates' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /lead-fields
List LeadFields
Operation getLeadFields. 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 LeadFieldList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-fields?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /lead-fields
Create LeadField
Operation postLeadFields. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadFieldCreate
| Field | Type | Flags | Description |
|---|---|---|---|
vertical_id | string | required | |
key | string | required | |
label | string | ||
type | enum: text, email, phone, zip, number, decimal, date, select, boolean, state, country, url, ... | ||
required | boolean | ||
pii | boolean | ||
consent | boolean | TCPA/consent field (boolean) | |
send_in_ping | boolean | ||
validation | object (free-form) | min, max, min_length, max_length, regex, options[] | |
default_value | string | ||
help | string | ||
position | integer |
curl -X POST 'https://api.metrixed.com/v1/lead-fields' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"vertical_id":"","key":""}'
Example 201 response:
{
"external_ref": ""
}
GET /lead-fields/{id}
Get LeadField
Operation getLeadFieldsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl 'https://api.metrixed.com/v1/lead-fields/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /lead-fields/{id}
Update LeadField
Operation patchLeadFieldsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadFieldUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
vertical_id | string | ||
key | string | ||
label | string | ||
type | enum: text, email, phone, zip, number, decimal, date, select, boolean, state, country, url, ... | ||
required | boolean | ||
pii | boolean | ||
consent | boolean | TCPA/consent field (boolean) | |
send_in_ping | boolean | ||
validation | object (free-form) | min, max, min_length, max_length, regex, options[] | |
default_value | string | ||
help | string | ||
position | integer |
curl -X PATCH 'https://api.metrixed.com/v1/lead-fields/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"vertical_id":"","key":"","label":"","type":"text"}'
Example 200 response:
{
"external_ref": ""
}
DELETE /lead-fields/{id}
Delete LeadField
Operation deleteLeadFieldsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/lead-fields/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /lead-forms
List LeadForms
Operation getLeadForms. 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 LeadFormList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-forms?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /lead-forms
Create LeadForm
Operation postLeadForms. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadFormCreate
| Field | Type | Flags | Description |
|---|---|---|---|
vertical_id | string | required | |
partner_id | string | ||
name | string | required | |
slug | string | ||
status | enum: active, paused, archived | ||
fields | array of string | ||
title | string | ||
consent_text | string | ||
success_message | string | ||
redirect_url | string | ||
theme | object (free-form) | ||
allowed_origins | array of string |
curl -X POST 'https://api.metrixed.com/v1/lead-forms' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"vertical_id":"","name":""}'
Example 201 response:
{
"external_ref": ""
}
GET /lead-forms/{id}
Get LeadForm
Operation getLeadFormsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl 'https://api.metrixed.com/v1/lead-forms/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /lead-forms/{id}
Update LeadForm
Operation patchLeadFormsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadFormUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
vertical_id | string | ||
partner_id | string | ||
name | string | ||
slug | string | ||
status | enum: active, paused, archived | ||
fields | array of string | ||
title | string | ||
consent_text | string | ||
success_message | string | ||
redirect_url | string | ||
theme | object (free-form) | ||
allowed_origins | array of string |
curl -X PATCH 'https://api.metrixed.com/v1/lead-forms/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"vertical_id":"","partner_id":"","name":"","slug":""}'
Example 200 response:
{
"external_ref": ""
}
DELETE /lead-forms/{id}
Delete LeadForm
Operation deleteLeadFormsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/lead-forms/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /lead-return-reasons
Closed set of return reason codes
Operation getLeadReturnReasons. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/lead-return-reasons' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /lead-returns
List LeadReturns
Operation getLeadReturns. 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 LeadReturnList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-returns?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
GET /lead-returns/{id}
Get LeadReturn
Operation getLeadReturnsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadReturn |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-returns/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
POST /lead-returns/{id}/approve
Approve a return: sale marked returned, buyer charge and supplier payout reversed in the ledger
Operation postLeadReturnsIdApprove. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadReturn |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/lead-returns/<id>/approve' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
POST /lead-returns/{id}/reject
Reject a return request
Operation postLeadReturnsIdReject. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadReturn |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/lead-returns/<id>/reject' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
GET /lead-sales
List LeadSales
Operation getLeadSales. 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 LeadSaleList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-sales?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
GET /lead-sales/{id}
Get LeadSale
Operation getLeadSalesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl 'https://api.metrixed.com/v1/lead-sales/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
POST /lead-sales/{id}/returns
Record a buyer return request (inside the return window)
Operation postLeadSalesIdReturns. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadReturnRequest
| Field | Type | Flags | Description |
|---|---|---|---|
reason_code | enum: invalid_contact, duplicate, unreachable, not_interested, out_of_area, fraud, compliance, other | required | |
reason | string |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json LeadReturn |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/lead-sales/<id>/returns' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"reason_code":"invalid_contact"}'
Example 201 response:
{
"external_ref": ""
}
GET /lead-supplier-terms
List LeadSupplierTerms
Operation getLeadSupplierTerms. 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 LeadSupplierTermList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-supplier-terms?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /lead-supplier-terms
Create LeadSupplierTerm
Operation postLeadSupplierTerms. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadSupplierTermCreate
| Field | Type | Flags | Description |
|---|---|---|---|
partner_id | string | required | |
vertical_id | string | ||
payout_type | enum: percent, fixed | ||
amount | string | decimal string | |
min_price | string | decimal string | |
status | enum: active, paused |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json LeadSupplierTerm |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/lead-supplier-terms' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"partner_id":""}'
Example 201 response:
{
"external_ref": ""
}
GET /lead-supplier-terms/{id}
Get LeadSupplierTerm
Operation getLeadSupplierTermsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadSupplierTerm |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-supplier-terms/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /lead-supplier-terms/{id}
Update LeadSupplierTerm
Operation patchLeadSupplierTermsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadSupplierTermUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
partner_id | string | ||
vertical_id | string | ||
payout_type | enum: percent, fixed | ||
amount | string | decimal string | |
min_price | string | decimal string | |
status | enum: active, paused |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadSupplierTerm |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/lead-supplier-terms/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"partner_id":"","vertical_id":"","payout_type":"percent","amount":""}'
Example 200 response:
{
"external_ref": ""
}
DELETE /lead-supplier-terms/{id}
Delete LeadSupplierTerm
Operation deleteLeadSupplierTermsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/lead-supplier-terms/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /lead-verticals
List LeadVerticals
Operation getLeadVerticals. 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 LeadVerticalList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-verticals?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /lead-verticals
Create LeadVertical
Operation postLeadVerticals. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadVerticalCreate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
slug | string | ||
description | string | ||
status | enum: active, paused, archived | ||
mode | enum: auction, priority, round_robin, waterfall | ||
max_sales | integer | ||
ping_timeout_ms | integer | ||
post_timeout_ms | integer | ||
return_window_hours | integer | ||
dedupe_field | string | ||
dedupe_days | integer | ||
require_consent | boolean |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json LeadVertical |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/lead-verticals' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"name":""}'
Example 201 response:
{
"external_ref": ""
}
GET /lead-verticals/{id}
Get LeadVertical
Operation getLeadVerticalsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadVertical |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/lead-verticals/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /lead-verticals/{id}
Update LeadVertical
Operation patchLeadVerticalsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): LeadVerticalUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | ||
slug | string | ||
description | string | ||
status | enum: active, paused, archived | ||
mode | enum: auction, priority, round_robin, waterfall | ||
max_sales | integer | ||
ping_timeout_ms | integer | ||
post_timeout_ms | integer | ||
return_window_hours | integer | ||
dedupe_field | string | ||
dedupe_days | integer | ||
require_consent | boolean |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LeadVertical |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/lead-verticals/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"name":"","slug":"","description":"","status":"active"}'
Example 200 response:
{
"external_ref": ""
}
DELETE /lead-verticals/{id}
Delete LeadVertical
Operation deleteLeadVerticalsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/lead-verticals/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /leads
Lead log (filter[status|vertical_id|partner_id])
Operation getLeads. 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 |
curl 'https://api.metrixed.com/v1/leads?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /leads
Submit a lead (supplier API key): validates, stores, runs ping/post, returns the supplier view
Operation postLeads. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): LeadSubmit
| Field | Type | Flags | Description |
|---|---|---|---|
vertical | string | required | vertical id or slug |
fields | object (free-form) | required | field key -> value (validated against the vertical schema) |
partner_id | string | required for non-partner credentials | |
external_id | string | supplier idempotency key | |
sub1 | string | ||
sub2 | string | ||
sub3 | string | ||
ip | string | ||
user_agent | string | ||
consent_text | string |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json LeadSubmitResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/leads' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"vertical":"","fields":{}}'
Example 201 response:
{
"id": "",
"display_id": 0,
"status": "sold",
"sold": false
}
GET /leads/{id}
Lead with the ping/post timeline, sales and returns
Operation getLeadsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl 'https://api.metrixed.com/v1/leads/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
POST /leads/report
Lead report by vertical/supplier/buyer/campaign/day: leads, sold %, revenue, cost, margin, return rate (reporting service)
Operation postLeadsReport. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): SearchRequest
| Field | Type | Flags | Description |
|---|---|---|---|
filters | array of object | ||
search | string | ||
sort | array of object (free-form) | ||
page | integer | ||
page_size | integer | ||
include | array of string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json LogSearchResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/leads/report' \
-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:
{
"rows": [
{}
],
"next_cursor": "",
"has_more": false
}
GET /partner/lead-verticals
Supplier portal: active verticals with their field schema
Operation getPartnerLeadVerticals. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/partner/lead-verticals' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /partner/leads
Supplier portal: own leads with masked PII and payout
Operation getPartnerLeads. 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 |
curl 'https://api.metrixed.com/v1/partner/leads?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
GET /partner/leads/summary
Supplier portal: leads / sold / rejected / returned / payout for the last N days
Operation getPartnerLeadsSummary. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/partner/leads/summary' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /public/lead-forms/{slug}
Public: form schema (no auth)
Operation getPublicLeadFormsSlug. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | yes |
curl 'https://api.metrixed.com/v1/public/lead-forms/<slug>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /public/lead-forms/{slug}/embed.js
Public: embeddable form script
Operation getPublicLeadFormsSlugEmbed.js. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | yes |
curl 'https://api.metrixed.com/v1/public/lead-forms/<slug>/embed.js' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
GET /public/lead-forms/{slug}/page
Public: hosted form page
Operation getPublicLeadFormsSlugPage. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | yes |
curl 'https://api.metrixed.com/v1/public/lead-forms/<slug>/page' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"ok": false
}
POST /public/lead-forms/{slug}/submit
Public: submit a hosted/embedded form (JSON or urlencoded; CORS per allowed_origins)
Operation postPublicLeadFormsSlugSubmit. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
slug | path | string | yes |
Request body (application/json, required): LeadSubmit
| Field | Type | Flags | Description |
|---|---|---|---|
vertical | string | required | vertical id or slug |
fields | object (free-form) | required | field key -> value (validated against the vertical schema) |
partner_id | string | required for non-partner credentials | |
external_id | string | supplier idempotency key | |
sub1 | string | ||
sub2 | string | ||
sub3 | string | ||
ip | string | ||
user_agent | string | ||
consent_text | string |
curl -X POST 'https://api.metrixed.com/v1/public/lead-forms/<slug>/submit' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"vertical":"","fields":{}}'
Example 201 response:
{
"ok": false
}