24Metrics API Documentation (1)

Download OpenAPI specification:

Introduction

The API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Authentication

All requests to the API must be authenticated using an API key. To authenticate, add a API-KEY header to your request that contains your API Key.

  • For network administrators you can create individual API keys and find your API keys under Organization > API Access.
  • For all users you can use your own API key by going to Profile > Security > Enable API Access.

Status Codes

Code Summary Description
200 OK Everything worked as expected.
400 Bad Request The request was unacceptable, often due to missing a required parameter.
401 Unauthorized No valid API key provided.
402 Request Failed The parameters were valid but the request failed.
403 Forbidden The API key doesn't have permissions to perform the request.
404 Not Found The requested resource doesn't exist.
429 Too Many Requests Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
500, 502, 503, 504 Server Errors Something went wrong on Server's end. (These are rare.)

Errors

We use conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a wrong data type is provided to a json field). Codes in the 5xx range indicate an error with our servers (these are rare).

Filtering

To filter the result you can use the filter query parameter. Format:

filter[field_name][operator] = value
  • field_name - is the field or property name. To filter a property within an object use dots such as filter[outer_field.inner_field]
  • operator - the operators used. If omitted, the default operator is eq.

Sorting

You can sort the result by adding sort query params like sort=-type,name. - will act for descending

Pagination

The API in general is using numbered pages except for Reports.

To paginate the result you can provide the following:

  • page[number] is the number of the page.
  • page[size] is the size of the page. The API max limit is 100.

In the response, meta.total_count shows the number of total objects and meta.total_page shows the number of total pages.

{
  "meta": {
    "total_count": 1000,
    "total_page": 50
  }
}

Example:

Go to the first page:

GET /api/v2/coffees?page[size]=100&page[number]=1

Go to the second page:

GET /api/v2/coffees?page[size]=100&page[number]=2

FraudDetection

Manage Filter Groups for Fraud detection.

List all filter groups

You can list all filter groups within an integration.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create a filter group

You can create a filter group within an integration.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

Request Body schema: application/json
required

A JSON object containing filter group information

active
boolean

When inactive, this filter group is not going to used.

advertiser_ids
Array of strings unique

A list of database ID of Clickshield advertisers that can use this filter group.

click_filter_preset_id
integer

The FilterPreset ID which is used to automatically populate the click filters.

conversion_filter_preset_id
integer

The FilterPreset ID which is used to automatically populate the conversion filters.

description
string

Description of the filter group.

Array of objects (filters.Filter)

The list of Filters to be used by the Gateway.

integration
required
string

Integration ID parent of this filter group.

monitoring_mode
boolean

MonitoringMode at filter group level. This takes precedence over Integration MonitoringMode.

name
required
string

Friendly name of the filter group.

offer_ids
Array of strings unique

A list of Clickshield offers external ID or any offer ID that can use this filter group.

organization
required
string

Organization parent of this filter group and integration.

priority
required
integer

Priority used during matching in Gateway. An Integration can have multiple filter groups and if there are multiple equal matches score found by the Gateway, then priority is going to be considered. Priority value is unique from other Filter group instances.

publisher_ids
Array of strings unique

A list of database ID of Clickshield publishers that can use this filter group.

rtb_enabled
boolean

RTBEnabled at filter group level. This takes precedence over Integration RTBEnabled.

tags
Array of strings <= 50 items

A list of tags that is be used to categorize the filter group.

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "advertiser_ids": [
    ],
  • "click_filter_preset_id": 0,
  • "conversion_filter_preset_id": 0,
  • "description": "string",
  • "filters": [
    ],
  • "integration": "string",
  • "monitoring_mode": true,
  • "name": "string",
  • "offer_ids": [
    ],
  • "organization": "string",
  • "priority": 0,
  • "publisher_ids": [
    ],
  • "rtb_enabled": true,
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "created_item_id": "string"
}

Bulk update filter groups

You can bulk update the filter groups value.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

query Parameters
organization
string

The Organization ID of the filter group.

Request Body schema: application/json
required

An array of filter group IDs to update

data
Array of strings
monitoring_mode
boolean

Responses

Request samples

Content type
application/json
{
  • "data": [
    ],
  • "monitoring_mode": true
}

Response samples

Content type
application/json
{ }

Bulk delete filter groups

You can bulk delete filter groups.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

query Parameters
organization
string

The Organization ID of the filter group.

Request Body schema: application/json
required

An array of filter group IDs to delete

data
Array of strings

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Response samples

Content type
application/json
{ }

Read a filter group

You can read a filter group within an integration.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

filterGroupID
required
string

The Filter Group ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a filter group

You can delete a filter group within an integration.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

filterGroupID
required
string

The Filter Group ID

Responses

Update a filter group

You can update a filter group within an integration.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

filterGroupID
required
string

The Filter Group ID

Request Body schema: application/json
required

A JSON object containing filter group information

active
boolean
advertiser_ids
Array of strings
click_filter_preset_id
integer
conversion_filter_preset_id
integer
description
string
Array of objects (filters.Filter)
monitoring_mode
boolean
name
string
offer_ids
Array of strings
priority
integer
publisher_ids
Array of strings
rtb_enabled
boolean
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "advertiser_ids": [
    ],
  • "click_filter_preset_id": 0,
  • "conversion_filter_preset_id": 0,
  • "description": "string",
  • "filters": [
    ],
  • "monitoring_mode": true,
  • "name": "string",
  • "offer_ids": [
    ],
  • "priority": 0,
  • "publisher_ids": [
    ],
  • "rtb_enabled": true,
  • "tags": [
    ]
}

Response samples

Content type
application/json
{ }

RedirectLinkTest

Test redirect chains for affiliate and tracking links.

Redirect Link Test

Test a redirect link given the configuration supplied.

Authorizations:
ApiKeyAuthBearerAuth
Request Body schema: application/json
required

A JSON object containing redirectLinkTestConfig information

advertiser
string

The advertiser identifier where the offer belongs to. This is primarily used for test result aggregation.

allowed_domains
Array of strings

Optional: The list of allowed domains of the final URL. If set, the final URL domain must be at least equal with one of the list.

custom_user_agent
string

If device is custom_user_agent, this is going to be the user agent that will be used for testing.

deeplink_path
string

Optional: The path of the final URL must be equal to this. E.g. "/news" If set and the final URL path is not equal, the test result will fail.

device
required
string
Enum: "windows" "mac" "ios" "android" "custom_user_agent"

The device that should be used for accessing the test url.

link_source
string

The link source identifier for grouping test results. This is primarily used for report separation. This field only accepts registered link source values. Leave it empty for general use case. Consult support to register a new link source name.

max_redirects
integer <= 300

The maximum number of redirects to follow. If the number of max redirect is exceeded, the test result will fail.

max_retries
integer <= 5

The maximum number of retries which can be the cause of connection timeouts or bad status codes. If the max retry is exceeded, the test result will fail.

network
string

The network where the test url belongs to. This is primarily used for test result aggregation.

offer
string

The offer identifier where the test url belongs to. This is primarily used for test result aggregation.

proxy_country
string

Optional: The country that will be used as the geolocation for accessing the test url.

test_url
required
string

The url to access for the redirect test.

Responses

Request samples

Content type
application/json
{
  • "advertiser": "string",
  • "allowed_domains": [
    ],
  • "custom_user_agent": "string",
  • "deeplink_path": "string",
  • "device": "windows",
  • "link_source": "string",
  • "max_redirects": 300,
  • "max_retries": 5,
  • "network": "string",
  • "offer": "string",
  • "proxy_country": "string",
  • "test_url": "string"
}

Response samples

Content type
application/json
{
  • "advertiser": "string",
  • "allowed_domain": true,
  • "allowed_domains": [
    ],
  • "applied_tags": [
    ],
  • "bytes_transferred": 0,
  • "custom_user_agent": "string",
  • "deeplink_match": true,
  • "deeplink_path": "string",
  • "device": "windows",
  • "duration_ms": 0,
  • "error_message": "string",
  • "failed_reason": "string",
  • "final_domain": "string",
  • "final_url": "string",
  • "link_source": "string",
  • "max_redirects": 300,
  • "max_retries": 5,
  • "network": "string",
  • "offer": "string",
  • "organization_id": "string",
  • "proxy_country": "string",
  • "proxy_error": "string",
  • "proxy_failed": true,
  • "proxy_used": true,
  • "redirect_chains": [
    ],
  • "redirect_count": 0,
  • "request_id": "string",
  • "retries": 0,
  • "success": true,
  • "test_url": "string",
  • "test_url_domain": "string",
  • "timestamp": "string",
  • "transfer_limited": true,
  • "transfer_preview": "string",
  • "transfer_reason": "string",
  • "user_agent": "string"
}

List all Redirect Link Test Logs

List all Redirect Link Test logs within an organization.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

sort
string

sort

page[number]
integer

The page number

page[size]
integer

How many items per page to return

timezone
string

Optional IANA timezone, Defaults to UTC

filter[tag_name][eq][or]
string

Is any of: filter by applied tag name (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][ne][and]
string

Is not any of: exclude applied tag names (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][match]
string

Contains: match applied tag name substrings (alias of applied_tags.tag_name). Comma-separated values are OR'd.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get Redirect Link Test Log

Get cached Redirect Link Test log by request ID.

path Parameters
id
required
string

The Request ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Redirect Link Test Log

Get Redirect Link Test log within an organization.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
id
required
string

The Request ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

RedirectLinkTestTagging

Manage custom tag rules and pattern lists for link test categorization.

List Redirect Link Tester pattern lists

List organization-scoped Redirect Link Tester pattern-list metadata with pagination and filtering.

Authorizations:
ApiKeyAuthBearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create a Redirect Link Tester pattern list

Create reusable pattern-list metadata with optional initial entries.

Authorizations:
ApiKeyAuthBearerAuth
Request Body schema: application/json
required

Pattern-list payload

description
string <= 500 characters

Description provides optional operator-facing context for the list's purpose.

entries
Array of strings <= 3000 items
name
required
string <= 100 characters

Name is the human-readable pattern-list name shown in configuration screens.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "entries": [
    ],
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "created_item_id": "string"
}

Get a Redirect Link Tester pattern list

Read one organization-scoped Redirect Link Tester pattern list.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestPatternListID
required
string

Pattern-list ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a Redirect Link Tester pattern list

Delete pattern-list metadata and clean up its entries.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestPatternListID
required
string

Pattern-list ID

Responses

Response samples

Content type
application/json
{ }

Patch a Redirect Link Tester pattern list

Patch mutable metadata for a Redirect Link Tester pattern list.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestPatternListID
required
string

Pattern-list ID

Request Body schema: application/json
required

Pattern-list patch payload

description
string

Description replaces the optional operator-facing pattern-list context when provided.

name
string

Name replaces the pattern-list display name when provided.

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{ }

List Redirect Link Tester pattern-list entries

List cursor-paginated entries for a Redirect Link Tester pattern list.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestPatternListID
required
string

Pattern-list ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Add Redirect Link Tester pattern-list entries

Add reusable entries to an existing Redirect Link Tester pattern list.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestPatternListID
required
string

Pattern-list ID

Request Body schema: application/json
required

Entries payload

entries
Array of strings <= 3000 items

Responses

Request samples

Content type
application/json
{
  • "entries": [
    ]
}

Response samples

Content type
application/json
{
  • "limit_reached": true
}

Remove Redirect Link Tester pattern-list entries

Remove entries from an existing Redirect Link Tester pattern list.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestPatternListID
required
string

Pattern-list ID

Request Body schema: application/json
required

Entries payload

entries
Array of strings <= 3000 items

Responses

Request samples

Content type
application/json
{
  • "entries": [
    ]
}

Response samples

Content type
application/json
{ }

List Redirect Link Tester tag rules

List organization-scoped Redirect Link Tester tag rules with pagination and filtering.

Authorizations:
ApiKeyAuthBearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create a Redirect Link Tester tag rule

Create an organization-scoped custom tag rule for future Redirect Link Tester evaluations.

Authorizations:
ApiKeyAuthBearerAuth
Request Body schema: application/json
required

Tag rule payload

active
boolean

Active controls whether the evaluator considers this rule for future live runs.

color
string

Color is an optional UI display color code for this tag rule.

description
string <= 500 characters

Description provides optional operator-facing context for why the rule exists.

required
object

Expression is the bounded condition tree evaluated against redirect chains.

name
required
string <= 100 characters

Name is the human-readable rule name shown in configuration screens.

status_override
string
Enum: "no_override" "success" "failed" "error"

StatusOverride changes the final link-test status when this rule matches.

tag_name
required
string <= 100 characters

TagName is the label applied to matching redirect-link-test logs.

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "color": "string",
  • "description": "string",
  • "expression": {
    },
  • "name": "string",
  • "status_override": "no_override",
  • "tag_name": "string"
}

Response samples

Content type
application/json
{
  • "created_item_id": "string"
}

Bulk activate or deactivate Redirect Link Tester tag rules

Set the active flag for multiple organization-scoped Redirect Link Tester tag rules.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
organization
string

Organization ID for super-admin requests

Request Body schema: application/json
required

Tag rule IDs and active state

active
boolean
data
Array of strings

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "data": [
    ]
}

Response samples

Content type
application/json
{ }

Bulk delete Redirect Link Tester tag rules

Delete multiple organization-scoped Redirect Link Tester tag rules without changing historical applied tags.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
organization
string

Organization ID for super-admin requests

Request Body schema: application/json
required

Tag rule IDs to delete

data
Array of strings

Responses

Request samples

Content type
application/json
{
  • "data": [
    ]
}

Response samples

Content type
application/json
{ }

Dry-run a Redirect Link Tester tag rule

Evaluate a draft Redirect Link Tester tag rule before it is created. Send rule without rule_id and target either request_id from a link-test log or redirect_chain; no tags are persisted.

Authorizations:
ApiKeyAuthBearerAuth
Request Body schema: application/json
required

Draft rule plus request_id or redirect_chain; omit rule_id for unsaved rules

Array of objects (csapi.RedirectChain)

RedirectChain supplies redirect hops directly as the dry-run target. Mutually exclusive with RequestID.

request_id
string

RequestID selects an existing redirect-link-test log as the dry-run target. Mutually exclusive with RedirectChain.

object

Rule supplies a draft rule to evaluate without a rule ID. The backend sets organization from authentication.

rule_id
string

RuleID selects an existing persisted rule to evaluate. Omit this when dry-running a new, unsaved rule.

Responses

Request samples

Content type
application/json
{
  • "redirect_chain": [
    ],
  • "request_id": "string",
  • "rule": {
    },
  • "rule_id": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a Redirect Link Tester tag rule

Read one organization-scoped Redirect Link Tester tag rule.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestTagRuleID
required
string

Tag rule ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a Redirect Link Tester tag rule

Delete mutable tag-rule configuration without changing historical applied tags.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestTagRuleID
required
string

Tag rule ID

Responses

Response samples

Content type
application/json
{ }

Patch a Redirect Link Tester tag rule

Patch mutable fields of an organization-scoped Redirect Link Tester tag rule.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestTagRuleID
required
string

Tag rule ID

Request Body schema: application/json
required

Tag rule patch payload

active
boolean

Active enables or disables future evaluation of this rule when provided.

color
string

Color replaces the optional UI display color code when provided.

description
string

Description replaces the optional operator-facing rule context when provided.

object

Expression replaces the rule condition tree when provided.

name
string

Name replaces the rule display name when provided.

status_override
string
Enum: "no_override" "success" "failed" "error"

StatusOverride replaces the status change applied when the rule matches.

tag_name
string

TagName replaces the tag label applied by this rule when provided.

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "color": "string",
  • "description": "string",
  • "expression": {
    },
  • "name": "string",
  • "status_override": "no_override",
  • "tag_name": "string"
}

Response samples

Content type
application/json
{ }

Dry-run a persisted Redirect Link Tester tag rule

Evaluate an existing Redirect Link Tester tag rule against a supplied redirect chain or existing request ID without persisting tags. The rule ID comes from the path.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
redirectLinkTestTagRuleID
required
string

Tag rule ID

Request Body schema: application/json
required

request_id or redirect_chain target; do not send rule for persisted dry-runs

Array of objects (csapi.RedirectChain)

RedirectChain supplies redirect hops directly as the dry-run target. Mutually exclusive with RequestID.

request_id
string

RequestID selects an existing redirect-link-test log as the dry-run target. Mutually exclusive with RedirectChain.

object

Rule supplies a draft rule to evaluate without a rule ID. The backend sets organization from authentication.

rule_id
string

RuleID selects an existing persisted rule to evaluate. Omit this when dry-running a new, unsaved rule.

Responses

Request samples

Content type
application/json
{
  • "redirect_chain": [
    ],
  • "request_id": "string",
  • "rule": {
    },
  • "rule_id": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

RedirectLinkTestReport

Access link test logs, grouped reports, and chart data.

Get redirect link test logs bar chart by failed reason

Get redirect link test logs bar chart by failed reason within an organization.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

filter[link_source][eq][and]
string

Filter by link source

filter[tag_name][eq][or]
string

Is any of: filter by applied tag name (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][ne][and]
string

Is not any of: exclude applied tag names (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][match]
string

Contains: match applied tag name substrings (alias of applied_tags.tag_name). Comma-separated values are OR'd.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get redirect link test logs bar chart by status

Get RedirectLinkTestLogsBarChartByStatus within an organization.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

filter[link_source][eq][and]
string

Filter by link source

filter[tag_name][eq][or]
string

Is any of: filter by applied tag name (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][ne][and]
string

Is not any of: exclude applied tag names (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][match]
string

Contains: match applied tag name substrings (alias of applied_tags.tag_name). Comma-separated values are OR'd.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get redirect link test logs bar chart by applied tag name

Get redirect link test logs applied tag totals by day or hour within an organization.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

filter[link_source][eq][and]
string

Filter by link source

filter[tag_name][eq][or]
string

Is any of: filter by applied tag name (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][ne][and]
string

Is not any of: exclude applied tag names (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][match]
string

Contains: match applied tag name substrings (alias of applied_tags.tag_name). Comma-separated values are OR'd.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

List all Redirect Link Test Logs Grouped

List all Redirect Link Test Logs Grouped within an organization.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

fields
string

Fields to include in the response separated by comma.

sort
string

Sort the order of rows by this column

page[number]
integer

The page number

page[size]
integer

How many items per page to return

timezone
string

Optional IANA timezone, Defaults to UTC

filter[tag_name][eq][or]
string

Is any of: filter by applied tag name (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][ne][and]
string

Is not any of: exclude applied tag names (alias of applied_tags.tag_name). Comma-separated values.

filter[tag_name][match]
string

Contains: match applied tag name substrings (alias of applied_tags.tag_name). Comma-separated values are OR'd.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List link sources

List distinct link sources for redirect link test logs within an organization.

Authorizations:
ApiKeyAuthBearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get redirect link test logs totals by time period

Get all RedirectLinkTestLogsTotalByTimePeriod within an organization for a time period.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
time_period
required
string
Enum: "Yesterday" "Today" "Last7D" "Last30D"

The time period to get the totals for

timezone
string

Optional IANA timezone, Defaults to UTC

link_source
string

Filter by link source

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Reports

Pagination

The Reports API page[size] limit is only 100. If you need to quickly and efficiently export a massive amount of data, we recommend to use the Download Center Export APIs.

Reports API methods use cursor-based pagination through the page[after] and page[before] parameters. Both parameters accept an existing value in transaction ID format which matches the objects real_tx_id field.

The values to use can be found under pageInfo.startCursor and pageInfo.endCursor from the response and return objects in reverse chronological order. The page[before] parameter returns objects listed before object.real_tx_id. The page[after] parameter returns objects listed after object.real_tx_id. These parameters are mutually exclusive. You can use either the page[after] or page[before] parameter, but not both simultaneously.

  • data.pageInfo.startCursor is the cursor of first object in the current page.
  • data.pageInfo.endCursor is the cursor of the last object in the current page.
  • data.pageInfo.hasNextPage shows you if there is a next page.
  • data.pageInfo.hasPreviousPage shows you if there is a previous page.
GET /api/v2/reports/v2/conversion-table?page[size]=25&integration_id={integrationID}&start_time=2025-02-01 00:00:00&end_time=2025-02-27 23:59:59

Example response:

{
  "data": {
    "data": [
      {
        "real_tx_id": "ABC"
      },
      {
        "real_tx_id": "............"
      },
      {
        "real_tx_id": "XYZ"
      }
    ],
    "pageInfo": {
      "startCursor": "ABC",
      "endCursor": "XYZ",
      "hasPreviousPage": true,
      "hasNextPage": true
    }
  }
}

Fetch the next page by adding &page[after]=XYZ in the request.

GET /api/v2/reports/v2/conversion-table?page[size]=25&integration_id={integrationID}&start_time=2025-02-01 00:00:00&end_time=2025-02-27 23:59:59&page[after]=XYZ

Example response:

{
  "data": {
    "data": [
      {
        "real_tx_id": "{startCursor}"
      },
      {
        "real_tx_id": "............"
      },
      {
        "real_tx_id": "{endCursor}"
      }
    ],
    "pageInfo": {
      "startCursor": "{startCursor}",
      "endCursor": "{endCursor}",
      "hasPreviousPage": true,
      "hasNextPage": true
    }
  }
}

Sorting

Sorting is NOT SUPPORTED. Objects are always are sorted in reverse chronological order.

Using Download Center

Use Get Download Center Export to check the Export object status. When the status is COMPLETED, you can use Get Download Center Export URL and use the link to download the CSV file. The other status to check for are PENDING and ERROR.

Example

Request to Export Clicks. Get the exportID.

GET /api/v2/download-center/clicks-export/{integrationID}?start_time=2025-01-01 00:00:00&end_time=2025-01-02 23:59:59
{
  "id": "{exportID}"
  ....
}

Check the export status using the exportID and get the artifactName:

GET /api/v2/downloadcenter-exports/{exportID}
{
  "id": "{exportID}"
  "status": "COMPLETED"
  "artifact": {
    "name": "{artifactName}
  }
  ....
}

Get the signed URL by passing the artifactName:

GET /downloadcenter-artifact-url?artifact_name={artifactName}
{
  "url": "{downloadLink}"
}

The file is in compressed zip format and inside is the CSV file.

Download Clicks

Use Download Center to export Clicks to a CSV file. Use Reporting filters to narrow down the data.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

query Parameters
delimiter
string

Delimiter to be used in CSV. Default is comma.

start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

timezone
string

Optional IANA timezone, Defaults to UTC

fields
required
string

The columns to include in the CSV

extra_parameters
required
string

The extra parameters data that will be converted as columns in the CSV

Responses

Response samples

Content type
application/json
{
  • "artifact": {
    },
  • "created_at": "string",
  • "email_config": {
    },
  • "error": "string",
  • "export_list_options": {
    },
  • "format": {
    },
  • "guest_token": "string",
  • "id": "string",
  • "integration": "string",
  • "last_updated_by": "string",
  • "masking_config": {
    },
  • "notify_by_email": true,
  • "organization": "string",
  • "platform": "24metrics",
  • "reports_query_option": {
    },
  • "requested_by": "string",
  • "results_meta": {
    },
  • "status": "PENDING",
  • "type": "string",
  • "updated_at": "string"
}

Download Conversions

Use Download Center to export Conversions to a CSV file. Use Reporting filters to narrow down the data.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

query Parameters
delimiter
string

Delimiter to be used in CSV. Default is comma.

start_time
required
string

Fetch data where conversion_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where conversion_time is until this date time (format: 2006-01-02 15:04:05)

timezone
string

Optional IANA timezone, Defaults to UTC

fields
required
string

The columns to include in the CSV

extra_parameters
required
string

The extra parameters data that will be converted as columns in the CSV

Responses

Response samples

Content type
application/json
{
  • "artifact": {
    },
  • "created_at": "string",
  • "email_config": {
    },
  • "error": "string",
  • "export_list_options": {
    },
  • "format": {
    },
  • "guest_token": "string",
  • "id": "string",
  • "integration": "string",
  • "last_updated_by": "string",
  • "masking_config": {
    },
  • "notify_by_email": true,
  • "organization": "string",
  • "platform": "24metrics",
  • "reports_query_option": {
    },
  • "requested_by": "string",
  • "results_meta": {
    },
  • "status": "PENDING",
  • "type": "string",
  • "updated_at": "string"
}

Download Impressions

Use Download Center to export Impressions to a CSV file. Use Reporting filters to narrow down the data.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

query Parameters
delimiter
string

Delimiter to be used in CSV. Default is comma.

start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

timezone
string

Optional IANA timezone, Defaults to UTC

fields
required
string

The columns to include in the CSV

extra_parameters
required
string

The extra parameters data that will be converted as columns in the CSV

Responses

Response samples

Content type
application/json
{
  • "artifact": {
    },
  • "created_at": "string",
  • "email_config": {
    },
  • "error": "string",
  • "export_list_options": {
    },
  • "format": {
    },
  • "guest_token": "string",
  • "id": "string",
  • "integration": "string",
  • "last_updated_by": "string",
  • "masking_config": {
    },
  • "notify_by_email": true,
  • "organization": "string",
  • "platform": "24metrics",
  • "reports_query_option": {
    },
  • "requested_by": "string",
  • "results_meta": {
    },
  • "status": "PENDING",
  • "type": "string",
  • "updated_at": "string"
}

Download Postback Logs

Use Download Center to export Postback Logs to a CSV file. Use Reporting filters to narrow down the data.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

The Integration ID

query Parameters
delimiter
string

Delimiter to be used in CSV. Default is comma.

start_time
required
string

The start time (format: 2006-01-02 15:04:05)

end_time
required
string

The end time (format: 2006-01-02 15:04:05)

timezone
string

Optional IANA timezone, Defaults to UTC

fields
required
string

The columns to include in the CSV

Responses

Response samples

Content type
application/json
{
  • "artifact": {
    },
  • "created_at": "string",
  • "email_config": {
    },
  • "error": "string",
  • "export_list_options": {
    },
  • "format": {
    },
  • "guest_token": "string",
  • "id": "string",
  • "integration": "string",
  • "last_updated_by": "string",
  • "masking_config": {
    },
  • "notify_by_email": true,
  • "organization": "string",
  • "platform": "24metrics",
  • "reports_query_option": {
    },
  • "requested_by": "string",
  • "results_meta": {
    },
  • "status": "PENDING",
  • "type": "string",
  • "updated_at": "string"
}

Click Report

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
integration_id
required
string

The Integration ID

start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

timezone
string

Optional IANA timezone, Defaults to UTC

page[size]
required
integer

The number of items to return

page[before]
string

Fetch the previous data before this cursor

page[after]
string

Fetch the next data after this cursor

filter[status]
string
Enum: "Approved" "Rejected"

The report's status

filter[offer_id]
string

The report's offer id

filter[publisher]
string

The report's publisher

filter[advertiser]
string

The report's advertiser

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Conversion Report

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
integration_id
required
string

The Integration ID

start_time
required
string

Fetch data where conversion_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where conversion_time is until this date time (format: 2006-01-02 15:04:05)

timezone
string

Optional IANA timezone, Defaults to UTC

page[size]
required
integer

The number of items to return

page[before]
string

Fetch the previous data before this cursor

page[after]
string

Fetch the next data after this cursor

filter[status]
string
Enum: "Approved" "Rejected"

The report's status

filter[offer_id]
string

The report's offer id

filter[publisher]
string

The report's publisher

filter[advertiser]
string

The report's advertiser

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Impression Report

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
integration_id
required
string

The Integration ID

start_time
required
string

Fetch data where request_time is starting from this date time (format: 2006-01-02 15:04:05)

end_time
required
string

Fetch data where request_time is until this date time (format: 2006-01-02 15:04:05)

timezone
string

Optional IANA timezone, Defaults to UTC

page[size]
required
integer

The number of items to return

page[before]
string

Fetch the previous data before this cursor

page[after]
string

Fetch the next data after this cursor

filter[status]
string
Enum: "Approved" "Rejected"

The report's status

filter[offer_id]
string

The report's offer id

filter[publisher]
string

The report's publisher

filter[advertiser]
string

The report's advertiser

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

DownloadCenter

Get Download Center Export URL

Get the signed url for a download center file. You need this URL in order to download the file.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
artifact_name
required
string

The Download Export object artifact name

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

List Download Center Exports

List all the Download Center exports.

Authorizations:
ApiKeyAuthBearerAuth
query Parameters
filter[reports_query_option.filters.offer_id.equalvalues]
Array of strings

The offer IDs filter used in the exported data.

filter[reports_query_option.filters.publisher.equalvalues]
Array of strings

The publishers filter used in the exported data.

filter[reports_query_option.filters.advertiser.equalvalues]
Array of strings

The advertisers filter used in the exported data.

filter[reports_query_option.filters.integration_id.equalvalues]
Array of strings

The integration ID filter used in the exported data.

filter[reports_query_option.start_date]
string <date>

The start date filter used in the exported data. This is a string and date range logic does not apply. Use this if you know the exact start date filter used during the export.

filter[reports_query_option.end_date]
string <date>

The end date filter used in the exported data. This is a string and date range logic does not apply. Use this if you know the exact end date filter used during the export.

filter[status]
string
Enum: "UNKNOWN" "PENDING" "IN_PROGRESS" "ERROR" "CANCELED"

The report export status

filter[type]
string
Enum: "conversion_logs" "click_logs"

The report type

filter[results_meta.total][gte]
integer

Greater than or equals to the total number of rows of exported data.

filter[results_meta.total][lte]
integer

Less than or equals to the total number of rows of exported data.

filter[results_meta.duration_seconds][gte]
integer

Greater than or equals to the export completion time in seconds.

filter[results_meta.duration_seconds][lte]
integer

Less than or equals to the export completion time in seconds.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get Download Center Export

Get the Download Center export object.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
exportID
required
string

The Export ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Download Center Export

Delete the Download Center export object and the associated file.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
exportID
required
string

The Export ID

Responses

Get Download Center Export URL of a Shared Report

Get the signed url for a download center file. You need this URL in order to download the file.

query Parameters
artifact_name
required
string

The Download Export object artifact name

token
string

Required for guest access

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

ClickSigning

Get click signing key

Retrieve the click signing key for an integration.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

Integration ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Regenerate click signing key

Generate a new click signing key for an integration. The old key is invalidated immediately.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
integrationID
required
string

Integration ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}