API reference / Operations by tag
reports
The reporting engine: queries, summaries, variance, saved reports, exports and schedules.
49 operations. Base URL https://api.metrixed.com/v1; see authentication, errors and pagination.
Operations
| Method | Path | Summary |
|---|---|---|
| GET | /advertiser/insights/anomalies | Advertiser: unusual last day(s) on my offers (total, offer, partner as the reporting service labels it, country; revenue per click) |
| POST | /advertiser/reports/query | Advertiser report |
| POST | /advertiser/reports/sku | Advertiser portal SKU report: lines of the advertiser's offers and revenue (no payout) |
| POST | /assistant/chat | Ask the read-only AI assistant ({message, history}); streams Server-Sent Events text, tool_call, tool_result, done, error |
| GET | /assistant/conversations | The caller's saved assistant conversations (pinned first, then most recent; ?q= searches titles and messages; unpinned chats idle 90 days are purged) |
| GET | /assistant/conversations/{id} | One saved conversation with its messages (owner only) |
| PATCH | /assistant/conversations/{id} | Rename or pin/unpin a conversation (at most 5 pinned; 409 pin_limit) |
| DELETE | /assistant/conversations/{id} | Delete a conversation |
| GET | /assistant/prompts | Prompt library for the caller's portal: built-in prompts (the MCP prompts + assistant starters), workspace prompts and the caller's own |
| POST | /assistant/prompts | Save a prompt (personal; shared:true + audience = a workspace prompt, workspace admins only) |
| PATCH | /assistant/prompts/{id} | Edit a prompt (own, or workspace prompts as a workspace admin) |
| DELETE | /assistant/prompts/{id} | Delete a prompt (own, or workspace prompts as a workspace admin) |
| GET | /assistant/status | AI assistant availability for the caller (hidden when DT_ANTHROPIC_API_KEY is unset or the workspace turned it off), budget and usage |
| GET | /conversion-disputes | Advertiser conversion disputes waiting for the network (filter status, advertiser_id, conversion_id) |
| POST | /conversion-disputes/{id}/resolve | Accept (changes the conversion status) or reject (note required) an advertiser dispute |
| POST | /dashboard | Dashboard summary |
| GET | /insights/anomalies | Unusual last day(s) per partner/offer/country/total vs a robust baseline of the days before (tenant reporting time zone); scope_dimension (advertiser|offer|partner|country) + scope_id narrow it; each finding links its report query |
| GET | /partner/insights/anomalies | Partner: unusual last day(s) in my own traffic (total, offer, country; payout per click) |
| POST | /partner/reports/query | Partner report |
| POST | /partner/reports/sku | Partner portal SKU report: own lines and payout (no revenue) |
| GET | /reports/catalog | Report catalogue for the network: dimensions, metrics, groups, presets, filter ops and result contract |
| GET | /reports/custom-metrics | Tenant custom metrics (formulas over report metrics) |
| POST | /reports/custom-metrics | Create a custom metric |
| PATCH | /reports/custom-metrics/{id} | Update a custom metric |
| DELETE | /reports/custom-metrics/{id} | Delete a custom metric |
| POST | /reports/export | Async export |
| GET | /reports/export/{id} | Report export job status and download link |
| POST | /reports/fail-traffic | Fail-traffic report (WP-80): invalid clicks by originating offer, fail reason and target (target offer, target URL host or the fallback chain) with clicks, unique clicks and the conversions recorded on them |
| POST | /reports/funnel | Ad-hoc funnel: clicks through goals, conversions and in-app events in order within a window (ClickHouse windowFunnel); counts per step, share of step 1 and of the previous step, optional breakdown; ?format=csv for the table as CSV |
| POST | /reports/mobile | Mobile report by install-date cohort (installs, reattributions, sessions, retention dN, ARPU, LTV) |
| POST | /reports/mobile/cohorts | Cohort grid: retention / LTV / active users per day since install |
| POST | /reports/query | Entity/aggregate report |
| GET | /reports/saved | Saved reports |
| POST | /reports/saved | Save report |
| GET | /reports/saved/{id} | Get a saved report |
| PATCH | /reports/saved/{id} | Update a saved report (name, query, visibility, pinned) |
| GET | /reports/schedules | List ReportSchedules |
| POST | /reports/schedules | Create ReportSchedule |
| GET | /reports/schedules/{id} | Get ReportSchedule |
| PATCH | /reports/schedules/{id} | Update ReportSchedule |
| DELETE | /reports/schedules/{id} | Delete ReportSchedule |
| POST | /reports/schedules/bulk/apply | Bulk edit apply |
| POST | /reports/schedules/bulk/preview | Bulk edit preview |
| POST | /reports/schedules/search | Search ReportSchedules (advanced) |
| GET | /reports/sheets-schema | Dimensions + metrics selectable in /reports/query (used by the Google Sheets add-on and Looker Studio connector) |
| POST | /reports/skan | SKAN / AdAttributionKit report (verified installs, CV distribution, estimated revenue; dimension event array-joins decoded events) |
| POST | /reports/sku | SKU report (WP-80): SKU lines of conversions priced per SKU with their current status: lines, conversions, quantity, sale amount, approved / pending / rejected payout and revenue, per SKU and currency (optionally per offer, partner, day) |
| POST | /reports/summary | Summary totals |
| POST | /reports/variance | Variance report |
GET /advertiser/insights/anomalies
Advertiser: unusual last day(s) on my offers (total, offer, partner as the reporting service labels it, country; revenue per click)
Operation getAdvertiserInsightsAnomalies. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
days | query | string | no | |
lookback | query | string | no | |
limit | query | string | no | |
dims | query | string | no | |
end | query | string | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AnomalyList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/advertiser/insights/anomalies' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
POST /advertiser/reports/query
Advertiser report Advertiser report. Fields of the report families are namespaced (mobile.retention_d7, skan.installs, lead.accepted, igaming.ngr, calls.qualified_calls) and may be mixed with core fields: each family runs on its own source and rows merge on the shared dimensions; a split a family cannot apply, compare_to or top_n with family fields is refused with 422. With a tree object the response is a ReportTree (docs/06 ยง8): the focused node and its children (expand_depth levels), each node one flat query filtered by its path, so ratios, masks and families hold at every level.
Operation postAdvertiserReportsQuery. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
currency | string | ||
granularity | enum: none, minute, hour, day, week, month, quarter, year | ||
dimensions | array of string | ||
metrics | array of string | ||
filters | array of object | ||
metric_filters | array of object | ||
sort | array of object (free-form) | ||
limit | integer | ||
cursor | string | ||
options | object (free-form) | remove_zero_rows, ignore_fail_traffic, only_fail_traffic, include_on_hold, status_scope, compare_to previous_period|previous_year, attribution_date click|conversion, date_basis conversion_date|click_date, use_current_rates | |
top_n | integer | first N rows by the sort plus one (other) row | |
view | object (free-form) | report builder presentation state saved with a report (date preset, chart, column order); ignored by the engine | |
tree | ReportTreeSpec |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult or ReportTree |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/advertiser/reports/query' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{}
POST /advertiser/reports/sku
Advertiser portal SKU report: lines of the advertiser's offers and revenue (no payout)
Operation postAdvertiserReportsSku. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): WP80ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
group_by | array of string | ||
offer_ids | array of string | ||
partner_ids | array of string | ||
sku | string | ||
include_test | boolean | ||
limit | integer |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json WP80Report |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/advertiser/reports/sku' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
""
],
"rows": [
{}
],
"totals_by_currency": {},
"totals": {}
}
POST /assistant/chat
Ask the read-only AI assistant ({message, history}); streams Server-Sent Events text, tool_call, tool_result, done, error Body {message, conversation_id?}: without conversation_id a new saved conversation is started. Tools are the read-only MCP tools of the caller's audience (+ explain_tracking for staff). The first event is conversation {id, title}.
Operation postAssistantChat. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): PortalDoc
curl -X POST 'https://api.metrixed.com/v1/assistant/chat' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{}'
Example 200 response:
{}
GET /assistant/conversations
The caller's saved assistant conversations (pinned first, then most recent; ?q= searches titles and messages; unpinned chats idle 90 days are purged)
Operation getAssistantConversations. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
q | query | string | no | |
limit | query | integer | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AssistantConversationList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/assistant/conversations' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"pin_limit": 0,
"retention_days": 0
}
GET /assistant/conversations/{id}
One saved conversation with its messages (owner only)
Operation getAssistantConversationsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AssistantConversationDetail |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/assistant/conversations/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"id": "",
"title": "",
"pinned": false,
"pinned_at": "1970-01-01T00:00:00.000Z"
}
PATCH /assistant/conversations/{id}
Rename or pin/unpin a conversation (at most 5 pinned; 409 pin_limit)
Operation patchAssistantConversationsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): AssistantConversationPatch
| Field | Type | Flags | Description |
|---|---|---|---|
title | string | ||
pinned | boolean |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AssistantConversation |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/assistant/conversations/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"title":"","pinned":false}'
Example 200 response:
{
"id": "",
"title": "",
"pinned": false,
"pinned_at": "1970-01-01T00:00:00.000Z"
}
DELETE /assistant/conversations/{id}
Delete a conversation
Operation deleteAssistantConversationsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/assistant/conversations/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /assistant/prompts
Prompt library for the caller's portal: built-in prompts (the MCP prompts + assistant starters), workspace prompts and the caller's own
Operation getAssistantPrompts. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AssistantPromptList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/assistant/prompts' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"can_share": false
}
POST /assistant/prompts
Save a prompt (personal; shared:true + audience = a workspace prompt, workspace admins only)
Operation postAssistantPrompts. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): AssistantPromptCreate
| Field | Type | Flags | Description |
|---|---|---|---|
title | string | required | |
body | string | required | |
shared | boolean | ||
audience | enum: network, partner, advertiser |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json AssistantPrompt |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/assistant/prompts' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"title":"","body":""}'
Example 201 response:
{
"id": "",
"title": "",
"description": "",
"body": ""
}
PATCH /assistant/prompts/{id}
Edit a prompt (own, or workspace prompts as a workspace admin)
Operation patchAssistantPromptsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): AssistantPromptPatch
| Field | Type | Flags | Description |
|---|---|---|---|
title | string | ||
body | string |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AssistantPrompt |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/assistant/prompts/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"title":"","body":""}'
Example 200 response:
{
"id": "",
"title": "",
"description": "",
"body": ""
}
DELETE /assistant/prompts/{id}
Delete a prompt (own, or workspace prompts as a workspace admin)
Operation deleteAssistantPromptsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/assistant/prompts/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
GET /assistant/status
AI assistant availability for the caller (hidden when DT_ANTHROPIC_API_KEY is unset or the workspace turned it off), budget and usage
Operation getAssistantStatus. Auth: API key (Bearer) or session cookie.
curl 'https://api.metrixed.com/v1/assistant/status' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
GET /conversion-disputes
Advertiser conversion disputes waiting for the network (filter status, advertiser_id, conversion_id) Advertiser conversion disputes waiting for the network (filter status, advertiser_id, conversion_id). WP-67: paged; q matches conversion / txn id, offer or advertiser name; counts per status.
Operation getConversionDisputes. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
q | query | string | no | |
page | query | string | no | |
page_size | query | string | no | |
sort | query | string | no | |
status | query | string | no | |
advertiser_id | query | string | no | |
conversion_id | query | string | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AdvertiserDisputeList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/conversion-disputes?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
POST /conversion-disputes/{id}/resolve
Accept (changes the conversion status) or reject (note required) an advertiser dispute
Operation postConversionDisputesIdResolve. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): DisputeResolve
| Field | Type | Flags | Description |
|---|---|---|---|
decision | enum: accept, reject | required | |
note | string | required to reject |
curl -X POST 'https://api.metrixed.com/v1/conversion-disputes/<id>/resolve' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"decision":"accept"}'
Example 200 response:
{
"ok": false
}
POST /dashboard
Dashboard summary
Operation postDashboard. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
currency | string | ||
granularity | enum: none, minute, hour, day, week, month, quarter, year | ||
dimensions | array of string | ||
metrics | array of string | ||
filters | array of object | ||
metric_filters | array of object | ||
sort | array of object (free-form) | ||
limit | integer | ||
cursor | string | ||
options | object (free-form) | remove_zero_rows, ignore_fail_traffic, only_fail_traffic, include_on_hold, status_scope, compare_to previous_period|previous_year, attribution_date click|conversion, date_basis conversion_date|click_date, use_current_rates | |
top_n | integer | first N rows by the sort plus one (other) row | |
view | object (free-form) | report builder presentation state saved with a report (date preset, chart, column order); ignored by the engine | |
tree | ReportTreeSpec |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/dashboard' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
{}
],
"rows": [
[
{}
]
],
"totals": {},
"next_cursor": ""
}
GET /insights/anomalies
Unusual last day(s) per partner/offer/country/total vs a robust baseline of the days before (tenant reporting time zone); scope_dimension (advertiser|offer|partner|country) + scope_id narrow it; each finding links its report query
Operation getInsightsAnomalies. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
days | query | string | no | |
lookback | query | string | no | |
limit | query | string | no | |
dims | query | string | no | |
end | query | string | no | |
scope_dimension | query | string | no | |
scope_id | query | string | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AnomalyList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/insights/anomalies' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
GET /partner/insights/anomalies
Partner: unusual last day(s) in my own traffic (total, offer, country; payout per click)
Operation getPartnerInsightsAnomalies. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
days | query | string | no | |
lookback | query | string | no | |
limit | query | string | no | |
dims | query | string | no | |
end | query | string | no |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json AnomalyList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/partner/insights/anomalies' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{}
POST /partner/reports/query
Partner report Partner report. Fields of the report families are namespaced (mobile.retention_d7, skan.installs, lead.accepted, igaming.ngr, calls.qualified_calls) and may be mixed with core fields: each family runs on its own source and rows merge on the shared dimensions; a split a family cannot apply, compare_to or top_n with family fields is refused with 422. With a tree object the response is a ReportTree (docs/06 ยง8): the focused node and its children (expand_depth levels), each node one flat query filtered by its path, so ratios, masks and families hold at every level.
Operation postPartnerReportsQuery. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
currency | string | ||
granularity | enum: none, minute, hour, day, week, month, quarter, year | ||
dimensions | array of string | ||
metrics | array of string | ||
filters | array of object | ||
metric_filters | array of object | ||
sort | array of object (free-form) | ||
limit | integer | ||
cursor | string | ||
options | object (free-form) | remove_zero_rows, ignore_fail_traffic, only_fail_traffic, include_on_hold, status_scope, compare_to previous_period|previous_year, attribution_date click|conversion, date_basis conversion_date|click_date, use_current_rates | |
top_n | integer | first N rows by the sort plus one (other) row | |
view | object (free-form) | report builder presentation state saved with a report (date preset, chart, column order); ignored by the engine | |
tree | ReportTreeSpec |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult or ReportTree |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/partner/reports/query' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{}
POST /partner/reports/sku
Partner portal SKU report: own lines and payout (no revenue)
Operation postPartnerReportsSku. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): WP80ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
group_by | array of string | ||
offer_ids | array of string | ||
partner_ids | array of string | ||
sku | string | ||
include_test | boolean | ||
limit | integer |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json WP80Report |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/partner/reports/sku' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
""
],
"rows": [
{}
],
"totals_by_currency": {},
"totals": {}
}
GET /reports/catalog
Report catalogue for the network: dimensions, metrics, groups, presets, filter ops and result contract
Operation getReportsCatalog. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportCatalog |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/reports/catalog' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"principal": "network",
"endpoint": "",
"dimensions": [
{}
],
"metrics": [
{}
]
}
GET /reports/custom-metrics
Tenant custom metrics (formulas over report metrics)
Operation getReportsCustomMetrics. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json CustomMetricList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/reports/custom-metrics' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"rows": [
{
"key": "",
"label": "",
"formula": ""
}
],
"has_more": false
}
POST /reports/custom-metrics
Create a custom metric
Operation postReportsCustomMetrics. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): CustomMetric
| Field | Type | Flags | Description |
|---|---|---|---|
id | string | read-only | |
key | string | required | cm_<a-z0-9_>; usable in metrics, sort and metric_filters |
label | string | required | |
description | string | ||
formula | string | required | report metrics with + - * / and parentheses, e.g. (revenue - payout) / clicks |
type | enum: integer, money, percent, number | ||
audience | array of enum: network, partner, advertiser | ||
effective_audience | array of string | read-only | |
version | integer | read-only | |
created_at | string (date-time) | read-only | |
updated_at | string (date-time) | read-only |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json CustomMetric |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/custom-metrics' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"key":"","label":"","formula":""}'
Example 201 response:
{
"key": "",
"label": "",
"formula": ""
}
PATCH /reports/custom-metrics/{id}
Update a custom metric
Operation patchReportsCustomMetricsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): CustomMetric
| Field | Type | Flags | Description |
|---|---|---|---|
id | string | read-only | |
key | string | required | cm_<a-z0-9_>; usable in metrics, sort and metric_filters |
label | string | required | |
description | string | ||
formula | string | required | report metrics with + - * / and parentheses, e.g. (revenue - payout) / clicks |
type | enum: integer, money, percent, number | ||
audience | array of enum: network, partner, advertiser | ||
effective_audience | array of string | read-only | |
version | integer | read-only | |
created_at | string (date-time) | read-only | |
updated_at | string (date-time) | read-only |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json CustomMetric |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/reports/custom-metrics/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"key":"","label":"","formula":""}'
Example 200 response:
{
"key": "",
"label": "",
"formula": ""
}
DELETE /reports/custom-metrics/{id}
Delete a custom metric
Operation deleteReportsCustomMetricsId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/reports/custom-metrics/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
POST /reports/export
Async export
Operation postReportsExport. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ExportRequest
| Field | Type | Flags | Description |
|---|---|---|---|
query | ReportQuery | ||
log | LogSearchRequest | ||
format | enum: csv, tsv, xlsx, json, parquet | ||
notify_email | string | ||
labels | boolean |
curl -X POST 'https://api.metrixed.com/v1/reports/export' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"query":{"from":"","to":""},"log":{},"format":"csv","notify_email":""}'
Example 202 response:
{
"external_ref": ""
}
GET /reports/export/{id}
Report export job status and download link
Operation getReportsExportId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ExportStatus |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/reports/export/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"job_id": "",
"status": "queued",
"progress": 0,
"kind": ""
}
POST /reports/fail-traffic
Fail-traffic report (WP-80): invalid clicks by originating offer, fail reason and target (target offer, target URL host or the fallback chain) with clicks, unique clicks and the conversions recorded on them
Operation postReportsFailTraffic. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): WP80ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
group_by | array of string | ||
offer_ids | array of string | ||
partner_ids | array of string | ||
sku | string | ||
include_test | boolean | ||
limit | integer |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json WP80Report |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/fail-traffic' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
""
],
"rows": [
{}
],
"totals_by_currency": {},
"totals": {}
}
POST /reports/funnel
Ad-hoc funnel: clicks through goals, conversions and in-app events in order within a window (ClickHouse windowFunnel); counts per step, share of step 1 and of the previous step, optional breakdown; ?format=csv for the table as CSV
Operation postReportsFunnel. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
format | query | enum: json, csv | no |
Request body (application/json, required): FunnelQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string (date) | required | |
to | string (date) | required | |
timezone | string | ||
window_hours | integer | ||
breakdown | enum: offer, partner, advertiser, country, device_type, os, source, sub1 | ||
filters | array of object (free-form) | ||
limit | integer | ||
steps | array of object (free-form) | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json FunnelResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/funnel' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":"","steps":[{}]}'
Example 200 response:
{
"steps": [
{}
],
"total": {},
"rows": [
{}
],
"breakdown": ""
}
POST /reports/mobile
Mobile report by install-date cohort (installs, reattributions, sessions, retention dN, ARPU, LTV)
Operation postReportsMobile. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): MobileQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string (date) | required | |
to | string (date) | required | |
dimensions | array of enum: app, app_id, platform, partner, partner_id, offer, country, install_date, match_type, install_kind | ||
metrics | array of string | ||
filters | array of object (free-form) | ||
sort | array of object (free-form) | ||
limit | integer | ||
days | array of integer | ||
cohort_by | string | ||
cohort_kind | enum: retention, ltv, active |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/mobile' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
{}
],
"rows": [
[
{}
]
],
"totals": {},
"next_cursor": ""
}
POST /reports/mobile/cohorts
Cohort grid: retention / LTV / active users per day since install
Operation postReportsMobileCohorts. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): MobileQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string (date) | required | |
to | string (date) | required | |
dimensions | array of enum: app, app_id, platform, partner, partner_id, offer, country, install_date, match_type, install_kind | ||
metrics | array of string | ||
filters | array of object (free-form) | ||
sort | array of object (free-form) | ||
limit | integer | ||
days | array of integer | ||
cohort_by | string | ||
cohort_kind | enum: retention, ltv, active |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json CohortResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/mobile/cohorts' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"kind": "",
"days": [
0
],
"columns": [
{}
],
"rows": [
[
{}
]
]
}
POST /reports/query
Entity/aggregate report Entity/aggregate report. Fields of the report families are namespaced (mobile.retention_d7, skan.installs, lead.accepted, igaming.ngr, calls.qualified_calls) and may be mixed with core fields: each family runs on its own source and rows merge on the shared dimensions; a split a family cannot apply, compare_to or top_n with family fields is refused with 422. With a tree object the response is a ReportTree (docs/06 ยง8): the focused node and its children (expand_depth levels), each node one flat query filtered by its path, so ratios, masks and families hold at every level.
Operation postReportsQuery. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
currency | string | ||
granularity | enum: none, minute, hour, day, week, month, quarter, year | ||
dimensions | array of string | ||
metrics | array of string | ||
filters | array of object | ||
metric_filters | array of object | ||
sort | array of object (free-form) | ||
limit | integer | ||
cursor | string | ||
options | object (free-form) | remove_zero_rows, ignore_fail_traffic, only_fail_traffic, include_on_hold, status_scope, compare_to previous_period|previous_year, attribution_date click|conversion, date_basis conversion_date|click_date, use_current_rates | |
top_n | integer | first N rows by the sort plus one (other) row | |
view | object (free-form) | report builder presentation state saved with a report (date preset, chart, column order); ignored by the engine | |
tree | ReportTreeSpec |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult or ReportTree |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/query' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{}
GET /reports/saved
Saved reports
Operation getReportsSaved. 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/reports/saved?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 /reports/saved
Save report
Operation postReportsSaved. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): SavedReport
| 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 | |
name | string | ||
query | ReportQuery | ||
is_shared | boolean | ||
description | string | ||
visibility | enum: private, team | ||
pinned | boolean | ||
owner_user_id | string | read-only | |
principal_type | enum: network, partner, advertiser | read-only |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json SavedReport |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/saved' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"external_ref":""}'
Example 201 response:
{
"external_ref": ""
}
GET /reports/saved/{id}
Get a saved report
Operation getReportsSavedId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json SavedReport |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/reports/saved/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /reports/saved/{id}
Update a saved report (name, query, visibility, pinned)
Operation patchReportsSavedId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): SavedReport
| 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 | |
name | string | ||
query | ReportQuery | ||
is_shared | boolean | ||
description | string | ||
visibility | enum: private, team | ||
pinned | boolean | ||
owner_user_id | string | read-only | |
principal_type | enum: network, partner, advertiser | read-only |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json SavedReport |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/reports/saved/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"external_ref":""}'
Example 200 response:
{
"external_ref": ""
}
GET /reports/schedules
List ReportSchedules
Operation getReportsSchedules. 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 ReportScheduleList |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/reports/schedules?page=1&page_size=50' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"data": [
{}
],
"page": {}
}
POST /reports/schedules
Create ReportSchedule
Operation postReportsSchedules. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ReportScheduleCreate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | required | |
cron | string | required | |
timezone | string | ||
report | object (free-form) | required | POST /reports/export body (query|log); dates may use {{today}} {{yesterday}} {{7d_ago}} {{30d_ago}} {{month_start}} |
recipients | array of string | ||
format | enum: csv, tsv, json | ||
status | enum: active, paused |
| Status | Description | Body |
|---|---|---|
| 201 | ok | application/json ReportSchedule |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/schedules' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"name":"","cron":"","report":{}}'
Example 201 response:
{
"external_ref": ""
}
GET /reports/schedules/{id}
Get ReportSchedule
Operation getReportsSchedulesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportSchedule |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/reports/schedules/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"external_ref": ""
}
PATCH /reports/schedules/{id}
Update ReportSchedule
Operation patchReportsSchedulesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
Request body (application/json, required): ReportScheduleUpdate
| Field | Type | Flags | Description |
|---|---|---|---|
name | string | ||
cron | string | ||
timezone | string | ||
report | object (free-form) | POST /reports/export body (query|log); dates may use {{today}} {{yesterday}} {{7d_ago}} {{30d_ago}} {{month_start}} | |
recipients | array of string | ||
format | enum: csv, tsv, json | ||
status | enum: active, paused |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportSchedule |
| default | error | application/json Error |
curl -X PATCH 'https://api.metrixed.com/v1/reports/schedules/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"name":"","cron":"","timezone":"","report":{}}'
Example 200 response:
{
"external_ref": ""
}
DELETE /reports/schedules/{id}
Delete ReportSchedule
Operation deleteReportsSchedulesId. Auth: API key (Bearer) or session cookie.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes |
curl -X DELETE 'https://api.metrixed.com/v1/reports/schedules/<id>' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 204 response:
{
"ok": false
}
POST /reports/schedules/bulk/apply
Bulk edit apply
Operation postReportsSchedulesBulkApply. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): BulkPatch
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/schedules/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:
{
"affected": 0,
"changes": [
{}
],
"warnings": [
""
],
"token": ""
}
POST /reports/schedules/bulk/preview
Bulk edit preview
Operation postReportsSchedulesBulkPreview. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): BulkPatch
| Field | Type | Flags | Description |
|---|---|---|---|
ids | array of string | required | |
patches | array of object | required |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json BulkPreview |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/schedules/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:
{
"affected": 0,
"changes": [
{}
],
"warnings": [
""
],
"token": ""
}
POST /reports/schedules/search
Search ReportSchedules (advanced)
Operation postReportsSchedulesSearch. 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 ReportScheduleList |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/schedules/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:
{
"data": [
{}
],
"page": {}
}
GET /reports/sheets-schema
Dimensions + metrics selectable in /reports/query (used by the Google Sheets add-on and Looker Studio connector)
Operation getReportsSheetsSchema. Auth: API key (Bearer) or session cookie.
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json SheetsSchema |
| default | error | application/json Error |
curl 'https://api.metrixed.com/v1/reports/sheets-schema' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json'
Example 200 response:
{
"dimensions": [
{}
],
"metrics": [
{}
],
"granularities": [
""
],
"endpoint": ""
}
POST /reports/skan
SKAN / AdAttributionKit report (verified installs, CV distribution, estimated revenue; dimension event array-joins decoded events)
Operation postReportsSkan. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): MobileQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string (date) | required | |
to | string (date) | required | |
dimensions | array of enum: app, app_id, platform, partner, partner_id, offer, country, install_date, match_type, install_kind | ||
metrics | array of string | ||
filters | array of object (free-form) | ||
sort | array of object (free-form) | ||
limit | integer | ||
days | array of integer | ||
cohort_by | string | ||
cohort_kind | enum: retention, ltv, active |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/skan' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
{}
],
"rows": [
[
{}
]
],
"totals": {},
"next_cursor": ""
}
POST /reports/sku
SKU report (WP-80): SKU lines of conversions priced per SKU with their current status: lines, conversions, quantity, sale amount, approved / pending / rejected payout and revenue, per SKU and currency (optionally per offer, partner, day)
Operation postReportsSku. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): WP80ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
group_by | array of string | ||
offer_ids | array of string | ||
partner_ids | array of string | ||
sku | string | ||
include_test | boolean | ||
limit | integer |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json WP80Report |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/sku' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
""
],
"rows": [
{}
],
"totals_by_currency": {},
"totals": {}
}
POST /reports/summary
Summary totals
Operation postReportsSummary. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
currency | string | ||
granularity | enum: none, minute, hour, day, week, month, quarter, year | ||
dimensions | array of string | ||
metrics | array of string | ||
filters | array of object | ||
metric_filters | array of object | ||
sort | array of object (free-form) | ||
limit | integer | ||
cursor | string | ||
options | object (free-form) | remove_zero_rows, ignore_fail_traffic, only_fail_traffic, include_on_hold, status_scope, compare_to previous_period|previous_year, attribution_date click|conversion, date_basis conversion_date|click_date, use_current_rates | |
top_n | integer | first N rows by the sort plus one (other) row | |
view | object (free-form) | report builder presentation state saved with a report (date preset, chart, column order); ignored by the engine | |
tree | ReportTreeSpec |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/summary' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
{}
],
"rows": [
[
{}
]
],
"totals": {},
"next_cursor": ""
}
POST /reports/variance
Variance report
Operation postReportsVariance. Auth: API key (Bearer) or session cookie.
Request body (application/json, required): ReportQuery
| Field | Type | Flags | Description |
|---|---|---|---|
from | string | required | |
to | string | required | |
timezone | string | ||
currency | string | ||
granularity | enum: none, minute, hour, day, week, month, quarter, year | ||
dimensions | array of string | ||
metrics | array of string | ||
filters | array of object | ||
metric_filters | array of object | ||
sort | array of object (free-form) | ||
limit | integer | ||
cursor | string | ||
options | object (free-form) | remove_zero_rows, ignore_fail_traffic, only_fail_traffic, include_on_hold, status_scope, compare_to previous_period|previous_year, attribution_date click|conversion, date_basis conversion_date|click_date, use_current_rates | |
top_n | integer | first N rows by the sort plus one (other) row | |
view | object (free-form) | report builder presentation state saved with a report (date preset, chart, column order); ignored by the engine | |
tree | ReportTreeSpec |
| Status | Description | Body |
|---|---|---|
| 200 | ok | application/json ReportResult |
| default | error | application/json Error |
curl -X POST 'https://api.metrixed.com/v1/reports/variance' \
-H "Authorization: Bearer $DT_API_KEY" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"from":"","to":""}'
Example 200 response:
{
"columns": [
{}
],
"rows": [
[
{}
]
],
"totals": {},
"next_cursor": ""
}