Partnerize Partners API

Download OpenAPI specification:Download

Introduction

This is the full external API documentation for the Partnerize API. The API is organised around REST principles like resource-oriented URLs and uses standard HTTP features like response codes, verbs and Authentication. At Partnerize, we build features API-first and have built our web application on top of the API as we want to make our core functionality available to developers to consume programmatically.

You can refer to the API reference for a full list of supported endpoints. If it is the first time you are using the API, go to the Quick Start section for a quick start tutorial on making your first API call.

Versioning

Currently there are three global versions of the Partnerize API. You can distinguish between them by looking at the endpoint URL. First version endpoints do not include a version in the path: e.g. https://api.partnerize.com/network/. Second and third version endpoints can be identified by the v2 and v3 in the URL: e.g. https://api.partnerize.com/v2/campaigns/{campaignId}/commissions or https://api.partnerize.com/v3/brand/campaigns/{campaignId}/conversions/bulk. Since the versions are global, there are common conventions that apply to all API versions as well as version specific ones. The sections below describe these conventions in detail.

Quick Start

This tutorial takes you through creating your first Partnerize API call. The example below demonstrates how to:

  1. Obtain your API keys
  2. Generate an Authorization header
  3. Make your first Partnerize API request

Step 1. Obtaining your API keys

  1. Login to the Partnerize console at https://console.partnerize.com.
  2. Go to Settings – the User Application Key and User API key can be found under Account settings.

Step 2. Generate an Authorization header

Authentication is achieved by providing an Authorization header in the following format:

Authorization: Basic cDN0ZXcxNDV5M3RhZzQxbjowaHkzNGho

Where cDN0ZXcxNDV5M3RhZzQxbjowaHkzNGho is the Base64 encoding of the User Application Key and User API key joined by a colon ':'.

Refer to the Access and Authentication section for more details.

Step 3. Make your first Partnerize API request

In this step you are going to make a call to the "Networks" endpoint to retrieve a list of all networks your user has access to.

In the example below, replace the {personal_token} with the one generated in the previous step:

curl -X GET https://api.partnerize.com/network -H 'Authorization: Basic {personal_token}'

The response will contain a collection of networks:

{
    "count": 1,
    "execution_time": "0.20239 seconds",
    "networks": [
        {
            "network": {
                "network_id": 1,
                "network_name": "Partnerize",
                "network_description": "Test Network",
                "network_notes": "This is a test Partnerize network",
                "network_application_id": 2,
                "auto_approve_publishers": "n",
                "default_campaign_id": null,
                "cm_client_id": “b4d0d85cff813cdce092c261b2b200”,
                "network_contact_email": null,
                "network_locale": "en"
            }
        }
    ]
}

API Change Management Policy

Types of changes

Backwards-compatible changes

Consumers of the Partnerize API should ensure that their applications can handle backwards-compatible changes. Examples of what Partnerize considers to be backwards-compatible changes:

  • Introducing new resources
  • Introducing new optional request parameters to existing API resources
  • Introducing new properties in the responses of existing API resources
  • Introducing new methods to existing API resources
  • Introducing new headers to existing responses
  • Changing the order of existing response properties

Partnerize will be making backwards-compatible changes without advanced notice. The changes will be communicated by updating the API documentation.

Breaking changes

Breaking changes would usually require changes in the code of a Partnerize API consumer. Examples of what Partnerize considers to be breaking changes:

  • Removing a resource (see API Resource Deprecation below)
  • Removing or renaming properties in existing responses
  • Removing documented response headers
  • Introducing new mandatory request parameters or header
  • Making an optional request parameter or header to mandatory

Partnerize will announce breaking changes at least 3 months in advance.

Hotfix changes

Partnerize may introduce either breaking or backwards-compatible changes if required to address stability or security issues. In the rare situation of that happening Partnerize reserves the right to make those changes without the agreed minimum notice period announcement.

API resource deprecation

Partnerize will give API consumers at least 3 months notice about deprecating an API resource. Partnerize will notify affected consumers via email with instructions about the upgrade process. Once the announcement is made the resource will be marked as Obsolete in the API documentation together with an alternative new functionality to use.

Common API Conventions

Terminology

Older API endpoints may refer to Brands as Advertisers and Partners as Publishers. Those terms are used interchangeably throughout the API reference. The reference in this set of documents is the single source of truth for the interface specification.

Access and Authentication

The Partnerize API uses HTTP Basic Authentication. You must have valid application_key and user_api_key to make API requests. Refer to the Quick Start tutorial for details on how to obtain these. The application_key identifies the Network you are making the request against and the user_api_key identifies the User on whose behalf the request is made. The keys are sent as part of an Authorization header which value contains the word Basic followed by space and a base-64-encoded string username:password, where:

  • username: application_key

  • password: user_api_key

    Authorization: Basic cDN0ZXcxNDV5M3RhZzQxbjowaHkzNGho

Access to data and operations of certain endpoints is dependent on the access rights of the user.

Requests

All API requests must be made over HTTPS and contain a valid Authorization header value.

Standard Pagination

Certain endpoints will generate large result sets. To save bandwidth and long processing times, these endpoints will paginate the results to reduce the strain on both client and server.

Any endpoint that supports pagination will return 3 attributes to support this:

  • offset the current offset of the data returned
  • limit the number of results to which the output was restricted
  • count the total number of results available

If offset combined with limit is less than the overall count, the results have been truncated. Therefore, to consume all data you will need to page through the result set.

Paging

To paginate through a result set, you can use a combination of 2 parameters:

Parameter Description Notes
offset Offset the results by a given amount Integer, defaults to 0
limit Limit the number of results returned Integer, maximum limit is defined in result set headers

For example, if an endpoint produces 500 results, only the first 300 will be returned (results 0 to 299). In order to retrieve the remaining results, implement the offset GET param. In this example, adding offset=300 to the query string parameters.

There are 2 considerations when doing this:

  • Results begin at offset 0. If you're retrieving a report with limit=300, page 2 will begin at offset=300, page 3 at offset=600, page 4 at offset=900, etc.
  • The reports you generate are based on live data, and could be subject to continuous, incremental changes. If your query covers a particularly busy data set, then data inserts or updates may occur between paging.

Hypermedia

It can be cumbersome to manage pagination programmatically, especially when attempting to rapidly prototype. To provide some helpful assistance, the API will output a hypermedia node for all paginated result sets. Essentially this performs all necessary calculations and outputs all relevant information with absolute URI's to assist easier pagination.

"hypermedia": {
    "pagination": {
        "total_page_count": 15,
        "total_item_count": 51234,
        "first_page": "/user.json?limit=100&offset=0",
        "last_page": "/user.json?limit=100&offset=1400",
        "next_page": "/user.json?limit=100&offset=100",
        "previous_page": null
    }
}

Cursor Pagination

For the granular conversion reporting endpoint, we have adopted cursor based pagination. Due to the scale of some clients, there is a large overhead involved in processing the offset and computing the total number of results. This overhead compounds as the data set size increases, and when the data set grows large enough it becomes impractical to perform the task in real time.

To ensure these high volume endpoints can scale, cursor based pagination has been implemented, where each response will now return a cursor_id attribute along with the results. This indicates where the client is currently within the result set. When the client requests another page, and includes the cursor_id value, the server will be able to determine where the client is up to in the result set and send the appropriate items.

This approach does not suffer from the same overhead drawbacks that limit/offset pagination does, and provides a consistent view of the result set across pages.

Paging

To paginate through a result set, you can use a combination of 2 parameters:

Parameter Description Notes
cursor_id Cursor value that defines client position in result set Integer
limit Limit the number of results returned Integer, maximum limit is 300

For example, if an endpoint produces 5,000 results, only the first 300 will be returned (results 0 to 299). Within the header attributes, a cursor_id will be included. Simply pass the cursor_id in conjunction with the desired limit to return the subsequent items from the result set.

Hypermedia

The hypermedia object has been updated to automatically include the relevant cursor_id and limit for the next page.

"hypermedia": {
    "pagination": {
        first_page: "/reporting/report_publisher/publisher/10l1/conversion.json?start_date=2018-03-01+00%3A00%3A00&end_date=2018-04-01+00%3A00%3A00&limit=300",
        next_page: "/reporting/report_publisher/publisher/10l1/conversion.json?start_date=2018-03-01+00%3A00%3A00&end_date=2018-04-01+00%3A00%3A00&limit=300&cursor_id=10325942995"
    }
}

Rate Limits

To protect our API users, API endpoints will rate limit based on usage. If violated, the API will respond with with a 429 http status code with the following body:

v1 API:

{
    "error": {
        "message": "Too Many Requests",
        "type": "429"
    }
}

v2 API:

{
  "error": {
    "errors": [
    ],
    "code": "429",
    "message": "Too Many Requests"
  }
}

v3 API:

{
  "error": {
    "errors": [
      {
        "property": "",
        "message": "You have made too many requests recently, please try again later.",
        "code": "3b22ff00-96a5-4fa4-96cc-f36e68dbd2e2",
        "type": "too_many_requests"
      }
    ],
    "message": "Too Many Requests",
    "code": "429"
  }
}

To help monitor your API usage, the following headers will be returned via the API to help moderate the integration:

Code Data Type Description
X-RateLimit-Limit integer How many tokens are permitted
X-RateLimit-Remaining integer How many tokens are left in the specified time period
X-RateLimit-Reset integer How many seconds until the throttle resets itself
X-RateLimit-Retry-After integer How mow many seconds to wait to retry

Version 1 API Conventions

Requests

Base URL

The base URL for version 1 API endpoints is https://api.partnerize.com/

Response Formats

The default response format is JSON. You can specify the response format of each request, by adding a file extension suffix to the end of the request URI. The requested format will dictate the HTTP Content-Type header that is returned in the response. Currently, there are 3 available formats:

Format Header Notes
.json Content-Type: application/json
.xml Content-Type: text/xml
.csv Content-Type: application/octet-stream Only available on specific endpoints

Rate limit response

Whenever too many requests are sent through within a period of time the response will be an error with an http status code 429 Too Many Requests. See Rate limits for more information on this.

Sample JSON response body when a rate limit is hit.

{
        "error": {
            "message": "Too Many Requests",
            "type": "429"
        }
    }

Compression

The API is compression-enabled. To control whether the API response is compressed, send the relevant Accept-Encoding HTTP header:

  • Request: Accept-Encoding: gzip
  • Response: Content-Encoding: gzip

Version 2 API Conventions

Requests

Base URL

The base URL for version 2 API endpoints is https://api.partnerize.com/v2.

Supported HTTP Verbs

Partnerize's API uses appropriate HTTP verbs where possible. Endpoints support one or more of the following HTTP verbs:

GET – GET requests retrieve one or more entities and are always read-only. A successful request returns a response with a 200 OK status code.

POST – POST requests are mainly are used to create Partnerize entities or batch operations. When successful such a request returns a 201 Created response code. In the cases when the POST request is used for batch operations processing is done asyncronously. In those cases the successful request will return a 202 Accepted response code and the response should contain a job id, which can be used to monitor the status of the processing.

PUT – PUT request update the resource provided in the URL. PUT requests are idempotent and result in the resource being replaced. A successful request returns a response with a 200 OK status code.

PATCH – Used to do partial updates to Partnerize entities. A successful request returns a response with a 200 OK status code.

DELETE – DELETE requests can be used to remove an entity when supported. A successful request returns a response with a 200 OK or a 204 No Content status code.

If an endpoint doesn't support a particular method, it will return a response with a 405 Method Not Allowed code.

Responses

Version 2 API endpoints return response data as a JSON object. Refer to the API reference for details of each endpoint responses. The response will include one of the following HTTP status codes:

HTTP Status Codes Summary

HTTP Status Code Description
200 OK The request was successfully completed. A 200 status is returned for a successful GET, PUT, PATCH and sometimes DELETE methods.
201 Created The request was successful and a resource was created. The response usually includes an identifier for the newly created resource.
202 Accepted Some of the requests, e.g. bulk are handled by background jobs. This response status code indicates that the request was received and handed over for processing.
204 No content The request was successfully completed and there is no payload in the response.
400 Bad Request The request could not be processed because it contains missing or invalid information. See Errors for more details.
401 Unauthorized The request is not authorized. The request could not be authenticated becuase of wrong or invalid credentials used in the Authorization header.
403 Forbidden The user is not authorized to perform this action.
404 Not Found The request includes a resource URI that cannot be found by the server.
405 Method Not Allowed The request method, e.g. POST, is not allowed for the resource identified by the request URI.
429 Too Many Requests The user has exceeded the quota for a particular request. See Rate limits for more information on this.
500 Internal Server Error Generic server error. The server encountered an unexpected condition that prevented it from fulfilling the request.
503 Internal Server Error The service is temporarily unavailable.

See the Errors section below for more details on error responses.

Response format

Top level attributes

Each response document contains an execution_time top level attribute.

Collections response

In addition to the execution_time top level attribute, a collection response contains a count one, which represents the total number of resources in the collection.

Example:

{
    "execution_time": "1.11761 seconds",
    "count": 0,
    "commissions": []
}

Single resource response

Example:

{
    "execution_time": "1.11761 seconds",
    "commission": {
      "id": '1234',
    }
}

Errors

The Version 2 API uses the above mentioned standard HTTP status codes to indicate the success or failure of the API calls. The body of the response will be JSON in the following format:

{
  "error": {
    "errors": [
      {
        "property": "evaluation_period",
        "type": "validation_error",
        "code": "required_property",
        "message": "Parameter 'evaluation_period' is required"
      }
    ],
    "code": "400",
    "message": "Bad Request"
  }
}
Attribute Type Description
errors array An array of error(s) which occured which triggered the error. Each item contains the following attributes;
property - The attribute the error is related to.
message - A human-friendly message describing the error.
code - A unique code for this type of error.
type - A text based error classification.
code string An error code representing the error(s) which has occured, this typically matches the HTTP status code.
message string A human-friendly message describing the error(s) which has occured.

Bad Request (Code 400)

If there is an error in your input, you’ll receive a “400 Bad Request” http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Code Description
invalid_property_format Invalid date format.
invalid_type Invalid parameter type. For example when an array is expected and the input was different type.
invalid_value The value is out of bounds.
required_property Missing parameter.
invalid_lower_bound The value is too low.
invalid_upper_bound The value is too hogh.
invalid_enum_value The value must be one of a specified list of values.
invalid_max_length Maximum number of characters reached.
invalid_property The property is invalid.

Unauthorized (Code 401)

If there is an error with your authentication credentials, you’ll receive a “401 Unauthorized” http response.

Sample JSON response body

{
  "error": {
    "errors": [
      {
        "type": "error",
        "code": "unauthorized",
        "message": "Your API credentials can be found in Account settings. 'Username' will be your 'User application key' and 'Password' will be your 'User API key'"
      }
    ],
    "code": "401",
    "message": "Unauthorized"
  }
}

Forbidden (Code 403)

If there is an denial of access to a resouce within your request, you’ll receive a “403 Forbidden“ http response.

{
  "error": {
    "errors": [
      {
        "type": "error",
        "code": "unauthorized",
        "message": "You do not have 'read' permission on campaign with id '1'"
      }
    ],
    "code": "403",
    "message": "Forbidden"
  }
}

When the user is not allowed to know the resource exists, i.e. they don't have READ permission on the resource, the response will have a 404 Not Found status code.

Not Found (Code 404)

If there is an error locating a requested resource, you’ll receive a “404 Not Found" http response.

Sample JSON response body when an invalid URL has been requested.

{
  "error": {
    "errors": [
      {
        "type": "error",
        "code": "entity_not_found",
        "message": "campaign not found for id '1'"
      }
    ],
    "code": "404",
    "message": "Not Found"
  }
}

Method Not Allowed (Code 405)

If there is an error accessing a resource using the given HTTP verb, you’ll receive a “405 Method Not Allowed“ http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Sample JSON response body when an valid URL has been requested with an invalid request method.

{
  "error": {
    "errors": [
      {
        "type": "error",
        "code": "routing_error",
        "message": "index not supported"
      }
    ],
    "code": "405",
    "message": "Method Not Allowed"
  }
}

Too Many Requests (Code 429)

This error code indicates that too many requests were sent within a period of time. See Rate limits for more information on this.

Sample JSON response body when a rate limit is hit.


    {
      "error": {
        "errors": [
        ],
        "code": "429",
        "message": "Too Many Requests"
      }
    }

Date Time

v2 API endpoints use ISO-8601 date time format.

Example:

2019-03-01T12:01:00+00:00 - this example represents 1 minute past midday on the 1st of March 2019 in UTC.

2019-03-01 - date only example

Version 3 API Conventions

Requests

Base URL

The base URL for version 3 API endpoints is https://api.partnerize.com/v3. Version 3 of the API endpoints introduces brands and partners context to the API. This means that the brand endpoints will have the following base URL: https://api.partnerize.com/v3/brand and the partner ones will have: https://api.partnerize.com/v3/partner

Supported HTTP Verbs

Partnerize's API uses appropriate HTTP verbs where possible. Endpoints support one or more of the following HTTP verbs:

GET – GET requests retrieve one or more entities and are always read-only. A successful request returns a response with a 200 OK status code.

POST – POST requests are mainly are used to create Partnerize entities or batch operations. When successful such a request returns a 201 Created response code. In the cases when the POST request is used for batch operations processing is done asyncronously. In those cases the successful request will return a 202 Accepted response code and the response should contain a job id, which can be used to monitor the status of the processing.

PUT – PUT request update the resource provided in the URL. PUT requests are idempotent and result in the resource being replaced. A successful request returns a response with a 200 OK status code.

PATCH – Used to do partial updates to Partnerize entities. A successful request returns a response with a 200 OK status code.

DELETE – DELETE requests can be used to remove an entity when supported. A successful request returns a response with a 200 OK or a 204 No Content status code.

If an endpoint doesn't support a particular method, it will return a response with a 405 Method Not Allowed code.

Unrecognized request headers and parameters

  • We ignore unrecognized HTTP headers.
  • We ignore unrecognized query string parameters.
  • We return a 400 Bad Request if there are unrecognized parameters in the request body.

Responses

Version 3 API endpoints return response data as a JSON object. Refer to the API reference for details of each endpoint responses. The response will include one of the following HTTP status codes:

HTTP Status Codes Summary

HTTP Status Code Description
200 OK The request was successfully completed. A 200 status is returned for a successful GET, PUT, PATCH and sometimes DELETE methods.
201 Created The request was successful and a resource was created. The response usually includes an identifier for the newly created resource.
202 Accepted Some of the requests, e.g. bulk are handled by background jobs. This response status code indicates that the request was received and handed over for processing.
204 No content The request was successfully completed and there is no payload in the response.
400 Bad Request The request could not be processed because it contains missing or invalid information. See Errors for more details.
401 Unauthorized The request is not authorized. The request could not be authenticated becuase of wrong or invalid credentials used in the Authorization header.
403 Forbidden The user is not authorized to perform this action.
404 Not Found The request includes a resource URI that cannot be found by the server.
405 Method Not Allowed The request method, e.g. POST, is not allowed for the resource identified by the request URI.
429 Too Many Requests The user has exceeded the quota for a particular request. See Rate limits for more information on this.
500 Internal Server Error Generic server error. The server encountered an unexpected condition that prevented it from fulfilling the request.
503 Internal Server Error The service is temporarily unavailable.

See the Errors section below for more details on error responses.

Response format

Top level attributes

Each response document contains a data top level attribute and may contain a hypermedia one. The data attribute wraps all response data in the payload, while hypermedia will contain links to related resources.

Example:

{
  "data": {
      "id": "111111l11",
      ...
  },
  "hypermedia": {
      "links": {
      "tasks": "/v3/jobs/111111l11/tasks"
    }
  }
}

Errors

The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:

{
  "error": {
    "errors": [
      {
        "property": "[name]",
        "message": "The attribute expected to be of type 'string' but 'integer' given.",
        "code": "6a6c32c0-de05-4301-89dd-4a72133c137f",
        "type": "validation_error"
      }
    ],
    "code": "400",
    "message": "Bad Request"
  }
}
Attribute Type Description
errors array An array of error(s) which occured which triggered the error. Each item contains the following attributes;
property - The attribute the error is related to.
message - A human-friendly message describing the error.
code - A unique code for this type of error.
type - A text based error classification.
code string An error code representing the error(s) which has occured, this typically matches the HTTP status code.
message string A human-friendly message describing the error(s) which has occured.

Bad Request (Code 400)

If there is an error in your input, you’ll receive a “400 Bad Request” http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Code Description
2572f7f9-e87e-4aa7-98cf-6f53c9ed5584 A value is required for an attribute which has not been supplied.
901d8596-1b91-4e87-869f-ef66bd4ffc0c The value contains more items than expeceted.
b9f3a79a-6767-4947-907e-5e0934b5a641 The value contains more attributes than expected.
6771735c-3000-49d1-a978-74aeb33d15b9 The value does not match the expected value.
9ba6d700-08f1-45c9-bde7-873926d4d393 The value does not contain the expected value.
aa903a6c-64ff-4f8b-830d-8967331c5ba3 The value does not match one of the expected values.
c535eb9f-a8fd-40ce-9e99-fcd6056b55de The value is not higher than or equal to the maximum value.
ed574a9e-fa9d-4b3c-83ee-65ecc47fa2fb The value is not lower than or equal to the minimum value.
1945fae7-8937-4086-b06b-2a43da93b7e3 The value does not match the expected format.
1098ac2a-42f4-4a46-a684-64d67b8c274c The value contains more items than permitted.
539b9fb0-b542-422d-992f-4428e26b39e1 The value contains less items than permitted.
32452de9-0c46-4674-a87d-e02f469a003c The value contains more characters than required.
39c6adce-c253-4750-b2c1-7215713af74d The value contains less characters than required.
458f0977-09d2-40ee-bbe5-c21bc9ed6e48 The value contains more attributes than expected.
4d7d63f2-28f1-45d3-b3b8-99a1bf816e53 The value contains less attributes than expected.
d0fd75d5-9246-4c22-b395-4f6d0279555e The value is higher than permitted.
7ed9630d-04c4-4559-ace5-5e44f45e14e9 The value is lower than permitted.
3dff825b-ac80-41da-a991-2f257ab60a79 The value is not a multiple of the defined value.
80d20241-7f19-4ee2-b46d-538f7179f7fb The value does not match the defined pattern.
9f6fab77-488f-449d-85d3-3345c40a2a45 The attribute value name does not match the defined pattern.
976f4746-0e09-44a7-ba46-b53527a24f6a The attribute value name does not match one of the expected values.
6a6c32c0-de05-4301-89dd-4a72133c137f The value has been supplied as an invalid type.
25772442-e9f9-4cb1-9147-65c422026404 The value contains a duplicate value.
0a53a999-8349-4326-9135-929f25745e08 The interval value does not represent a date-time period between the dates.
cff336e3-1245-49f4-87ec-8efe0d2e2dce The interval value does represent a valid date-time period.
66dad313-af0b-4214-8566-6c799be9789c The Business Identifier Code (BIC) value is an invalid length.
f424c529-7add-4417-8f2d-4b656e4833e2 The Business Identifier Code (BIC) value contains invalid characters.
00559357-6170-4f29-aebd-d19330aa19cf The Business Identifier Code (BIC) value does not contain a valid bank code.
1ce76f8d-3c1f-451c-9e62-fe9c3ed486ae The Business Identifier Code (BIC) value does not contain a valid country code.
11884038-3312-4ae5-9d04-699f782130c7 The Business Identifier Code (BIC) value does not contain only contain uppercase characters.
29a2c3bb-587b-4996-b6f5-53081364cea5 The Business Identifier Code (BIC) value does not contain a valid iban country code.
183ad2de-533d-4796-a439-6d3c3852b549 The value is empty.
f196f6bd-1914-4707-a32c-20536041558f Campaign is required.
a2ad9231-e827-485f-8a1e-ef4d9a6d5c2e The Credit Card value contains non-numeric characters.
a8faedbf-1c2f-4695-8d22-55783be8efed The Credit Card value is an invalid format.
8e179f1b-97aa-4560-a02f-2a8b42e49df7 The value selected is not a valid choice.
11edd7eb-5872-4b6e-9f12-89923999fd0e The value contains too few choices.
9bd98e49-211c-433f-8630-fd1c2d0f08c3 The value contains too many choices.
2fa2158c-2a7f-484b-98aa-975522539ff8 The value has not been supplied.
7703c766-b5d5-4cef-ace7-ae0dd82304e9 The value has been supplied for an unexpected attribute.
bef8e338-6ae5-4caf-b8e2-50e7b0579e69 The value contains too few items.
756b1212-697c-468d-a9ad-50dd783bb169 The value contains too many items.
8f900c12-61bd-455d-9398-996cd040f7f0 The country value is not a valid country.
69945ac1-2db4-405f-bec7-d2772f73df52 The currency value is not a valid currency.
1a9da513-2640-4f84-9b6a-4d99dcddc628 The date-time value is not a valid date-time.
d52afa47-620d-4d99-9f08-f4d85b36e33c The date value is not a valid date.
5e797c9d-74f7-4098-baa3-94390c447b27 The time value is not a valid time.
6d99d6c3-1464-4ccf-bdc7-14d083cf455c The value is not divisible by the defined value.
bd79c0ab-ddba-46cc-a703-a7a4b08de310 The email value is not a valid email address.
478618a7-95ba-473d-9101-cabd45e49115 The value does not match the expected value.
6b3befbc-2f01-4ddf-be21-b57898905284 The value does not match the expected expression.
d2a3fb6e-7ddc-4210-8fbf-2ab345ce1998 The file value contains a file which does not exist.
c20c92a4-5bfa-4202-9477-28e800e0f6ff The file value contains a non-readable file.
5d743385-9775-4aa5-8ff5-495fb1e60137 The file value contains an empty file.
df8637af-d466-48c6-a59d-e7126250a654 The file value contains a file which is too large.
744f00bc-4389-4c74-92de-9a43cde55534 The file value contains a file which contains an invalid mime type.
778b7ae0-84d3-481a-9dec-35fdb64b1d78 The value is less than the expected value.
ea4e51d1-3342-48bd-87f1-9e672cd90cad The value is not greater than or equal to the expected value.
de78ee2c-bd50-44e2-aec8-3d8228aeadb9 The IBAN value does not contain a valid country code.
8d3d85e4-784f-4719-a5bc-d9e40d45a3a5 The IBAN value contains invalid characters.
b9401321-f9bf-4dcb-83c1-f31094440795 The IBAN value checksum failed.
c8d318f1-2ecc-41ba-b983-df70d225cf5a The IBAN value is not in the correct format.
e2c259f3-4b46-48e6-b72e-891658158ec8 The IBAN value contains an unsupported country code.
2a8cc50f-58a2-4536-875e-060a2ce69ed5 The value is not identical to the defined value.
6d55c3f4-e58e-4fe3-91ee-74b492199956 The Image value size could not be determined.
7f87163d-878f-47f5-99ba-a8eb723a1ab2 The Image value is too wide.
9afbd561-4f90-4a27-be62-1780fc43604a The Image value is too narrow.
7efae81c-4877-47ba-aa65-d01ccb0d4645 The Image value is too tall.
aef0cb6a-c07f-4894-bc08-1781420d7b4c The Image value is too short.
1b06b97d-ae48-474e-978f-038a74854c43 The Image value contains too few pixels.
ee0804e8-44db-4eac-9775-be91aaf72ce1 The Image value contains too many pixels.
70cafca6-168f-41c9-8c8c-4e47a52be643 The Image value aspect radio is too big.
59b8c6ef-bcf2-4ceb-afff-4642ed92f12e The Image value aspect radio is too small.
5d41425b-facb-47f7-a55a-de9fbe45cb46 The Image value cannot be square.
6f895685-7cf2-4d65-b3da-9029c5581d88 The Image value cannot be landscape.
65608156-77da-4c79-a88c-02ef6d18c782 The Image value cannot be portrait.
5d4163f3-648f-4e39-87fd-cc5ea7aad2d1 The Image value is corrupted.
b1b427ae-9f6f-41b0-aa9b-84511fbb3c5b The value does not match the format for a valid IP address.
949acbb0-8ef5-43ed-a0e9-032dfd08ae45 The ISBN value contains too few characters.
3171387d-f80a-47b3-bd6e-60598545316a The ISBN value contains too many characters.
23d21cea-da99-453d-98b1-a7d916fbb339 The ISBN value contains invalid characters.
2881c032-660f-46b6-8153-d352d9706640 The ISBN value checksum failed.
fa54a457-f042-441f-89c4-066ee5bdd3e1 The ISBN value does not match the ISBN-10 or ISBN-13 formats.
d53a91b0-def3-426a-83d7-269da7ab4200 The value is not false.
60d2f30b-8cfa-4372-b155-9656634de120 The value is not null.
6a20dd3d-f463-4460-8e7b-18a1b98abbfb The ISSN value contains too few characters.
37cef893-5871-464e-8b12-7fb79324833c The ISSN value contains too many characters.
2983286f-8134-4693-957a-1ec4ef887b15 The ISSN value does not contain hyphens.
a663d266-37c2-4ece-a914-ae891940c588 The ISSN value contains invalid characters.
7b6dd393-7523-4a6c-b84d-72b91bba5e1a The ISSN value must contain uppercase characters.
b0f92dbc-667c-48de-b526-ad9586d43e85 The ISSN value checksum failed.
2beabf1c-54c0-4882-a928-05249b26e23b The value is not true.
0789c8ad-2d2b-49a4-8356-e2ce63998504 The JSON value contains invalid JSON syntax.
ee65fec4-9a20-4202-9f39-ca558cd7bdf7 The Language value contains an invalid language.
9ff3fdc4-b214-49db-8718-39c315e33d45 The value contains too few characters.
d94b19cc-114f-4f44-9cc4-4138e80a87b9 The value contains too many characters.
35e6a710-aa2e-4719-b58e-24b35749b767 The value contains invalid characters for the defined character set.
079d7420-2d13-460c-8756-de810eeb37d2 The value is greater than the expected value.
30fbb013-d015-4232-8b3b-8f3be97a7e14 The value is not less than or equal to the expected value.
a0af4293-1f1a-4a1c-a328-979cba6182a2 The Locale value does not contain a valid locale.
dfad6d23-1b74-4374-929b-5cbb56fc0d9e The Luhn value contains invalid characters.
4d760774-3f50-4cd5-a6d5-b10a3299d8d3 The Luhn value checksum failed.
c1051bb4-d103-4f74-8988-acbcafc7fdc3 The value is blank.
d9bcdbfe-a9d6-4bfa-a8ff-da5fd93e0f6d The Password value has been compromised. e.g. the Password value has been made public by a data breach.
aa2e33da-25c8-4d76-8c6c-812f02ea89dd The value is not equal to the defined value.
4aaac518-0dda-4129-a6d9-e216b9b454a0 The value is not identical to the defined value.
ad32d13f-c3d4-423b-909a-857b961eb720 The value is null.
ad9a9798-7a99-4df7-8ce9-46e416a1e60b The numeric value does not exclusively contain numeric characters.
2d28afcb-e32e-45fb-a815-01c431a86a69 The numeric value is too high and exists outside the defined range.
76454e69-502c-46c5-9643-f447d837c4d5 The numeric value is too low and exists outside the defined range.
de1e3db3-5ed4-4941-aae4-59f3667cc3a3 The value does not match the defined regular expression.
9d27b2bb-f755-4fbf-b725-39b1edbdebdf The Time value does not match the time format.
8532f9e1-84b2-4d67-8989-0818bc38533b The Time value does not present a valid time value.
5ce113e6-5e64-4ea2-90fe-d2233956db13 The Timezone value does not contain a valid value.
b57767b1-36c0-40ac-a3d7-629420c775b8 The Timezone value does not exist within the defined zone.
c4a22222-dc92-4fc0-abb0-d95b268c7d0b The Timezone value does not exist within the defined country.
45863c26-88dc-41ba-bf53-c73bd1f7e90d The Timezone value is an invalid internationalization code.
ba785a8c-82cb-4283-967c-3cf342181b40 The value has not been supplied in the correct format. e.g. as a number 1 rather than a quoted value "1".
7911c98d-b845-4da0-94b7-a8dac36bc55a The value does not contain unique elements.
57c2f299-1154-4870-89bb-ef3b1f5ad229 The URL value does not contain a value URL.
aa314679-dac9-4f54-bf97-b2049df8f2a3 The UUID value contains too few characters.
494897dd-36f8-4d31-8923-71a8d5f3000d The UUID value contains too many characters.
51120b12-a2bc-41bf-aa53-cd73daf330d0 The UUID value contains invalid characters.
98469c83-0309-4f5d-bf95-a496dcaa869c The UUID value contains hyphens in invalid positions.
21ba13b4-b185-4882-ac6f-d147355987eb The UUID value contains an invalid version number.
164ef693-2b9d-46de-ad7f-836201f0c2db The UUID value's first two characters do not sum to ten.
f645b551-53ae-4e8b-8ce8-1c747e9df1e2 This value is already used.

Authorized (Code 401)

If there is an error with your authentication credentials, you’ll receive a “401 Unauthorized” http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Code Description
39b4b7c2-e5b9-41b1-83d4-db3b23b5ebfa The authentication credentials are missing or are an invalid User application key and User API key combination.

Sample JSON response body when no credentials has been supplied.

{
  "error": {
    "errors": [
      {
        "property": "",
        "message": "Your API credentials can be found in Account settings. 'Username' will be your 'User application key' and 'Password' will be your 'User API key'.",
        "code": "39b4b7c2-e5b9-41b1-83d4-db3b23b5ebfa",
        "type": "unauthorised"
      }
    ],
    "message": "Unauthorized",
    "code": "401"
  }
}

Sample JSON response body when an invalid User application key and User API key combination has been supplied.

{
  "error": {
    "errors": [
      {
        "property": "",
        "message": "Your 'User application key' and 'User API key' combination is invalid.",
        "code": "39b4b7c2-e5b9-41b1-83d4-db3b23b5ebfa",
        "type": "unauthorised"
      }
    ],
    "message": "Unauthorized",
    "code": "401"
  }
}

Forbidden (Code 403)

If there is an denial of access to a resouce within your request, you’ll receive a “403 Forbidden“ http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Code Description
76fb121a-d769-4293-852d-3b9b6a3dcce8 Access has not been permitted to a resource or to perform an action.
16bd7f4a-bf84-45c3-aa95-9b32aeb139b0 Access has not been permitted to a resource or to perform an action.
f0b71be3-c8be-4ff2-893e-2bc7f7a18156 There are terms and conditions that need to be acknowledged before continuing.
{
  "error": {
    "errors": [
      {
        "property": "[campaigns][0]",
        "message": "You do not have \"view\" access on this entity.",
        "code": "16bd7f4a-bf84-45c3-aa95-9b32aeb139b0",
        "type": "unauthorised"
      }
    ],
    "code": "403",
    "message": "Forbidden"
  }
}

Not Found (Code 404)

If there is an error locating a requested resource, you’ll receive a “404 Not Found" http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Code Description
0d528fb3-569c-45fa-b2b5-309b360bf9fa A route has not been found to match the supplied URL.

Sample JSON response body when an invalid URL has been requested.

{
  "error": {
    "errors": [
      {
        "property": "",
        "message": "No route found for \"POST \/foo\"",
        "code": "0d528fb3-569c-45fa-b2b5-309b360bf9fa",
        "type": "not_found"
      }
    ],
    "message": "Not Found",
    "code": "404"
  }
}

Method Not Allowed (Code 405)

If there is an error accessing a resource using the given HTTP verb, you’ll receive a “405 Method Not Allowed“ http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Code Description
5fe5c44b-f299-4fa6-bda4-bf80fecf6093 A route has been found which matches the supplied URL but cannot be accessed via the HTTP verb.

Sample JSON response body when an valid URL has been requested with an invalid request method.

{
  "error": {
    "errors": [
      {
        "property": "",
        "message": "No route found for \"POST \/foo\": Method Not Allowed (Allow: GET)",
        "code": "5fe5c44b-f299-4fa6-bda4-bf80fecf6093",
        "type": "routing_error"
      }
    ],
    "message": "Method Not Allowed",
    "code": "405"
  }
}

Too Many Requests (Code 429)

This error code indicates that too many requests were sent within a period of time. See Rate limits for more information on this.

Sample JSON response body when a rate limit is hit.

    {
      "error": {
        "errors": [
          {
            "property": "",
            "message": "You have made too many requests recently, please try again later.",
            "code": "3b22ff00-96a5-4fa4-96cc-f36e68dbd2e2",
            "type": "too_many_requests"
          }
        ],
        "message": "Too Many Requests",
        "code": "429"
      }
    }

Internal System Error (Code 500)

If there is an internal error, you’ll receive a “500 Internal Server Error“ http response. The body of the response will be JSON with the errors attribute containing an array of details of the error(s).

Code Description
a72717b1-0ecb-4d74-a77f-3e3702a2c8d5 A non-specific error has occured.
c2b63ca9-e15b-48ee-bcf0-0469a2f52047 A connection to a remote service could not be established, this could be related to an outage or an invalid request.
03b1fdbe-ce8a-4de7-b850-b5e4bccf7f81 A remote service encountered an error, this could be related to an outage or an invalid request.

Date Time

v3 API endpoints use ISO-8601 date time format.

Example:

2019-03-01T12:01:00+00:00 - this example represents 1 minute past midday on the 1st of March 2019 in UTC.

2019-03-01 - date only example

Partner Details

Retrieve Partner

Outputs the specified partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

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

Update Partner

Update the specified Partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Request Body schema: application/json
One of
company_logo
string Nullable

Url of image to download. Supports PNG and JPEG only.

abn
string
account_name
string
campaign_select
string
company_name
string
company_division
string
contact_email
string <email>
contact_locale
string (Locale)
Enum: "bg" "cs" "da" "de" "de_at" "en" "en_au" "en_ca" "en_us" "es" "es_mx" "el" "et" "fi" "fl" "fr" "fr_ca" "hu" "id" "it" "jp" "ko" "ko_kr" "lt" "lv" "ms_my" "mt" "my" "nl" "no" "pl" "po" "pt" "pt_br" "ro" "ru" "sg" "sk" "sl" "sv" "sv_se" "th" "tl" "tr" "vi" "zh_cn" "zh_hk"
contact_name
string
default_currency
string (Currency)
Enum: "GBP" "USD" "EUR" "JPY"
description
string

HTML description of the partner. Supports the following tags: <b>, <i>, <u>, <del>, <h1-h3>, <p>, <blockquote>, <pre>, <span>, <a href="" target="">, <img src="">, <ul>, <ol>, <li>, <br>

foreign_identifier
string
gst_registered
string
im_provider
string
im_username
string
is_affiliate_user
string (YesOrNo)
Enum: "y" "n"
is_foreign_network
string (YesOrNo)
Enum: "y" "n"
is_lead_user
string (YesOrNo)
Enum: "y" "n"
network_notes
string
network_status
string (Status)
Enum: "a" "p" "r" "n"
operating_country
string (Country)
Enum: "AD" "AE" "AF" "AG" "AI" "AL" "AM" "AO" "AQ" "AR" "AS" "AT" "AU" "AW" "AX" "AZ" "BA" "BB" "BD" "BE" "BF" "BG" "BH" "BI" "BJ" "BL" "BM" "BN" "BO" "BQ" "BR" "BS" "BT" "BV" "BW" "BY" "BZ" "CA" "CC" "CD" "CF" "CG" "CH" "CI" "CK" "CL" "CM" "CN" "CO" "CR" "CU" "CV" "CW" "CX" "CY" "CZ" "DE" "DJ" "DK" "DM" "DO" "DZ" "EC" "EE" "EG" "EH" "ER" "ES" "ET" "FI" "FJ" "FK" "FM" "FO" "FR" "GA" "GB" "GD" "GE" "GF" "GG" "GH" "GI" "GL" "GM" "GN" "GP" "GQ" "GR" "GS" "GT" "GU" "GW" "GY" "HK" "HM" "HN" "HR" "HT" "HU" "ID" "IE" "IL" "IM" "IN" "IO" "IQ" "IR" "IS" "IT" "JE" "JM" "JO" "JP" "KE" "KG" "KH" "KI" "KM" "KN" "KP" "KR" "KW" "KY" "KZ" "LA" "LB" "LC" "LI" "LK" "LR" "LS" "LT" "LU" "LV" "LY" "MA" "MC" "MD" "ME" "MF" "MG" "MH" "MK" "ML" "MM" "MN" "MO" "MP" "MQ" "MR" "MS" "MT" "MU" "MV" "MW" "MX" "MY" "MZ" "NA" "NC" "NE" "NF" "NG" "NI" "NL" "NO" "NP" "NR" "NU" "NZ" "OM" "PA" "PE" "PF" "PG" "PH" "PK" "PL" "PM" "PN" "PR" "PS" "PT" "PW" "PY" "QA" "RE" "RO" "RS" "RU" "RW" "SA" "SB" "SC" "SD" "SE" "SG" "SH" "SI" "SJ" "SK" "SL" "SM" "SN" "SO" "SR" "SS" "ST" "SV" "SX" "SY" "SZ" "TC" "TD" "TF" "TG" "TH" "TJ" "TK" "TL" "TM" "TN" "TO" "TR" "TT" "TV" "TW" "TZ" "UA" "UG" "UM" "US" "UY" "UZ" "VA" "VC" "VE" "VG" "VI" "VN" "VU" "WF" "WS" "XK" "YE" "YT" "ZA" "ZM" "ZW"
phone
string

Primary contact telephone number

phone_area
string

Phone prefix to declare country or region

promotional_method
integer
reporting_identifier
string
reporting_timezone
string
uk_vat_registered
string (YesOrNo)
Enum: "y" "n"
us_tax_state
string
vat_number
integer
vertical
integer
week_start
string

Responses

Request samples

Content type
application/json
Example
{}

Response samples

Content type
application/json
{
  • "status": {
    },
  • "publisher": {
    }
}

Websites

List all Partner Websites

Return the details of all Websites attached to the Partner account.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "websites": [
    ]
}

Create Partner Website

Create one or more Websites against the Partner entity. Each Website is sent as an array within a top level websites array.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Request Body schema: application/json
Any of
publisher_id
string

ID of the partner the website belongs to

active
string (YesOrNo)
Enum: "y" "n"
primary
string (YesOrNo)
Enum: "y" "n"
website_country
string (Country)
Enum: "AD" "AE" "AF" "AG" "AI" "AL" "AM" "AO" "AQ" "AR" "AS" "AT" "AU" "AW" "AX" "AZ" "BA" "BB" "BD" "BE" "BF" "BG" "BH" "BI" "BJ" "BL" "BM" "BN" "BO" "BQ" "BR" "BS" "BT" "BV" "BW" "BY" "BZ" "CA" "CC" "CD" "CF" "CG" "CH" "CI" "CK" "CL" "CM" "CN" "CO" "CR" "CU" "CV" "CW" "CX" "CY" "CZ" "DE" "DJ" "DK" "DM" "DO" "DZ" "EC" "EE" "EG" "EH" "ER" "ES" "ET" "FI" "FJ" "FK" "FM" "FO" "FR" "GA" "GB" "GD" "GE" "GF" "GG" "GH" "GI" "GL" "GM" "GN" "GP" "GQ" "GR" "GS" "GT" "GU" "GW" "GY" "HK" "HM" "HN" "HR" "HT" "HU" "ID" "IE" "IL" "IM" "IN" "IO" "IQ" "IR" "IS" "IT" "JE" "JM" "JO" "JP" "KE" "KG" "KH" "KI" "KM" "KN" "KP" "KR" "KW" "KY" "KZ" "LA" "LB" "LC" "LI" "LK" "LR" "LS" "LT" "LU" "LV" "LY" "MA" "MC" "MD" "ME" "MF" "MG" "MH" "MK" "ML" "MM" "MN" "MO" "MP" "MQ" "MR" "MS" "MT" "MU" "MV" "MW" "MX" "MY" "MZ" "NA" "NC" "NE" "NF" "NG" "NI" "NL" "NO" "NP" "NR" "NU" "NZ" "OM" "PA" "PE" "PF" "PG" "PH" "PK" "PL" "PM" "PN" "PR" "PS" "PT" "PW" "PY" "QA" "RE" "RO" "RS" "RU" "RW" "SA" "SB" "SC" "SD" "SE" "SG" "SH" "SI" "SJ" "SK" "SL" "SM" "SN" "SO" "SR" "SS" "ST" "SV" "SX" "SY" "SZ" "TC" "TD" "TF" "TG" "TH" "TJ" "TK" "TL" "TM" "TN" "TO" "TR" "TT" "TV" "TW" "TZ" "UA" "UG" "UM" "US" "UY" "UZ" "VA" "VC" "VE" "VG" "VI" "VN" "VU" "WF" "WS" "XK" "YE" "YT" "ZA" "ZM" "ZW"
website_name
string
website_type
number
website_type_name
string
website_url
required
string
website_vertical
number
website_vertical_name
string

Responses

Request samples

Content type
application/json
Example
{
  • "publisher_id": "string",
  • "active": "y",
  • "primary": "y",
  • "website_country": "AD",
  • "website_name": "string",
  • "website_type": 0,
  • "website_type_name": "string",
  • "website_url": "string",
  • "website_vertical": 0,
  • "website_vertical_name": "string"
}

Response samples

Content type
application/json; charset=utf-8
{
  • "websites": [
    ]
}

Update Partner Websites

Update one or more Websites against the Partner entity. Each Website is sent as an array within a top level websites array and must contain its associated website_id.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Request Body schema: application/json
Array of objects (Partner_Website)

Responses

Request samples

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

Response samples

Content type
application/json; charset=utf-8
{
  • "websites": [
    ]
}

Retrieve a Partner Website

Retrieves the specified partner website.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

website_id
required
string
Example: 11l18694

ID of the partner website

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "website": {
    }
}

Databases

List Partner Databases

Return the details of all Databases attached to the Partner account.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "databases": [
    ]
}

Create Partner Database

Create one or more Databases against the partner entity. Each Database is sent as an array within a top level databases array.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Request Body schema: application/json
Any of
publisher_id
string

ID of the partner the database belongs to

active
string (YesOrNo)
Enum: "y" "n"
creation_method
required
string
database_name
required
string
female
number
male
number
max_age
number
min_age
number
size
required
number

Responses

Request samples

Content type
application/json
Example
{
  • "publisher_id": "string",
  • "active": "y",
  • "creation_method": "string",
  • "database_name": "string",
  • "female": 0,
  • "male": 0,
  • "max_age": 0,
  • "min_age": 0,
  • "size": 0
}

Response samples

Content type
application/json; charset=utf-8
{
  • "databases": [
    ]
}

Update Partner Databases

Update one or more Databases against the Partner entity. Each Database is sent as an array within a top level databases array and must contain its associated database_id.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Request Body schema: application/json
Array of objects (Partner_Database_Wrapper)

Responses

Request samples

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

Response samples

Content type
application/json; charset=utf-8
{
  • "databases": [
    ]
}

Retrieve a Partner Database

Retrieves the specified Partner Database.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

database_id
required
string
Example: 111111l300347

ID of the partner database

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "database": {
    }
}

Brand Discovery (v2)

List Brands & Campaigns

Returns all campaigns available for a partner to join, grouped by brand. Each campaign will include a status: for the partner:-

  • AVAILABLE
  • REQUESTED
  • INVITED
  • REJECTED
path Parameters
publisherId
required
string

ID of the partner

Responses

Response samples

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

Retrieve a Brand

Returns one advertiser with a list of campaigns availabe for a partner to join. Each campaign will include a status: for the partner:-

  • AVAILABLE
  • REQUESTED
  • INVITED
  • REJECTED
path Parameters
publisherId
required
string

ID of the partner

advertiserId
required
string

ID of the brand

Responses

Response samples

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

Campaigns (v1)

List Campaigns

View all Campaigns that the Partner is associated with, along with the status of any Participation.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

status
required
string
Example: a

The status of the partner on the campaign

  • a - approved

  • p - pending

  • r - rejected

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "campaigns": [
    ]
}

Request Access to Campaigns (Obsolete)

This endpoint is now Obsolete. Use the Create Campaign Requests endpoint instead.

Request access to one or more Campaigns. If a Campaign has any custom Terms and Conditions then the Partner must agree to these terms when requesting access. This is achieved by passing the latest terms_id from the relevant Campaign object. On certain Campaigns, you may find that a Partner will be auto-approved. However, some Brands will stipulate that they wish to review all Participations. Therefore, once access is requested the Partner will be shown as pending until this decision is made. Create new Participations by passing each campaign_id along with the relevant terms_id (if applicable) in an object within a campaigns array.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

status
string
Example: a

The status of the partner on the campaign

  • a - approved

  • p - pending

  • r - rejected

Request Body schema: application/json
campaigns
array

Responses

Request samples

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

Response samples

Content type
application/json; charset=utf-8
{
  • "campaigns": [
    ]
}

Campaign Invitations (v2)

List Invitations

See all invites available to a partner grouped by brand

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "advertisers": [
    ],
  • "count": 1,
  • "execution_time": "0.98709 seconds"
}

Accept Campaign Invitiations

Allows a partner to accept one of many of their invitations.

path Parameters
publisherId
required
string

ID of the partner

Request Body schema: application/json
campaign_ids
required
Array of strings

Campaign IDs to which the Partner has been invited

Responses

Request samples

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

Decline Campaign Invitiations

Allows a partner to decline one of many of their invitations.

path Parameters
publisherId
required
string

ID of the partner

Request Body schema: application/json
campaign_ids
required
Array of strings

Campaign IDs to which the Partner has been invited

Responses

Request samples

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

Campaign Requests (v2)

Create Campaign Requests

Allows a partner to make requests to join campaigns.

path Parameters
publisherId
required
string

ID of the partner

Request Body schema: application/json
required
Array of objects

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "success_count": 1,
  • "failure_count": 0,
  • "execution_type": "0.34642 seconds"
}

Campaign References (v1)

Lists Campaign References

Lists campaign references

path Parameters
publisher_id
required
string
Example: 1111l123

ID of partner

Responses

Response samples

Content type
application/octet-stream; charset=utf-8
Advertiser,Campaign,camref Leadsbox,Healthcare,6

Creatives (v1)

List all Creatives on each participating Campaign

View a summary of all Creatives available on each participating Campaign.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "campaign_creatives": [
    ]
}

List Creatives on a Campaign

View all Creatives for the specified Campaign.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

campaign_id
required
string
Example: 10l176

ID of the campaign

query Parameters
status
string (YesOrNo)
Enum: "y" "n"
Example: status=y

Filter creatives by active status

tags
string
Example: tags=any-value

Filter by tags

array or string
Example: creative_type_id=111l10

Filter by creative_type_id

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "creatives": [
    ]
}

Feeds (v1)

List all Available Feeds

View all Feeds for the specified Partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

query Parameters
campaign_id
string
Example: campaign_id=10l176

ID of the campaign to restrict output to

active
string (YesOrNo)
Enum: "y" "n"
Example: active=y

Filter by active

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "campaigns": [
    ],
  • "count": 1,
  • "execution_time": "0.53595 seconds"
}

Terms and Conditions

Retrieve Partner Custom Terms and Conditions (v1)

Retrieve Custom Terms and Conditions for a given partner and terms and conditions id

path Parameters
publisher_id
required
string
Example: 1111l123

ID of partner whose terms we want to read

custom_terms_id
required
string
Example: 1111l564

ID of custom terms

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "custom_terms": [
    ],
  • "execution_time": "1.05973 seconds"
}

List Terms and Conditions (v2)

View combined terms & conditions for the given Campaigns(s) and Network(s). If a partner has custom campaign terms, these will be shown in place of the standard campaign terms. Terms content for standard campaign and network terms is return as HTML. For campaign custom partner terms, the content is returned as JSON which can be parsed and rendered to HTML using the Slate framework.

path Parameters
publisherId
required
string

ID of the partner

query Parameters
campaigns
required
array

comma seperated list of Campaign IDs

Responses

Response samples

Content type
application/json
{
  • "count": 3,
  • "terms": [
    ]
}

Voucher Codes (v1)

List Campaign Voucher Codes

View all Voucher codes for a campaign that the Partner is associated with

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

campaign_id
required
string
Example: 111111l13

ID of the campaign

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "count": 1,
  • "commission_fields": [
    ],
  • "voucher_codes": [
    ]
}

Commissions

Get Default Commissions

Get Partner Default Commissions

path Parameters
campaignId
required
string

The ID of the campaign for which to get partner commission rates

publisherId
required
string

The ID of a Partner on a campaign

Responses

Response samples

Content type
application/json
{
  • "description": "The Default Commission",
  • "performance_value": "2.5",
  • "performance_model": "fixed_cpa",
  • "last_modified_by": "3",
  • "last_modified": "2010-01-01 12:30:00",
  • "publishers": {
    },
  • "groups": {
    }
}

List Partner Commissions For Specific Campaign

This endpoint lists partner commissions for the given partner and campaign.

path Parameters
publisherId
required
string

The ID of the Partner to list commissions for

campaignId
required
string

The ID of the campaign to list the Partner commissions for

Responses

Response samples

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

List Active Partner Commissions

This endpoint lists all active commissions including default, standard, voucher and promotional commissions for a partner a campaign

path Parameters
campaignId
required
string

The ID of the campaign to list the commissions for

publisherId
required
string

The ID of a Partner on a campaign

query Parameters
at
string <date-time>

The date and time to show the active commissions for. If not set defaults to now.

Responses

Response samples

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

Voucher Commissions

List Partner Voucher Commissions For Specific Campaign

This endpoint lists partner voucher commissions for the given partner and campaign.

path Parameters
publisherId
required
string

The ID of the partner to list commissions for

campaignId
required
string

The ID of the campaign to list the partner commissions for

Responses

Response samples

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

Promotional Commissions

List Partner Promotional Commissions For Specific Campaign

This endpoint lists partner promotional commissions for the given partner and campaign.

path Parameters
publisherId
required
string

The ID of the Partner to list commissions for

campaignId
required
string

The ID of the campaign to list the Partner commissions for

Responses

Response samples

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

Tiered Commissions

List Partner Tiered Commissions For Specific Campaign

This endpoint lists partner tiered commissions for the given partner and campaign.

path Parameters
publisherId
required
string

The ID of the Partner to list commissions for

campaignId
required
string

The ID of the campaign to list the Partner commissions for

Responses

Response samples

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

Commission Groups (v1)

List Partner Commission Groups

This endpoint lists all commission groups for a partner.

path Parameters
publisherId
required
string

The ID of a Partner

Responses

Response samples

Content type
application/json
{
  • "count": 2,
  • "execution_time": "0.02571 seconds",
  • "commission_groups": [
    ]
}

Transaction Queries

List all Transaction Queries

Return the details of all Transaction Queries created by the Partner account.

query Parameters
transaction_query_id
string
Example: transaction_query_id=1l1000532

Filter by the ID of a transaction query

transaction_query_type
string
Example: transaction_query_type=untracked

Filter by the type

publisher_reference
string
Example: publisher_reference=A200FG1

Filter by a partner reference

conversion_reference
string
Example: conversion_reference=AF222PO

Filter by a conversion reference

conversion_date_time
string
Example: conversion_date_time=2017-01-01 00:00:00

Filter by a conversion date

campaign_id
string
Example: campaign_id=10l176

Filter by the ID of a campaign

current_state
string
Example: current_state=pending

Filter by the current state

date_range_column
string
Example: date_range_column=created_at

Field to filter the date range on

date_range_start
string
Example: date_range_start=2017-01-01 00:00:00

Start of a date range

date_range_end
string
Example: date_range_end=2017-12-30 00:00:00

End of a date range

text_date
string
Example: text_date=last 10 days

Natural language representation of a date range

sort_column
string
Example: sort_column=created_at

Field to sort the results by

order_by
string
Example: order_by=ASC

Direction to sort the results by

tq_export
string
Example: tq_export=true

Download the results as a CSV file

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "count": 5,
  • "execution_time": "0.08001 seconds",
  • "filters": { },
  • "sort": {
    },
  • "transaction_queries": [
    ]
}

Create Transaction Queries

Create one or more Transaction Queries. The fields required depends on the type of TQ being created: - Untracked: conversion_reference, camref, conversion_value, expected_commission, conversion_date_time - Incorrect commission: conversion_reference, camref, expected_commission - Declined: conversion_reference, camref

Request Body schema: application/json
transaction_queries
array

Responses

Request samples

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

Response samples

Content type
application/json; charset=utf-8
{
  • "execution_time": "1.16076 seconds",
  • "job": {
    }
}

Delete a Transaction Query

Delete a single Transaction Query. Once a Transaction Query has been approved or rejected it cannot be deleted.

path Parameters
transaction_query_id
required
string
Example: 1l1000532

ID of the transaction query

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "execution_time": "1.16076 seconds",
  • "transaction_query": {
    }
}

Self-billing

Once funds have been received from the Brand, Partnerize will allocate all Commissions to the relevant Partners.

List all Selfbills

View all Self-billing invoices that have been created for the partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

query Parameters
start_date
string
Example: start_date=2020-02-19 14:29:33

Selfbill created from start date

end_date
string
Example: end_date=2020-02-19 17:29:33

Selfbill created till end date

currency
string
Example: currency=GBP

Tracked currency

status
string
Example: status=created

Payment status

payment_start_date
string
Example: payment_start_date=2020-02-19 14:29:33

Payment paid from start date

payment_end_date
string
Example: payment_end_date=2020-02-19 17:29:33

Payment paid till end date

paid_currency
string
Example: paid_currency=GBP

Paid currency

selfbill_currency
string
Example: selfbill_currency=GBP

Selfbill currency

order
string
Example: order=paid_currency

Field to sort the results by

order_dir
string
Example: order_dir=ASC

Direction to sort the results by

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "selfbills": [
    ]
}

Retrieve a Self-billing invoice.

Retrieve an individual Self-billing invoice.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

publisher_self_bill_id
required
string
Example: 1011l5403

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "selfbill": {
    }
}

Payment Details

List Payment Details

View all Payment Details for a partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "payment_details": {
    }
}

Create Payment Details

Create Payment Details for a partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Request Body schema: application/json
Array of objects

Responses

Request samples

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

Response samples

Content type
application/json; charset=utf-8
{
  • "payment_details": {
    }
}

Available Commission

Retrieve Available Commission

Retrieve the available commission for a given partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "available_commissions": {
    }
}

Summary

Summarise value of partner's conversions

Return the details of partner's pending (shows value of pending conversions), approved (shows value of approved conversions), confirmed (amount that will be available once brand's invoice is paid), available (amount of money available to withdraw in this moment), and paid (already withdrawn) funds.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "execution_time": "2.25885 seconds",
  • "summary": {
    }
}

Jobs (v1)

Get a single job (v1)

Returns information about a single v1 job by the given ID.

Once the job status is complete the job output can be retrieved from the path given in the hypermedia response (/job/111111l11/response.csv in the response samples).

path Parameters
jobID
required
string

Id of the job

Responses

Response samples

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

Partner Conversions

Retrieve a Partner Conversions Report

Return a mix of aggregated and basket/item level conversion data for a partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

format
required
string
Enum: "json" "xml"
Example: json

Format for the response

query Parameters
start_date
required
string
Example: start_date=2016-02-30T05:15:32Z

Start date for data to be included in the report

end_date
string
Example: end_date=2016-03-10T19:02:35Z

End date for data to be included in the report

text_date
string
Example: text_date=yesterday

Restricts the results to one of the following - this hour, last hour, today, yesterday, this week, last week, last X days, this month, last month, this year, last year.

timezone
string
Example: timezone=Europe/London

Enforce a specified Timezone.

currency[]
string (Currency)
Enum: "GBP" "USD" "EUR" "JPY"
Example: currency[]=USD

Filter the results by the specified currency

date_type
string
Example: date_type=last_modified

This parameter to run the report for conversions that have been updated. When you specify last_updated or approved_at the response will only include conversions that were last modified or approved at in approved_at a date within the report date range.

multipivot[{pivot}][]
string
Example: multipivot[{pivot}][]=value

Add a secondary pivot filter. You need to specify the pivot parameter name and the value to filter by. E.g. multipivot[campaign][]=111111l29. Supported values are: campaign, product, publisher_reference.

statuses[]
string
Example: statuses[]=approved

Filter by statuses. Available values - approved, pending, rejected

offset
string
Example: offset=0

Offset the results by a given amount. Defaults to 0.

invoice_created_date
string
Example: invoice_created_date=2016-03-10T19:02:35Z

Invoices that were created after the supplied date.

include_payment_info
boolean
Example: include_payment_info=true

Include payment information. Omit parameter or false to exclude, which is the default. Fields included are:

  • payment_status
  • self_bill_request_date
  • self_bill_release_date

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "total_conversion_count": {
    },
  • "total_publisher_commission": {
    },
  • "total_value": {
    },
  • "start_date_time_utc": "2019-08-10 00:00:00",
  • "end_date_time_utc": "2020-03-10 00:00:00",
  • "start_date_time": "2020-03-08 17:18:33",
  • "end_date_time": "2020-03-08 17:18:33",
  • "limit": 300,
  • "meta_data": [ ],
  • "count": 1,
  • "execution_time": "1.04266 seconds",
  • "conversions": [
    ]
}

Partner Clicks

Retrieve a Partner Clicks Report

Return a mix of aggregated and basket/item level click data for a partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

format
required
string
Enum: "json" "xml"
Example: json

Format for the response

query Parameters
start_date
required
string
Example: start_date=2016-02-30T05:15:32Z

Start date for data to be included in the report

end_date
string
Example: end_date=2016-03-10T19:02:35Z

End date for data to be included in the report

text_date
string
Example: text_date=yesterday

Restricts the results to one of the following - this hour, last hour, today, yesterday, this week, last week, last X days, this month, last month, this year, last year.

timezone
string
Example: timezone=Europe/London

Enforce a specified Timezone.

currency[]
string (Currency)
Enum: "GBP" "USD" "EUR" "JPY"
Example: currency[]=USD

Filter the results by the specified currency

date_type
string
Example: date_type=last_modified

This parameter to run the report for conversions that have been updated. When you specify last_updated or approved_at the response will only include conversions that were last modified or approved at in approved_at a date within the report date range.

multipivot[{pivot}][]
string
Example: multipivot[{pivot}][]=value

Add a secondary pivot filter. You need to specify the pivot parameter name and the value to filter by. E.g. multipivot[campaign][]=111111l29. Supported values are: campaign, publisher_reference.

statuses[]
string
Example: statuses[]=approved

Filter by statuses. Available values - approved, pending, rejected

offset
string
Example: offset=0

Offset the results by a given amount. Defaults to 0.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "unique_click_count": 2,
  • "start_date_time_utc": "2019-08-10 00:00:00",
  • "end_date_time_utc": "2020-03-10 00:00:00",
  • "start_date_time": "2020-03-08 17:18:33",
  • "end_date_time": "2020-03-09 14:27:15",
  • "limit": 300,
  • "offset": 0,
  • "count": 2,
  • "execution_time": "0.27682 seconds",
  • "clicks": [
    ]
}

Partner Payable

Retrieve a Partner Payable Report

Return the aggregation stats of payable commission for a particular partner.

path Parameters
publisher_id
required
string
Example: 1l1007802

ID of the partner

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "offset": 0,
  • "limit": 300,
  • "count": 0,
  • "total_conversion_count": {
    },
  • "total_commission_value": {
    },
  • "total_value": {
    },
  • "total_publisher_commission_value": {
    },
  • "execution_time": "0.55225 seconds",
  • "conversion_items": [ ]
}

Exports

Depending on the query parameters, an export request may need to be processed asynchronously. When that happens a background job will be automatically created, and the API response will describe the job rather than the export (see Jobs v1).

If the complete_email parameter has been set the export will be sent to the given address once the background job is complete.

Export a Clicks Report

Request a CSV for a granular Click report for the Partner and within the requested time period.

query Parameters
publisher_id
required
string
Example: publisher_id=1l1007802

ID of the partner.

start_date
required
string
Example: start_date=2016-02-30T05:15:32Z

Start date for data to be included in the report

end_date
required
string
Example: end_date=2016-03-10T19:02:35Z

End date for data to be included in the report

timezone
string
Example: timezone=Europe/London

Force a specified Timezone

complete_email
string
Example: complete_email=me@example.com

When used in conjunction with limit=0 send a link to the CSV when generation is complete

limit
string
Example: limit=0

When set to zero, attempt to download everything

export_reference
string
Example: export_reference=JanSales

Add a prefix to the report filename

encoding
string
Example: encoding=UTF-8
  • UTF-8 - Default encoding

  • UTF-16

delimiter
string
Example: delimiter=comma

Choose the delimiter for separating values

  • comma

  • tab

  • pipe

Responses

Response samples

Content type
application/octet-stream; charset=UTF-8
click_id,cookie_id,campaign_id,publisher_id,status,set_time,set_ip,last_used,last_ip,advertiser_reference,referer,creative_id,creative_type,specific_creative_id,country,publisher_name
111111l2210,111111l2136,10l176,1l1007802,nibbled,"2016-03-02 10:11:36",127.0.0.1,"2016-06-17 19:13:09",127.0.0.1,,,0,0,0,GB,apipublisher123

Export Conversions Report

Request a CSV for a granular Conversion report for the Partner and within the requested time period. This report will give you details of orders at the basket level

query Parameters
publisher_id
required
string
Example: publisher_id=1l1007802

ID of the partner.

start_date
required
string
Example: start_date=2016-02-30T05:15:32Z

Start date for data to be included in the report

end_date
required
string
Example: end_date=2016-03-10T19:02:35Z

End date for data to be included in the report

date_type
string
Example: date_type=standard

Alter the context of what the dates ranges apply to

  • standard - The default selection, range is beased on conversion_time

  • approved_at - Alternative date range, which is based on the approved time of conversion items

currency[]
string
Example: currency[]=GBP

Filter on a specific currency

conversion_id
string
Example: conversion_id=1l28718278

Filter on a specific conversion_id

conversion_reference
string
Example: conversion_reference=ORDER872137

Filter on a specific conversion_reference value

ref_conversion_metric_id
string
Example: ref_conversion_metric_id=2

Filter on a specific conversion metric, use an array for multiple

timezone
string
Example: timezone=Europe/London

Force a specified Timezone

complete_email
string
Example: complete_email=me@example.com

When used in conjunction with limit=0 send a link to the CSV when generation is complete

limit
string
Example: limit=0

When set to zero, attempt to download everything

export_reference
string
Example: export_reference=JanSales

Add a prefix to the report filename

encoding
string
Example: encoding=UTF-8
  • UTF-8 - Default encoding

  • UTF-16

delimiter
string
Example: delimiter=comma

Choose the delimiter for separating values

  • comma

  • tab

  • pipe

Responses

Response samples

Content type
application/octet-stream; charset=UTF-8
conversion_id,campaign_id,publisher_id,conversion_date,conversion_date_time,click_time,click_date,click_date_time,currency,advertiser_reference,conversion_reference,referer_ip,source_referer,campaign_title,publisher_name,conversion_status,conversion_lag,value,commission,publisher_commission,creative_type,creative_id,specific_creative_id,customer_type,was_disputed,cookie_id,country,currency_original,currency_conversion_rate,customer_reference,camref
111111l3919676,10l176,1l1007802,2016-03-02,"2016-03-02 10:22:02",10:11:36,2016-03-02,"2016-03-02 10:11:36",EUR,,AUTO-57643db548165,127.0.0.1,,"API Campaign Demo",apipublisher123,pending,626,90.92,1.0001,0.9092,0,0,0,,,111111l2136,GB,,,,1l3v9UA

Export Conversion Items Report

Request a CSV for a granular Conversion report which includes all individual items for the Partner and within the requested time period. In Conversion Item reports you will be able to see details of each item including individual item’s commission and value as each item will be listed on its own row within the report.

query Parameters
publisher_id
required
string
Example: publisher_id=1l1007802

ID of the partner.

start_date
required
string
Example: start_date=2016-02-30T05:15:32Z

Start date for data to be included in the report

end_date
required
string
Example: end_date=2016-03-10T19:02:35Z

End date for data to be included in the report

date_type
string
Example: date_type=standard

Alter the context of what the dates ranges apply to

  • standard - The default selection, range is beased on conversion_time

  • approved_at - Alternative date range, which is based on the approved time of conversion items

currency[]
string
Example: currency[]=GBP

Filter on a specific currency

conversion_id
string
Example: conversion_id=1l28718278

Filter on a specific conversion_id

conversion_reference
string
Example: conversion_reference=ORDER872137

Filter on a specific conversion_reference value

ref_conversion_metric_id
string
Example: ref_conversion_metric_id=2

Filter on a specific conversion metric, use an array for multiple

timezone
string
Example: timezone=Europe/London

Force a specified Timezone

include_payment_info
boolean
Example: include_payment_info=true

Include payment information. Omit parameter or false to exclude, which is the default. Fields included are:

  • payment_status
  • self_bill_request_date
  • self_bill_release_date
complete_email
string
Example: complete_email=me@example.com

When used in conjunction with limit=0 send a link to the CSV when generation is complete

limit
string
Example: limit=0

When set to zero, attempt to download everything

export_reference
string
Example: export_reference=JanSales

Add a prefix to the report filename

encoding
string
Example: encoding=UTF-8
  • UTF-8 - Default encoding

  • UTF-16

delimiter
string
Example: delimiter=comma

Choose the delimiter for separating values

  • comma

  • tab

  • pipe

Responses

Response samples

Content type
application/octet-stream; charset=UTF-8
conversion_id,campaign_id,publisher_id,conversion_date,conversion_date_time,click_time,click_date,click_date_time,currency,advertiser_reference,conversion_reference,referer_ip,source_referer,campaign_title,publisher_name,conversion_status,conversion_lag,value,commission,publisher_commission,creative_type,creative_id,specific_creative_id,customer_type,was_disputed,cookie_id,country,currency_original,currency_conversion_rate,conversion_item_id,sku,category,item_value,item_commission,item_publisher_commission,item_status,item_status_id,reject_reason,last_update,voucher_codes,customer_reference,camref,invoice_id,meta_item_cabin_code,meta_item_departure_date,meta_item_dest,meta_item_device,meta_item_origin,meta_item_passenger,meta_item_payment_method,meta_item_product_ids,meta_item_return_date
111111l3919676,10l176,1l1007802,2016-03-02,"2016-03-02 10:22:02",10:11:36,2016-03-02,"2016-03-02 10:11:36",EUR,,AUTO-57643db548165,127.0.0.1,,"API Campaign Demo",apipublisher123,pending,626,90.92,1.0001,0.9092,0,0,0,,,111111l2136,GB,,,111111l4118583,,,90.92,1.0001,0.9092,pending,1,,"2016-06-17 19:13:09",,,1l3v9UA,,,,,,,,,,

Introduction

The Analytics API provides access to our Analytical Data Platform; it has an expressive easy to use request structure that allows you to write fluent queries to access your data. There is up to 1000x speed improvement for specific queries and operations compared to the legacy Reporting (v1) API and allows for more in-depth insight into your data. The Analytics API also powers the Analytics Reporting UI.

The below covers the core concepts of the Analytics API, head over to the Tutorials section for more examples.

Metrics and Dimensions

Analytics has two common data types Dimension and Metric. Metrics are the quantitative measurements of data and dimensions are the labels used to describe them—or, in even easier terms: numeric values always express metrics while non-numerical values express dimensions. An example in the context of Analytics, total_clicks would be a metric and country would be a dimension, an in-depth explanation into each is below.

Metrics

All endpoints allow you to return one or more metrics, except for the filter endpoint, which will only return metrics if you sort by a metric.

You can supply a single metric:

"metrics": ["total_clicks"]

Or multiple metrics:

"metrics": ["total_clicks", "total_clicks_converted"]

You should request multiple metrics in one request rather than making multiple requests where possible. The metrics will be returned in the response object in the same casing they are supplied.

Metric Approximation

For performance reasons, we apply approximations by default to a small set of metric types; this is similar to how Google Analytics uses sampling techniques for aggregated metrics to improve performance.

Currently, approximations are applied to the Click Metrics; the metrics that are approximated are total_unique_clicks. Furthermore, you'll be able to identify which metrics are approximated by looking at the X-Approximate-Metrics response header.

All financial metrics, such as total_order_value and total_partner_commission are never approximated.

Dimensions

As mentioned above, a dimension is a non-numeric value. All endpoints support the ability to filter by a dimension, see the "Filtering" section below. The "Explode" and "Filter" endpoints support the ability to return the dimension values.

Data Sources and Endpoint Types

In Analytics there are three datasources:

  1. Clicks
  2. Conversions - Including Conversion Items
  3. Impressions

and there are 4 endpoint types:

  1. Count
  2. Explode
  3. Timeseries
  4. Filter

Count

A count endpoint can return one or multiple metrics, useful to present top-level figures used on Dashboards, for example.

Explode

The explode endpoint returns metrics grouped either by date or multiple dimensions (see the Tutorials for an example). It's called explode as it's 'Exploding' the data out, using a tabular format as an example it allows for grouping the data like the following:

+-------------+---------------+---------+----------+-------------------+--------------------------+
| campaign_id | campaign_name | country | currency | total_order_value | total_partner_commission |
+-------------+---------------+---------+----------+-------------------+--------------------------+
| 1           | Japan         | JP      | JPY      | 500               | 120.31                   |
+-------------+---------------+---------+----------+-------------------+--------------------------+
| 2           | Japan         | GB      | USD      | 400               | 50.12                    |
+-------------+---------------+---------+----------+-------------------+--------------------------+
| 3           | US            | US      | USD      | 300               | 31.13                    |
+-------------+---------------+---------+----------+-------------------+--------------------------+
| 4           | Italy         | IT      | EUR      | 200               | 90.00                    |
+-------------+---------------+---------+----------+-------------------+--------------------------+

Note that the explode endpoint doesn't support zero filling, meaning that if there is no data for a particular record it will be excluded from the resulting response instead of being included with zero values.

Timeseries

The Time series endpoints allow you to obtain metrics over intervals in time and ordered chronologically. Timeseries calls are performant and are great for powering plot style charts. One or multiple metrics can be requested with time series; however, it can only ever be grouped by a date-time.

URI Structures

The data source to use is embedded the the URI, with the following format:

/v3/partner/analytics/<data-source>/<endpoint>

For example, the URI for using explode on the conversions data source would be:

/v3/partner/analytics/conversions/explode

It isn't possible to retrieve data belonging to multiple data sources in one endpoint call. So for example, to get the total number of clicks and the total number of conversions, two API calls will need to be made to both the conversion and click data sources.

Explode - Group By Dimension Response Values

When using the Explode Endpoint and grouping by particular dimensions in some instances, you will be returned both an _id and _name for the dimension, while others return only the dimension. See the full list of return properties below:

Dimension Return Properties
advertiser_reference advertiser_reference
browser_family browser_family
browser_major browser_major
browser_minor browser_minor
browser_patch browser_patch
campaign campaign_id, campaign_name
category category
conversion_metric conversion_metric_id, conversion_metric_name
conversion_reference conversion_reference
conversion_status conversion_status
conversion_type conversion_type_id, conversion_type_name
country country
currency currency
customer_type customer_type
date_time date_time
device device_id, device_name
os_family os_family
os_major os_major
os_minor os_minor
os_patch os_patch
publisher_reference publisher_reference
partnership_model partnership_model_id, partnership_model_name
sku sku
traffic_source traffic_source_id, traffic_source_name
type type
user_context user_context_id, user_context_name
voucher_code voucher_code
voucher_status voucher_status

Request Structure

This section outlines the commonality of the request structures between all endpoints.

Scope

A scope is used to specify your partner_id:

"scope": {
  "partner_id": "partner_id",
}

The example above will first check you have access to the partner_id. If you do have access, you will receive results for the partner.

If you do not have access to the requested partner you will receive a 403 Forbidden response.

Date Time Ranges

For each call, you are required to provide a date-time range. You can specify multiple date ranges if you like which operate on an _OR_ basis, rather than an _AND_ basis.

You can specify a single range:

"date_time_ranges": [
  {
    "start": "2020-10-0T00:00:00",
    "end": "2020-10-31T23:59:59"
  }
]

Alternatively, you could specify multiple ranges; this example would give you results for Black Fridays for the past three years:

...
"date_time_ranges": [
  {
    "start": "2017-11-24T00:00:00",
    "end": "2017-11-24T23:59:59"
  },
  {
    "start": "2018-11-23T00:00:00",
    "end": "2018-11-23T23:59:59"
  },
  {
    "start": "2019-11-29T00:00:00",
    "end": "2019-11-29T23:59:59"
  }
]
...

Top

The top property is used to limit the number of results. If not specified it defaults to 10000 results and there is an upper limit of 50000. 10000 should be sufficient to group your data day, publisher and campaign over one month.

Filtering

The API supports filtering by multiple dimensions supporting multiple operations. Filters operate on the _AND_ basis and can be compounded.

The below is an example filtering conversions where the device is a desktop AND the country is EQUAL to US AND the currency is NOT EQUAL to GBP.


"filter_by": [
  {
    "field": "device_id",
    "value": "2"
  },
  {
    "field": "country",
    "value": "US"
  }
  {
    "field": "currency",
    "value": "GBP",
    "not": true
  }
]

Currently filtering by metrics is not yet supported.

Property Filter Values

Reference Endpoints

Below is a map of the properties that have reference endpoints. You can use these to find the available values to filter by.

Name Reference Endpoint
conversion_metric_id /reference/conversion_metric/
conversion_type_id /reference/conversion_type/
country /reference/country/
currency /reference/currency/
device_id /reference/devices/
partnership_model_id /reference/partnership_model/
traffic_source_id /reference/traffic_source/
user_context_id /reference/user_context/
Other

Below is a map of available values to filter by for properties that do not have reference endpoints.

conversion_status
approved
pending
rejected
voucher_status
expired
ignored
invalid
unknown
valid

Timezones

You can set the timezone by using the timezone property. The list of supported timezones can be found using the reference API endpoint; see /reference/timezone/.

"timezone": "CET"

You should see this timezone reflected in the offset of the date-times in the response whenever you group by date, or use the time-series endpoint.

{
  "date": "2020-04-03T00:00:00+02:00",
}

Timezone offsets such as 2020-05-01T00:00:00+02:00 will be ignored and the timezone property must be used instead.

Custom Request and Response Headers

Name Type Description
X-Total-Row-Count Response Returns the total number of rows for the given request, used within the context of the Explode endpoint. This has to be requested in the JSON body of the request setting include_total_row_count to true
X-Approximate-Metrics Response Returns a list of metrics that are approximated - see the Metric Approximation section above.

Currency Conversion

If you ask for a currency based metric, total_order_value, for example, you should also specify an output_currency using the ISO 4217 format. If you don't provide an output currency, it will default to USD. Currently, the API only supports one currency output per request. The list of supported currencies can be found using the reference API endpoint; see /reference/currencies/.

"output_currency": "GBP"

The exchange rate used is the exchange rate for the given day of the API call. This means that between day to day usage, you will experience fluctuations in the financial totals due to changing exchange rates.

Rate-limiting

To ensure the reliability of our Analytics Platform and to ensure it remains stable for all our clients, the Analytics API is rate-limited. Analytics API uses its own rate-limiting algorithm and allowance, which is separate from the rest of the Partnerize API endpoints. Its rate-limiting error responses are the same as the standard error response for v3 endpoints. See the Rate Limits section for details.

The query costs are calculated based upon the endpoint and the date-time range that is requested. The breakdown of these is shown below.

Date Range Explode Count Time Series Filter
< 1 Year 3 2 2 3
1+ Year 5 3 3 5
2+ Year 10 4 4 6
3+ year 12 5 5 7
4+ year 15 6 6 8

As an example, if you are requesting 2+ years of data from the Explode endpoint that would allow you to make a total of 6 API calls over a period of 60 seconds.

Rate Limits costs and quotas are continually reviewed. These can either increased or decreased based upon the following criteria, the volume of data for your account, to ensure platform stability or to accommodate functionality changes within the API. We, therefore, recommend that your code has the appropriate error handling and logging to accommodate for such changes.

Recommendations

To avoid being throttled, it's best to design your API integration using best practices:

  • Only request the data that your integration requires.
  • Implement caching for data that your integration uses often.
  • Ensure that your code has appropriate error handling and respecting the X-RateLimit-Retry-After header to ensure your code doesn't keep trying to make requests.
  • Modulate the rate of requests, whilst the API caters for bursty traffic, respecting the request limits will increase the stability of your integration.

Tutorials

This section contains tutorials to serve as a good jumping-off point on how to do basic queries against the Analytics API. If you have any feedback or think it would be useful to provide more examples, please reach out and let us know.

Getting single top level metrics for multiple campaigns.

Let's say for example, that you wish to get the Total Conversions Items and Total Commission in GBP; this can be achieved by using the Conversion Count Endpoint to retrieve single count metrics.

This can be done by using the /v3/partner/analytics/conversions/count endpoint.

Specify the following metrics:

{
   "metrics":[
      "total_conversion_items",
      "total_partner_commission"
   ]
}

Specify the date time range:

{
   "date_time_ranges":[
      {
         "start":"2020-10-01T00:00:00",
         "end":"2020-12-31T23:59:59"
      }
   ],
   "metrics":[
      "total_conversion_items", "total_partner_commission"
   ]
}

Then specify the output currency:

{
   "date_time_ranges":[
      {
         "start":"2020-10-01T00:00:00",
         "end":"2020-12-31T23:59:59"
      }
   ],
   "metrics":[
      "total_conversion_items", "total_partner_commission"
   ],
   "output_currency": "GBP"
}

Finally, specify your Partner ID in the scope:

{
   "scope":{
      "partner": "partner_id"
   },
   "date_time_ranges":[
      {
         "start":"2020-10-31T00:00:00",
         "end":"2020-10-31T23:59:59"
      },
      {
         "start":"2020-12-25T00:00:00",
         "end":"2020-12-25T23:59:59"
      }
   ],
   "metrics":[
      "total_conversions", "total_conversion_items"
   ],
   "output_currency": "GBP"
}

The result will look like this:

{
   "data":{
      "total_conversion_items":235,
      "total_partner_commission":1200.50
   }
}

Get the total Conversion Order Value, Commission Broken Down by Campaign, Country and Currency.

Let's say for example you want to see the total order value and commission across your top 10 campaigns broken down campaign, country and currency and sorted by the total commission which in tabular format looks like:

+-------------+---------------+---------+----------------+----------+-------------------+--------------------------+
| campaign_id | campaign_name | country | country_name   | currency | total_order_value | total_partner_commission |
|             |               |         |                |          |                   |                          |
+-------------+---------------+---------+----------------+----------+-------------------+--------------------------+
| 1           | Japan         | JP      | Japan          | JPY      | 500.00            | 123.12                   |
+-------------+---------------+---------+----------------+----------+-------------------+--------------------------+
| 1           | Japan         | GB      | United Kingdom | USD      | 400.00            | 50.12                    |
+-------------+---------------+---------+----------------+----------+-------------------+--------------------------+
| 2           | US            | US      | United States  | USD      | 350.00            | 31.33                    |
+-------------+---------------+---------+----------------+----------+-------------------+--------------------------+
| 3           | Italy         | IT      | Italy          | EUR      | 100.00            | 9.01                     |
+-------------+---------------+---------+----------------+----------+-------------------+--------------------------+

To do this you can use the /v3/partner/analytics/conversions/explode endpoint like in the previous example above.

Using the example JSON body from above this would look like:

{
   "metrics":[
      "total_order_value",
      "total_partner_commission"
   ],
   "group_by":[
      "campaign",
      "country",
      "currency"
   ],
   "order_by":[
      {
         "field":"total_partner_commission",
         "direction":"DESCENDING"
      }
   ],
   "top":10,
   "scope":{
      "partner": "partner_id"
   },
   "date_time_ranges":[
      {
         "start":"2019-01-01T00:00:00",
         "end":"2019-12-31T23:59:59"
      }
   ]
}

and a response should look like the following:

{
   "data":[
      {
         "campaign_id":"11111l63",
         "campaign_name":"Campaign 1",
         "currency": "GBP",
         "country": "US",
         "total_order_value":1000,
         "total_commission":1000,
      },
      {
         "campaign_id":"11111l65",
         "campaign_name":"Campaign 2",
         "currency": "USD",
         "country": "IT",
         "total_order_value":1000,
         "total_commission":1000,
      },
   ]
}

Get the Campaign Commision for approved and pending Converisons for one campaign broken down by Campaign and Conversion Status

Let's say you want to see the total partner commission broken down by partner and conversion status ordered by total partner commission where the conversions are approved or pending which in tabular format looks like:

To do this you can use the /v3/partner/analytics/conversions/explode endpoint like in the previous example above.

+------------+---------------+----------+---------------------------+
| campaign_id | campaign_name | status   | total_partner_commission |
|             |               |          |                          |
+-------------+---------------+----------+--------------------------+
| 1           | Campaign 1    | pending  | 200.00                   |
+-------------+---------------+----------+--------------------------+
| 1           | Campaign 1    | approved | 150.00                   |
+-------------+---------------+----------+--------------------------+
| 2           | Campaign 2    | pending  | 350.00                   |
+-------------+---------------+----------+--------------------------+
| 2           | Campaign 2    | approved | 100.00                   |
+-------------+--------------+----------+---------------------------+

To do the filtering it requires a filter_by property for both the conversion status and campaign_id

"filter_by":[
   {
      "field":"conversion_status",
      "operator":"EQUALS",
      "value":[
         "approved",
         "pending"
      ]
   },
   {
      "field":"campaign_id",
      "operator":"EQUALS",
      "value":[
         "campaign_id"
      ]
   }
]

The full request body would look like as follows:

{
   "metrics":[
      "total_partner_commission"
   ],
   "group_by":[
      "partner",
      "conversion_status"
   ],
   "order_by":[
      {
         "field":"total_partner_commission",
         "direction":"DESCENDING"
      }
   ],
   "top":10,
   "scope":{
      "partner": "partner_id"
   },
   "filter_by":[
      {
         "field":"conversion_status",
         "operator":"EQUALS",
         "value":[
            "approved",
            "pending"
         ]
      },
      {
         "field":"campaign_id",
         "operator":"EQUALS",
         "value":[
            "campaign_id"
         ]
      }
   ],
   "date_time_ranges":[
      {
         "start":"2019-01-01T00:00:00",
         "end":"2019-12-31T23:59:59"
      }
   ]
}

Get the total of number of clicks broken down by Campaign and day for all countries except the US

Let's say you want to see the total number of clicks across all your campaigns, broken down by day for all countries except the US, in a tabular format this looks like the following:

To do this you can use the /v3/partner/analytics/clicks/explode endpoint.

+---------------------------+-------------+---------------+---------+----------------+--------------+
| date_time                 | campaign_id | campaign_name | country | country_name   | total_clicks |
|                           |             |               |         |                |              |
+---------------------------+-------------+---------------+---------+----------------+--------------+
| 2020-03-02T00:00:00+02:00 | 1           | Campaign 1    | JP      | Japan          | 2000         |
+---------------------------+-------------+---------------+---------+----------------+--------------+
| 2020-03-02T00:00:00+02:00 | 1           | Campaign 2    | IT      | Italy          | 1000         |
+---------------------------+-------------+---------------+---------+----------------+--------------+
| 2020-03-03T00:00:00+02:00 | 1           | Campaign 2    | GB      | United Kingdom | 500          |
+---------------------------+-------------+---------------+---------+----------------+--------------+
| 2020-03-03T00:00:00+02:00 | 1           | Campaign 4    | DE      | Germany        | 250          |
+---------------------------+-------------+---------------+---------+----------------+--------------+

To group it by day you need to set the interval - this is in ISO 8601 duration format. For example, one day is P1D, or if you want it by month P1M or even hourly PT1H.

The request body would look the following: - note the not property in filter_by. This is the equivalent of saying NOT EQUAL

{
   "metrics":[
      "total_clicks"
   ],
   "group_by":[
      "date_time",
      "campaign",
      "country"
   ],
   "order_by":[
      {
         "field":"total_clicks",
         "direction":"DESCENDING"
      }
   ],
   "top":10,
   "scope":{
      "partner": "partner_id"
   },
   "filter_by":[
      {
         "field":"country",
         "operator":"EQUALS",
         "value":[
            "US"
         ],
         "not": true
      }
   ],
   "interval": {
      "field": "date_time",
      "period": "P1D"
   },
   "date_time_ranges":[
      {
         "start":"2019-01-01T00:00:00",
         "end":"2019-12-31T23:59:59"
      }
   ]
}

It's essential to understand that Explode does not support zero filling - so if there isn't data for particular interval it will not be returned in the response, to use zero filling then please use the Time Series endpoint. Furthermore, if you don't need to group by multiple dimensions, then we recommend using the TimeSeries endpoint, which is much faster and costs less rate-limiting tokens. See the tutorial below for an example. Note when grouping by date using the explode endpoint you don't get a start_date and end_date like the TimeSeries endpoint.

Using the TimeSeries endpoint to show the total conversion items and commission over time

As previously mentioned above, the time-series endpoint is much more performant, and the query cost will be less. Let's say you want to render a chart, and want to plot over a week in daily intervals how many conversion items have been tracked along with the commission. The timeseries endpoint will return data grouped by a specified date interval. It also supports zero filling - so if there isn't data for a particular interval, the metrics will be set to zero. The zero filling is what makes the Timeseries endpoint ideal for creating charts and graphs. Again, we highly recommend this over using the Explode endpoint.

Use the POST method on the URI /v3/partner/analytics/conversions/timeseries.

With the request body of:

{
   "metrics":[
      "total_conversion_items",
      "total_partner_commission"
   ],
   "output_currency":"GBP",
   "interval":{
      "period":"P1D"
   },
   "scope":{
      "partner": "partner_id"
   },
   "date_time_ranges":[
      {
         "start":"2019-01-01T00:00:00",
         "end":"2019-12-31T23:59:59"
      }
   ]
}

The endpoint result would look like:

{
  "data": [
    {
      "date_time_range": {
        "start": "2020-03-01T00:00:00+00:00",
        "end": "2020-03-02T00:00:00+00:00"
      },
      "total_conversions": 151,
      "total_order_value": 34300.311980922306
    },
    {
      "date_time_range": {
        "start": "2020-03-02T00:00:00+00:00",
        "end": "2020-03-03T00:00:00+00:00"
      },
      "total_conversion_items": 145,
      "total_commission": 45835.76083435612
    }
}

A notable difference is that for TimeSeries you get a start and end date in the response body unlike the Explode endpoint when grouping by date.

Clicks

Endpoints for analysing click data

Count

Returns aggregated metrics derived from clicks.

This endpoint is ideal for creating dashboard widgets, or for creating a summary of tabulated data from the explode endpoint.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Enum: "total_clicks" "total_clicks_converted" "click_conversion_rate" "total_unique_clicks"

Array of metrics which should be included in the result.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

include_comparison_percentage_change
boolean
Default: false

A boolean flag to indicate whether percentage changes should be output when using comparison.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "filter_by": [
    ],
  • "timezone": "GMT"
}

Response samples

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

Explode

Returns aggregated metrics derived from clicks, grouped by ID and name of one or many dimensions. This endpoint is ideal for fetching data to be shown in a table. You can combine it with the count endpoint to fetch data for a totals row.

If order_by is requested on a metric, the metric values will be added to the results, even if not requested.

When grouping by date, the interval will define the length of each date group.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Enum: "total_clicks" "total_clicks_converted" "click_conversion_rate" "total_unique_clicks"

Array of metrics which should be included in the result.

group_by
required
Array of strings non-empty unique
Items Enum: "advertiser_reference" "browser_family" "browser_major" "browser_minor" "browser_patch" "campaign" "country" "creative" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "publisher_reference" "partnership_model" "traffic_source" "type" "user_context"

Dimensions which the data should be grouped by.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

Array of objects non-empty

Priority list of ordering objects

object

To group the data into buckets of time. In the context of Explode this is used when grouping by date_time

output_date_time_format
string

Dates will be formatted with the Joda date format string given. If no format is supplied here, ISO8601 format will be used. For details of how to construct a format string, see https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html

top
integer [ 1 .. 50000 ]
Default: 50000
include_total_row_count
boolean
Default: false

A boolean flag to indicate whether an extra header (X-Total-Row-Count) should be returned containing the total number of rows. This can have a performance overhead so you should not use it unless it is required.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

include_comparison_percentage_change
boolean
Default: false

A boolean flag to indicate whether percentage changes should be output when using comparison.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "group_by": [
    ],
  • "filter_by": [
    ],
  • "order_by": [
    ],
  • "interval": {
    },
  • "include_total_row_count": false,
  • "timezone": "GMT",
  • "top": 2
}

Response samples

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

Filter

This endpoint is ideal for fetching a list of available dimensions for a dropdown list.

If order_by is requested on a metric, the metric values will be added to the results.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

group_by
required
Array of strings non-empty unique
Items Enum: "advertiser_reference" "browser_family" "browser_major" "browser_minor" "browser_patch" "campaign" "country" "creative" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "publisher_reference" "partnership_model" "traffic_source" "type" "user_context"

Dimensions which the data should be grouped by.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

Array of objects non-empty

Priority list of ordering objects

top
integer [ 1 .. 50000 ]
Default: 50000
include_total_row_count
boolean
Default: false

A boolean flag to indicate whether an extra header (X-Total-Row-Count) should be returned containing the total number of rows. This can have a performance overhead so you should not use it unless it is required.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "group_by": [
    ],
  • "filter_by": [
    ],
  • "order_by": [
    ],
  • "top": 2,
  • "include_total_row_count": false,
  • "timezone": "GMT"
}

Response samples

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

Timeseries

Returns aggregated metrics derived from clicks, grouped by time intervals.

This endpoint is ideal for creating charts where the x-axis is time.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Enum: "total_clicks" "total_clicks_converted" "click_conversion_rate" "total_unique_clicks"

Array of metrics which should be included in the result.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

object

To group the data into buckets of time. In the context of Explode this is used when grouping by date_time

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

zerofill
boolean
Default: true

A boolean flag to indicate whether records with a count of zero should be included in the response.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "filter_by": [
    ],
  • "interval": {
    },
  • "timezone": "GMT",
  • "zerofill": false
}

Response samples

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

Conversions

Endpoints for analysing conversion data

Count

Returns aggregated metrics derived from conversions.

This endpoint is ideal for creating dashboard widgets, or for creating a summary of tabulated data from the explode endpoint.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Enum: "total_conversion_items" "total_conversions" "total_partner_commission" "percentage_average_partner_commission" "average_order_value" "total_order_value" "conversion_rejection_rate" "average_order_size" "percentage_order_value" "percentage_partner_commission" "average_partner_commission"

Array of metrics which should be included in the result.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

output_currency
string
Default: "USD"

Currency based metrics will be converted into this currency. This also applies to filter values. See reference endpoint /reference/currencies/ for available currencies.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

include_comparison_percentage_change
boolean
Default: false

A boolean flag to indicate whether percentage changes should be output when using comparison.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "filter_by": [
    ],
  • "output_currency": "GBP",
  • "timezone": "GMT"
}

Response samples

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

Explode

Returns aggregated metrics derived from conversions, grouped by ID and name of one or many dimensions. This endpoint is ideal for fetching data to be shown in a table. You can combine it with the count endpoint to fetch data for a totals row.

If order_by is requested on a metric, the metric values will be added to the results, even if not requested.

When grouping by date, the interval will define the length of each date group.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Enum: "total_conversion_items" "total_conversions" "total_partner_commission" "percentage_average_partner_commission" "average_order_value" "total_order_value" "conversion_rejection_rate" "average_order_size" "percentage_order_value" "percentage_partner_commission" "average_partner_commission"

Array of metrics which should be included in the result.

group_by
required
Array of strings non-empty unique
Items Enum: "advertiser_reference" "browser_family" "browser_major" "browser_minor" "browser_patch" "campaign" "category" "conversion_metric" "conversion_status" "conversion_type" "country" "creative" "currency" "customer_type" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "publisher_reference" "partnership_model" "sku" "traffic_source" "type" "user_context" "voucher_code" "voucher_status"

Dimensions which the data should be grouped by.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

Array of objects non-empty

Priority list of ordering objects

object

To group the data into buckets of time. In the context of Explode this is used when grouping by date_time

output_currency
string
Default: "USD"

Currency based metrics will be converted into this currency. This also applies to filter values. See reference endpoint /reference/currencies/ for available currencies.

output_date_time_format
string

Dates will be formatted with the Joda date format string given. If no format is supplied here, ISO8601 format will be used. For details of how to construct a format string, see https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html

top
integer [ 1 .. 50000 ]
Default: 50000
include_total_row_count
boolean
Default: false

A boolean flag to indicate whether an extra header (X-Total-Row-Count) should be returned containing the total number of rows. This can have a performance overhead so you should not use it unless it is required.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

include_comparison_percentage_change
boolean
Default: false

A boolean flag to indicate whether percentage changes should be output when using comparison.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "group_by": [
    ],
  • "filter_by": [
    ],
  • "order_by": [
    ],
  • "interval": {
    },
  • "output_currency": "USD",
  • "top": 2,
  • "include_total_row_count": false,
  • "timezone": "GMT"
}

Response samples

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

Filter

This endpoint is ideal for fetching a list of available dimensions for a dropdown list.

If order_by is requested on a metric, the metric values will be added to the results.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

group_by
required
Array of strings non-empty unique
Items Enum: "advertiser_reference" "browser_family" "browser_major" "browser_minor" "browser_patch" "campaign" "category" "conversion_metric" "conversion_status" "conversion_type" "country" "creative" "currency" "customer_type" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "publisher_reference" "partnership_model" "sku" "traffic_source" "type" "user_context" "voucher_code" "voucher_status"

Dimensions which the data should be grouped by.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

Array of objects non-empty

Priority list of ordering objects

output_currency
string
Default: "USD"

Currency based metrics will be converted into this currency. This also applies to filter values. See reference endpoint /reference/currencies/ for available currencies.

top
integer [ 1 .. 50000 ]
Default: 50000
include_total_row_count
boolean
Default: false

A boolean flag to indicate whether an extra header (X-Total-Row-Count) should be returned containing the total number of rows. This can have a performance overhead so you should not use it unless it is required.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "group_by": [
    ],
  • "filter_by": [
    ],
  • "order_by": [
    ],
  • "interval": {
    },
  • "output_currency": "USD",
  • "top": 10,
  • "include_total_row_count": false,
  • "timezone": "GMT"
}

Response samples

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

Timeseries

Returns aggregated metrics derived from conversions, grouped by time intervals.

This endpoint is ideal for creating charts where the x-axis is time.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Enum: "total_conversion_items" "total_conversions" "total_partner_commission" "percentage_average_partner_commission" "average_order_value" "total_order_value" "conversion_rejection_rate" "average_order_size" "percentage_order_value" "percentage_partner_commission" "average_partner_commission"

Array of metrics which should be included in the result.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

object

To group the data into buckets of time. In the context of Explode this is used when grouping by date_time

output_currency
string
Default: "USD"

Currency based metrics will be converted into this currency. This also applies to filter values. See reference endpoint /reference/currencies/ for available currencies.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

zerofill
boolean
Default: true

A boolean flag to indicate whether records with a count of zero should be included in the response.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "filter_by": [
    ],
  • "interval": {
    },
  • "output_currency": "GBP",
  • "timezone": "GMT",
  • "zerofill": false
}

Response samples

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

Impressions

Endpoints for analysing impression data

Count

Returns aggregated metrics derived from impressions.

This endpoint is ideal for creating dashboard widgets, or for creating a summary of tabulated data from the explode endpoint.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Value: "total_impressions"

Array of metrics which should be included in the result.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

include_comparison_percentage_change
boolean
Default: false

A boolean flag to indicate whether percentage changes should be output when using comparison.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "filter_by": [
    ],
  • "timezone": "GMT"
}

Response samples

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

Explode

Returns aggregated metrics derived from impressions, grouped by ID and name of one or many dimensions. This endpoint is ideal for fetching data to be shown in a table. You can combine it with the count endpoint to fetch data for a totals row.

If order_by is requested on a metric, the metric values will be added to the results, even if not requested.

When grouping by date, the interval will define the length of each date group.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Value: "total_impressions"

Array of metrics which should be included in the result.

group_by
required
Array of strings non-empty unique
Items Enum: "advertiser_reference" "browser_family" "browser_major" "browser_minor" "browser_patch" "campaign" "creative" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "publisher_reference" "partnership_model" "traffic_source" "user_context"

Dimensions which the data should be grouped by.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

Array of objects non-empty

Priority list of ordering objects

object

To group the data into buckets of time. In the context of Explode this is used when grouping by date_time

output_date_time_format
string

Dates will be formatted with the Joda date format string given. If no format is supplied here, ISO8601 format will be used. For details of how to construct a format string, see https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html

top
integer [ 1 .. 50000 ]
Default: 50000
include_total_row_count
boolean
Default: false

A boolean flag to indicate whether an extra header (X-Total-Row-Count) should be returned containing the total number of rows. This can have a performance overhead so you should not use it unless it is required.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

include_comparison_percentage_change
boolean
Default: false

A boolean flag to indicate whether percentage changes should be output when using comparison.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "group_by": [
    ],
  • "filter_by": [
    ],
  • "order_by": [
    ],
  • "interval": {
    },
  • "top": 10,
  • "include_total_row_count": false,
  • "timezone": "GMT"
}

Response samples

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

Filter

This endpoint is ideal for fetching a list of available dimensions for a dropdown list.

If order_by is requested on a metric, the metric values will be added to the results.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

group_by
required
Array of strings non-empty unique
Items Enum: "advertiser_reference" "browser_family" "browser_major" "browser_minor" "browser_patch" "campaign" "creative" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "publisher_reference" "partnership_model" "traffic_source" "user_context"

Dimensions which the data should be grouped by.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

Array of objects non-empty

Priority list of ordering objects

top
integer [ 1 .. 50000 ]
Default: 50000
include_total_row_count
boolean
Default: false

A boolean flag to indicate whether an extra header (X-Total-Row-Count) should be returned containing the total number of rows. This can have a performance overhead so you should not use it unless it is required.

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "group_by": [
    ],
  • "filter_by": [
    ],
  • "order_by": [
    ],
  • "top": 10,
  • "include_total_row_count": false,
  • "timezone": "GMT"
}

Response samples

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

Timeseries

Returns aggregated metrics derived from impressions, grouped by time intervals.

This endpoint is ideal for creating charts where the x-axis is time.

Request Body schema: application/json
required
Array of objects non-empty

Filter the results to given date-time ranges. You can specify multiple date ranges and results for each date range will be combined.

required
object

Filter data by a specified partner identifier. You must have the correct authorisation to view reporting data on this partner.

metrics
required
Array of strings non-empty unique
Items Value: "total_impressions"

Array of metrics which should be included in the result.

Array of objects non-empty

A list of objects you can use to filter the results by. Results will only be returned if they match every condition.

object

To group the data into buckets of time. In the context of Explode this is used when grouping by date_time

timezone
string

See reference endpoint /reference/timezones/ for available timezones.

zerofill
boolean
Default: true

A boolean flag to indicate whether records with a count of zero should be included in the response.

Responses

Request samples

Content type
application/json
{
  • "date_time_ranges": [
    ],
  • "scope": {
    },
  • "metrics": [
    ],
  • "filter_by": [
    ],
  • "interval": {
    },
  • "timezone": "GMT",
  • "zerofill": false
}

Response samples

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

Countries

List all Countries

List all active countries.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "countries": [
    ]
}

Currencies

List all Currencies

List all the types of currency.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "currencies": [
    ]
}

Devices

List all Devices

List all device types.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "devices": [
    ]
}

Timezones

List all Timezones

List all the timezones.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "timezones": [
    ]
}

User Contexts

List all User Contexts

List all User Context types.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "user_contexts": [
    ]
}

Traffic Sources

List Traffic Sources

List all available Traffic Source types.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "traffic_sources": [
    ]
}

Conversion Types

List Conversion Type

List all the conversion types.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "conversion_types": [
    ]
}

Conversion Metrics

List Conversion Metrics

List all available Conversion Metrics.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "conversion_metrics": [
    ]
}

Partnership Models

List Partnership Models

List all available partnership models.

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "partnership_models": [
    ]
}

Participations

List Partner Participations

Returns a list of Partner participations with basic campaign details

path Parameters
partnerId
required
string
Example: 111111l3

ID of the Partner

query Parameters
status[]
Array of strings
Items Enum: "r" "a" "p" "t"
Example: status[]=a

Specify the status of participations that will be returned. Default value 'a'

campaign_status[]
Array of strings
Items Enum: "a" "r"
Example: campaign_status[]=a

Specify the status of campaigns that will be returned. Default value 'a'

fields[]
Array of strings
Items Enum: "camref" "vertical" "promotional_countries" "default_currency" "brand_id" "status" "icon" "week_start" "hidden_campaign" "reporting_timezone"
Example: fields[]=promotional_countries

Specify what additional data properties should be returned in the response payload

Responses

Response samples

Content type
application/json
{}

Partnerize Tags

Partnerize Tags allow the creation, management and automated serving of various Partnerize features into websites.

All generated Partnerize Tags include a url of which can be embedded into websites to serve back the enabled features of that tag in JavaScript content.

Partnerize Tags only need to be integrated once, allowing features of the tag to be updated at any time using the Partnerize Tags APIs.

To view available features of the Partnerize Tag, use the List Partnerize Tag Features API.

List Partnerize Tags

Return a list of available Partnerize Tags.

query Parameters
partner_id
string
Example: partner_id=111111l8

ID of the partner to restrict scope of Partnerize Tags to

with_features
boolean
Example: with_features=true

Optional flag to include features as part of the response

Responses

Response samples

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

Create Partnerize Tag

Generates a new Partnerize Tag for the requested partner. Freshly generated tag will be empty, without any features enabled by default.

To allow for global propagation, tags will typically be available for use 15 minutes after their generation.

Request Body schema: application/json
name
required
string [ 1 .. 255 ] characters

A name for the new Partnerize Tag

required
object

Responses

Request samples

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

Response samples

Content type
application/json; charset=utf-8
{
  • "data": {
    }
}

Get Partnerize Tag

Return information about a single Partnerize Tag from the provided ID.

path Parameters
partnerizeTagId
required
string
Example: 111111l3

ID of the Partnerize Tag to fetch

Responses

Response samples

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

Update Partnerize Tag

Updates a specific Partnerize Tag.

path Parameters
partnerizeTagId
required
string

The ID of the Partnerize Tag to be updated

Request Body schema: application/json
name
string [ 1 .. 255 ] characters

A new name for the Partnerize Tag

active
boolean

Enables/Disables the tag

Responses

Request samples

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

Response samples

Content type
application/json; charset=utf-8
{
  • "data": {
    }
}

Delete Partnerize Tag

Deletes a specific Partnerize Tag.

path Parameters
partnerizeTagId
required
string

The ID of the Partnerize Tag to be deleted

Responses

Partnerize Tag Features

Partnerize Tag features are what power the Partnerize Tag, delivering Partnerize functionality to websites through the Partnerize Tag.

Partnerize Tag Features come in all shapes and sizes depending on the intended use case.

To find out more about Partnerize Tag Features and how they can be used, head over to the Partnerize Help Hub.

List Available Partnerize Tag Features

Returns a list of available features ready for enablement in a Partnerize Tag.

Responses

Response samples

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

List Partnerize Tag Enabled Features

Return a list of features enabled for a specific Partnerize Tag.

path Parameters
tagId
required
string

The ID of the Partnerize Tag

Responses

Response samples

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

Enable Feature on Partnerize Tag

Enables a feature for a specific Partnerize Tag.

path Parameters
tagId
required
string

The ID of the Partnerize Tag

Request Body schema: application/json
name
required
string

Feature name which will be added to the Partnerize Tag

config
object

Additional feature config, if needed

Responses

Request samples

Content type
application/json
{
  • "name": "tracking-link-generation"
}

Response samples

Content type
application/json; charset=utf-8
{
  • "data": {
    }
}

Disable Feature on Partnerize Tag

Disables a feature for a specific Partnerize Tag.

path Parameters
tagId
required
string

The ID of the Partnerize Tag

featureName
required
string

The name of the feature to remove

Responses

My Brands

Information about the brands the authenticated partner is associated with

List My Brands

Information about the brands the authenticated partner is associated with. This will include brands from networks they've been blocked from.

query Parameters
brand_ids[]
Array of strings
Example: brand_ids[]=111111l1

If you only want to retrieve information about a specific set of brands, apply this filter

partner
string
Example: partner=111111l1

If you only want to retrieve brand information for brands that are associated with a specific partner, apply this filter

Responses

Response samples

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

Campaign Terms and Conditions

Endpoints for retrieving campaign terms and conditions which are in affect.

List campaign terms and conditions

Lists all campaign terms and conditions of the campaigns managed by the user. Terms and conditions will be bound to your user's locale. If no terms for your locale exist, terms for en or en_us will be returned in it's place.

query Parameters
campaign_id
string
Example: campaign_id=111111l5

Filter by campaign.

created_at
string
Example: created_at=2020-01-01T00:00:00Z..2020-12-31T23:59:59Z

Filter by created datetime.

locale
string (Locale)
Enum: "bg" "cs" "da" "de" "de_at" "en" "en_au" "en_ca" "en_us" "es" "es_mx" "el" "et" "fi" "fl" "fr" "fr_ca" "hu" "id" "it" "jp" "ko" "ko_kr" "lt" "lv" "ms_my" "mt" "my" "nl" "no" "pl" "po" "pt" "pt_br" "ro" "ru" "sg" "sk" "sl" "sv" "sv_se" "th" "tl" "tr" "vi" "zh_cn" "zh_hk"

Filter by locale.

content
string
Example: content=cookies

Filter by content.

Responses

Response samples

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

Retrieve campaign terms and conditions

Retrieves a single campaign terms and conditions

path Parameters
id
required
string

The ID of the campaign terms and conditions

Responses

Response samples

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

Campaign Terms and Conditions Acknowledgments

Endpoints for retrieving and management the confirmations of changes existing campaign terms and conditions.

Each change to a set of campaign terms and conditions are recoreded, these changes can be flag as been acknowledged by a user by creating a campaign terms and conditions acknowledgment instances.

List campaign terms and conditions acknowledgments

Lists all acknowledgements for campaign terms and conditions of the partners managed by the user.

query Parameters
partner_id
string
Example: partner_id=111111l34

Filter by partner.

campaign_terms_and_conditions_id
string
Example: campaign_terms_and_conditions_id=111111l50

Filter by campaign terms and conditions.

created_at
string
Example: created_at=2020-01-01T00:00:00Z..2020-12-31T23:59:59Z

Filter by created datetime.

created_by
string
Example: created_by=111111l2

Filter by created by user.

Responses

Response samples

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

Create campaign terms and conditions acknowledgment

Create an acknowledgement for campaign terms and conditions

Request Body schema: application/json
partner_id
required
string
campaign_terms_and_conditions_id
required
string

Responses

Request samples

Content type
application/json
{
  • "partner_id": "111111l34",
  • "campaign_terms_and_conditions_id": "111111l50"
}

Response samples

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

Retrieve campaign terms and conditions acknowledgment

Retrieves a single acknowledgment of campaign terms and condition

path Parameters
id
required
string

The ID of the acknowledgment

Responses

Response samples

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

Current User

Endpoints for current User

Update Current user

Updates a Current User data

Request Body schema: application/json
emailAddress
string <email>

User email value to be updated

Responses

Request samples

Content type
application/json
{
  • "emailAddress": "user@example.com"
}

Response samples

Content type
application/json; charset=utf-8
{
  • "data": {
    }
}