Partnerize Brands API (1.4.99)

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

Networks

All API calls are contextual to the User that is making the request, and all User accounts are associated with the Network that they are created on. Each network has a unique application_user_key.

List Networks

Retrieve the details of the authenticated Network.

Responses

Response samples

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

Network Partners

A Brand can view all Partners who are created on their network. This endpoint is not specific to a Campaign, therefore it pools all available Partners who have been created or are able to access their Network. ​ It is also possible to accept new Partners onto the Network, or to reject any approved or pending Partners from the Network. If a Partners is rejected from the Network, they will be automatically rejected from all participating Campaigns.

Create network partner

Create partners on your network.

Request Body schema: application/json
account_name
required
string

Name of the partner

vertical
required
string

The vertical ID of the partner

promotional_method
required
string

The promotional method ID of the partner

signup_ip
required
string

The signup IP address of the partner

entity_terms_id
required
string

The agreed terms and conditions ID. The ID must be retrieved by retrieving the terms and conditions from the network terms and conditions API.

network_terms_id
string

The agreed network terms and conditions ID

vat_number
string

The VAT number of the partner

description
string

Description of the partner

company_name
string

Company name associated to the partner

operating_country
string

Country of operation for the partner

reporting_timezone
string

Reporting timezone of the partner.

default_currency
string

Default currency of the partner.

phone
string

Phone number of the partner.

contact_name
string

The contact name of the partner.

contact_email
required
string

The contact email of the partner.

contact_locale
string

The contact ISO locale for the partner.

Responses

Request samples

Content type
application/json
{
  • "account_name": "string",
  • "vertical": "string",
  • "promotional_method": "string",
  • "signup_ip": "string",
  • "entity_terms_id": "string",
  • "network_terms_id": "string",
  • "vat_number": "string",
  • "description": "string",
  • "company_name": "string",
  • "operating_country": "string",
  • "reporting_timezone": "string",
  • "default_currency": "string",
  • "phone": "string",
  • "contact_name": "string",
  • "contact_email": "string",
  • "contact_locale": "string"
}

Response samples

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

Create network partner with user account

Create partners on your network with their own Partnerize user account, allowing them to login directly to the Partnerize platform.

Request Body schema: application/json
user_name
required
string

Username of the user

email_address
required
string

Email address of the user

password
required
string

Password of the user

address1
required
string

Address Line 1 of the user

postcode
required
string

Postcode of the user

country
required
string

ISO-2 country code of the user

phone
required
string

Phone number of the user

signup_ip
required
string

The signup IP address of the user

firstname
string

The first name of the user

lastname
string

The last name of the user

address2
string

Address Line 2 of the user

address3
string

Address Line 3 of the user

address4
string

Address Line 4 of the user

locale
string

Locale of the user

send_confirm_email
boolean
Default: false

Send confirmation email to user on successful signup

object

Responses

Request samples

Content type
application/json
{
  • "user_name": "string",
  • "email_address": "string",
  • "password": "string",
  • "address1": "string",
  • "postcode": "string",
  • "country": "string",
  • "phone": "string",
  • "signup_ip": "string",
  • "firstname": "string",
  • "lastname": "string",
  • "address2": "string",
  • "address3": "string",
  • "address4": "string",
  • "locale": "string",
  • "send_confirm_email": false,
  • "publisher": {
    }
}

Response samples

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

List all Partners on the Network

View all Partners on the Network.

path Parameters
network_id
required
string
Example: 1l1000003

ID of the network

Responses

Response samples

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

Update Partner's Network status

Update the network_status of a Partner by passing each publisher_id along with the relevant network_status in an object within a publishers array.

path Parameters
network_id
required
string
Example: 1l1000003

ID of the network

Request Body schema: application/json
Array of objects

Responses

Request samples

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

Response samples

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

Network Terms and Conditions

Terms and conditions endpoint that returns terms and conditions that must be accepted by a partner to join the network.

List all terms and conditions for a network

path Parameters
locale
required
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"
Example: en

Specified locale

country
required
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"
Example: GB

Specified ISO-2 country code

network_id
required
string
Example: 11l100

ID of the network

Responses

Response samples

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

Brands

A User can create one or more Brand accounts. A User can also have access to one or more Brand accounts - this is determined by the User's permissions. A Network admin may choose to grant a User access to multiple entities within their Network.

List all Brands

One or more Brands can reside on a Network. This endpoint will output a listing of all Brands who reside on the Network and the output is contextual based on the permissions of the User making the request to the endpoint. A limited Brand schema will be utilised for any Brand that the User does not have appropriate permissions to view.

query Parameters
limit
number
Example: limit=100
offset
number
Example: offset=0

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "advertisers": [
    ],
  • "count": 86,
  • "execution_time": "0.23640 seconds",
  • "limit": 100,
  • "offset": 0
}

Create Brand

Create a new Brand account attached to the authenticated User.

Request Body schema: application/json
account_name
required
string

Unique brand account name

address1
required
string

1st line of the address

address2
string Nullable

2nd line of the address

address3
string Nullable

3rd line of the address

address4
string Nullable

4th line of the address

advertiser_icon
string Nullable

Url path to image

advertiser_id
string

ID of the brand

budget_summary_interval
string Nullable
budget_summary_start_time
string Nullable
company_name
required
string
contact_email
string
country
required
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"
current_balance
string Nullable
default_currency
string (Currency)
Enum: "GBP" "USD" "EUR" "JPY"
display_name
string

Name shown to publishers under brand campaign management

payment_currency
string (Currency)
Enum: "GBP" "USD" "EUR" "JPY"
phone
required
string

Primary contact telephone number

phone_area
string Nullable

Phone prefix to declare country or region

postcode
required
string

Postcode/Zipcode attached to the address

pre_payment
string Nullable
signup_ip
required
string
status
string (Status)
Enum: "a" "p" "r" "n"
vat_number
string Nullable

Responses

Request samples

Content type
application/json
{
  • "account_name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "address4": "string",
  • "advertiser_icon": "string",
  • "advertiser_id": "string",
  • "budget_summary_interval": "string",
  • "budget_summary_start_time": "string",
  • "company_name": "string",
  • "contact_email": "string",
  • "country": "AD",
  • "current_balance": "string",
  • "default_currency": "GBP",
  • "display_name": "string",
  • "payment_currency": "GBP",
  • "phone": "string",
  • "phone_area": "string",
  • "postcode": "string",
  • "pre_payment": "string",
  • "signup_ip": "string",
  • "status": "a",
  • "vat_number": "string"
}

Response samples

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

Retrieve a Brand

Outputs the specified brand.

path Parameters
advertiser_id
required
string
Example: 10l110

ID of the brand

Responses

Response samples

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

Update a Brand

Update the specified Brand.

path Parameters
advertiser_id
required
string
Example: 10l110

ID of the brand

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

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

address1
required
string

1st line of the address

address2
string Nullable

2nd line of the address

address3
string Nullable

3rd line of the address

address4
string Nullable

4th line of the address

advertiser_id
string

ID of the brand

company_name
string
country
required
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
required
string

Primary contact telephone number

phone_area
string Nullable

Phone prefix to declare country or region

postcode
required
string

Postcode/Zipcode attached to the address

signup_ip
required
string

Responses

Request samples

Content type
application/json
{
  • "advertiser_icon_upload": "string",
  • "address1": "Gardegasse 11",
  • "address2": "Top 7",
  • "address3": "London",
  • "address4": null,
  • "advertiser_id": "10l110",
  • "company_name": "Partnerize Demo Brand",
  • "country": "GB",
  • "phone": "01595725007",
  • "phone_area": "+44",
  • "postcode": "A-101",
  • "signup_ip": "178.23.129.160"
}

Response samples

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

Get brands for a network

Lists brands for a given network

path Parameters
networkId
string
Example: 1111l11

Network ID to get brands for

query Parameters
with
string
Example: with=deeplink-domains

Extra data to fetch as a comma seperated list. Currently only accepts "deeplink-domains"

Responses

Response samples

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

Campaigns

A Campaign is owned by a Brand and a Brand may have multiple Campaigns. A Campaign represents an entity which the Brand uses to represent something that they wish to allow Partners the chance to promote. A Campaign dictates what products/events/conversions can be promoted, and lets the Partners understand what Commission they would earn for generating sales/events/conversions. The Brand has complete control over their Campaigns and dictates which Partners they accept onto the Campaign to promote their services.

List all Campaigns

Return the details of all Campaigns attached to the Network account and visible to the authenticated User. The output is contextual based on the permissions of the User making the request to the endpoint. A limited Campaign schema will be utilised for any Campaign that the User does not have appropriate permissions to view.

query Parameters
network_id
string
Example: network_id=11l100

ID of the network

Responses

Response samples

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

Create a Campaign

To create a new Campaign, the Brand must pass their associated advertiser_id.

Request Body schema: application/json
One of
default_commission_rate
string
advertiser_id
required
string

ID of the brand the campaign should belong to

allow_deep_linking
string (YesOrNo)
Enum: "y" "n"
allow_third_party_pixel
string (YesOrNo)
Enum: "y" "n"
append_url_parameters
string
associated_campaigns
string
auto_rejected_ips
string Nullable
campaign_icon
string Nullable

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

campaign_icon_upload
string Nullable

Base64 encoded data url of image to upload. Supports PNG and JPEG only.

campaign_logo
string Nullable
Array of objects Nullable
campaign_notes
string
cookie_period
number
default_currency
string
Enum: "GBP" "USD" "EUR" "JPY"
object Nullable
destination_url
required
string
hidden_campaign
string (YesOrNo)
Enum: "y" "n"
string or number
prepend_url_string
string Nullable

Prepend all destination URLs

secure_tracking
string (YesOrNo)
Enum: "y" "n"
object Nullable
test_mode
string (YesOrNo)
Enum: "y" "n"
title
required
string
tq_auto_approve
number
tracking_method
string
Enum: "pixel" "api" "s2s"
unique_conversion_refs
string
Enum: "y" "n" "ignore"
vertical_id
number
vertical_name
string

Responses

Request samples

Content type
application/json
{
  • "default_commission_value": "string",
  • "advertiser_id": "10l110",
  • "allow_deep_linking": "y",
  • "allow_third_party_pixel": "y",
  • "append_url_parameters": "",
  • "associated_campaigns": "",
  • "auto_rejected_ips": null,
  • "campaign_overloads": [
    ],
  • "campaign_notes": "",
  • "cookie_period": 0,
  • "default_commission_rate": "5",
  • "default_currency": "GBP",
  • "description": {
    },
  • "destination_url": "http://www.performancehorizon.com",
  • "hidden_campaign": "y",
  • "multiple_conversions_per_click": "n",
  • "prepend_url_string": "http://google.com",
  • "secure_tracking": "y",
  • "terms": {
    },
  • "test_mode": "y",
  • "title": "PHG Aff Demo",
  • "tq_auto_approve": 60,
  • "tracking_method": "s2s",
  • "unique_conversion_refs": "y",
  • "vertical_id": 10,
  • "vertical_name": "Other"
}

Response samples

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

Retrieve a Campaign

Outputs the specified Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Responses

Response samples

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

Delete a Campaign

To delete a specific campaign, you must pass 3 required parameters:

  1. 'action' => 'delete'

  2. 'campaign_id' => ''

  3. 'retire_reason' => 'some excuse'.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Request Body schema: application/json
action
required
string
campaign_id
required
string

ID of the campaign

retire_reason
required
string

Responses

Request samples

Content type
application/json
{
  • "action": "delete",
  • "campaign_id": "10l176",
  • "retire_reason": "No longer needed"
}

Response samples

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

Update a Campaign

Update the specified Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

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

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

campaign_id
required
string

ID of the campaign

destination_url
string <uri> non-empty
title
string [ 5 .. 45 ] characters
object
Array of objects
associated_campaigns
string
auto_rejected_ips
string

Comma separated list

campaign_notes
string
Array of objects Nullable
week_start
string
Enum: "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday"
vertical_id
string
default_currency
string
string or integer
unique_conversion_refs
string
Enum: "y" "n" "ignore"
reporting_timezone
string
tracking_method
string
Enum: "pixel" "s2s" "api"
deeplink_method
string
Enum: "standard" "direct"
cookie_period
integer >= 0
tq_auto_approve
integer >= 0
campaign_logo
string <uri>
short_link_subdomain
string non-empty
app_tracking_provider
string
Enum: "branch" "partnerize"
app_tracking_provider_tracking_link
string
test_mode
string
Enum: "y" "n"
hidden_campaign
string
Enum: "y" "n"
allow_deep_linking
string
Enum: "y" "n"
allow_third_party_pixel
string
Enum: "y" "n"
secure_tracking
string
Enum: "y" "n"
is_cpc
string
Enum: "y" "n"
append_url_parameters
string
prepend_url_string
string <uri>
object
object

Responses

Request samples

Content type
application/json
{
  • "campaign_icon_upload": "data:image/png;base64,...",
  • "campaign_id": "10l176",
  • "destination_url": "http://www.partnerize.com",
  • "title": "PHG Aff Demo",
  • "terms": {
    },
  • "promotional_countries": [
    ],
  • "associated_campaigns": "string",
  • "auto_rejected_ips": "1.1.1.1,2.2.2.2",
  • "campaign_notes": "string",
  • "campaign_overloads": [
    ],
  • "week_start": "Monday",
  • "vertical_id": "string",
  • "default_currency": "GBP",
  • "multiple_conversions_per_click": "y",
  • "unique_conversion_refs": "y",
  • "reporting_timezone": "Australia/Melbourne",
  • "tracking_method": "pixel",
  • "deeplink_method": "standard",
  • "cookie_period": 0,
  • "tq_auto_approve": 0,
  • "campaign_logo": "http://example.com",
  • "short_link_subdomain": "string",
  • "app_tracking_provider": "branch",
  • "app_tracking_provider_tracking_link": "string",
  • "test_mode": "y",
  • "hidden_campaign": "y",
  • "allow_deep_linking": "y",
  • "allow_third_party_pixel": "y",
  • "secure_tracking": "y",
  • "is_cpc": "y",
  • "append_url_parameters": "string",
  • "prepend_url_string": "http://example.com",
  • "description": {
    },
  • "campaign_languages": {}
}

Response samples

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

List all Brand Campaigns

This endpoint will output a listing of all Campaigns that reside under the provided Brand on the Network and the output is contextual based on the permissions of the User making the request to the endpoint. A limited Campaign schema will be utilised for any Campaign that the User does not have appropriate permissions to view.

path Parameters
advertiser_id
required
string
Example: 10l110

ID of the brand

Responses

Response samples

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

Participating Partners

Before Partners can generate conversions for a Campaign, they must be approved to do so. A Partner can apply to be part of a Campaign, or the Brand can choose to add the Partner(s) of their choice to their own Campaign. Furthermore, if a Brand has stipulated their own unique set of Campaign Terms and Conditions, the Partner must explicitly agree to these if they are to be fully approved on the Campaign.

List all Participating Partners

View all Partners Participating on the Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Responses

Response samples

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

Update a Partner Participation on a Campaign

Add new Campaign participations by passing each publisher_id along with the relevant campaign_status in an object within a publishers array.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Request Body schema: application/json
Array of objects

Responses

Request samples

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

Response samples

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

Retrieve a Participating Partner

View a specific Participating Partner.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

publisher_id
required
string
Example: 1l1007802

ID of the Partner

Responses

Response samples

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

Partner Groups

A Campaign owner can organise Partners into Partner Groups, also known as Commission Groups. These Groups can be used for Reporting purposes, Commission offers and Voucher Code allocation.

List all Partner (Commission) Groups for a given campaign

View all Partner (Commission) Groups for a campaign with all associated partners.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Responses

Response samples

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

Retrieve a Partner (Commission) Group

Retrieves the specified Partner (Commission) Group.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

commission_group_id
required
string
Example: 10l169

ID of the Partner (Commission) group

Responses

Response samples

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

Create Partner (Commission) Groups

Create new Partner (Commission) Groups. To add Partners into the Partner (Commission) Group pass them in a publishers array.

Request Body schema: application/json
commission_groups
array

Responses

Request samples

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

Response samples

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

Update Partner (Commission) Groups

Update Partner (Commission) Groups by referencing the commission_group_id in each Group object within the commission_groups array.

Request Body schema: application/json
commission_groups
array

Responses

Request samples

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

Response samples

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

Custom Terms and Conditions

Manage partner specific terms and conditions. You can use this group of endpoints to create custom terms and conditions for certain partners.

Create Custom Terms and Conditions

Creates Custom Terms and Conditions for a given campaign and associates them with the provided partners.

path Parameters
campaign_id
required
string

ID of the campaign

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

a list of partner ids to associate with the custom terms and conditions. The list needs to contain at least one valid partner id.

title
required
string

title of the custom terms and conditions

terms
required
string

the custom terms and conditions content

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"

Responses

Request samples

Content type
application/json
{
  • "publisher_id": [
    ],
  • "title": "Terms and conditions title",
  • "terms": "Terms and conditions content",
  • "locale": "pl"
}

Response samples

Content type
application/json
{
  • "execution_time": "1.05973 seconds",
  • "custom_terms": [
    ]
}

List All Custom Terms and Conditions for given campaign

List All Custom Terms and Conditions for given campaign

path Parameters
campaign_id
required
string

ID of the campaign

Responses

Response samples

Content type
application/json
{
  • "execution_time": "1.05973 seconds",
  • "custom_terms": [
    ]
}

List Partner's Terms and Conditions for a capaign.

List Terms and Conditions for a Partner on the specified campaign.

path Parameters
campaign_id
required
string

ID of the campaign

publisher_id
required
string

ID of the Partner

Responses

Response samples

Content type
application/json
{
  • "execution_time": "1.05973 seconds",
  • "custom_terms": [
    ]
}

Delete specific Custom Terms and Conditions

Delete Campaign Terms and Conditions for a given campaign.

path Parameters
campaign_id
required
string

ID of the Campaign

custom_terms_id
required
string

Id of the Campaign Terms and Conditions to delete

Responses

Response samples

Content type
application/json
{
  • "execution_time": "1.05973 seconds",
  • "custom_terms": [
    ]
}

Associate Custom Terms and Conditions with Partners

Associate the Custom Terms and Conditions with a list of Partners.

path Parameters
campaign_id
required
string

ID of the Campaign

custom_terms_id
required
string

ID of Campaign Terms and Conditions to associate with a list of Partners

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

IDs of Partners

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "execution_time": "1.05973 seconds",
  • "custom_terms": [
    ]
}

Remove associations between the Custom Terms and Conditions and Partners

Remove associations between the Custom Terms and Conditions and a list of Partners. If all associations are removed successfully a 200 OK status code response is returned. In the cases where there were errors a 207 Multi-status response is returned and the body of the response will contain the list of errors for the failed ones.

path Parameters
campaign_id
required
string

ID of the Campaign

custom_terms_id
required
string

ID of Campaign Terms and Conditions to associate with a list of Partners

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

IDs of Partners

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "execution_time": "1.05973 seconds",
  • "custom_terms": [
    ]
}

Voucher Codes

A Voucher references a coupon code, or voucher code which the Brand offers to their customers to usually perform a price discount at the end of the transaction. Specific rules can be set to defined Vouchers ensuring that only valid codes can be used and can also be restricted to specific Partners.

List all Campaign Voucher Codes

View all Voucher Codes associated with the Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Responses

Response samples

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

Create Voucher Codes

Create new Vouchers by passing each Voucher object within a voucher_codes array. A voucher_code string to define the actual code must be passed with each object, and to allocate the Voucher to specific Groups, pass the Group ids in a commission_groups array.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Request Body schema: application/json
Array of objects

Responses

Request samples

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

Response samples

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

Update Voucher Codes

Update Vouchers by referencing the voucher_code_id in each Group object within the voucher_codes array.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Request Body schema: application/json
Array of objects

Responses

Request samples

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

Response samples

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

Retrieve a Voucher Code

Outputs the specified Voucher Code.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

voucher_code_id
required
string
Example: 111111l1000015

ID of the voucher code

Responses

Response samples

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

Creatives

A Brand may wish to offer pre-generated Creative so that the Partners can advertise the Brand easily. It is possible to categorise Creative with tags and there are 3 distinct Creative formats: Image, HTML and Text. Brands can organise their Creatives in a flexible structure by using Creative Tags.

List all Creatives for a Campaign

List and view all Creatives for the specified Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Responses

Response samples

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

Create Campaign Creatives

Create one or more Creatives against the Campaign entity. Each Creative is sent as an array within a top level creatives array.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

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

Responses

Request samples

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

Response samples

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

Update Campaign Creatives

Update one or more Creatives against the Campaign entity. Each Creative is sent as an array within a top level creatives array and must contain its associated creative_id.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

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

Responses

Request samples

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

Response samples

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

List all Creative Tags for Campaign

View all Creative Tags for the specified Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Responses

Response samples

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

Create Campaign Creative Tags

Create one or more Creative Tags against the Campaign entity. Each Tag is sent as an array within a top level tags array.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

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

Responses

Request samples

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

Response samples

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

Update Campaign Creative Tags

Update one or more Creative Tags against the Campaign entity. Each Tag is sent as an array within a top level tags array and must contain its associated creative_tag_id.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

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

Responses

Request samples

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

Response samples

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

Delete Campaign Creative Tags

Delete one or more Creative Tags against the Campaign entity. Each Tag is sent as an array within a top level tags array and must contain its associated creative_tag_id.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

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

Responses

Request samples

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

Response samples

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

List all Creatives for a Campaign by Tags

List and view all Creatives for the specified Campaign and filter by tags.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

query Parameters
tags[]
string
Example: tags[]=1011l56,1011l57

An array of tags IDs to filter the creatives by

Responses

Response samples

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

Product Feeds

A Brand may want to offer a selection of Product Feeds to their Partners on a specific Campaign. When a Product Feed is created, it will be periodically downloaded and parsed for all Partners who participate on the Campaign to ensure their tracking links are inserted for all anchor links within the Product Feed. Any text based file format is supported.

List all Product Feeds for a Campaign

Return the details of all Product Feeds associated with a Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Responses

Response samples

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

Create a Product Feed

Create one or more Product Feeds against the Campaign entity. Each Product Feed is sent as an array within a top level feeds array.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

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

Responses

Request samples

Content type
application/json
{}

Response samples

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

Update a Product Feed for a Campaign

Update one or more feeds against the Campaign entity. Each Product Feed is sent as an array within a top level feeds array and must contain its associated feed_id or location. As location is a unique identifier, it's not possible to change the location of a feed once created. To update the location, first update the feed and set active: n, then create a new feed with the new location.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Request Body schema: application/json
required
Array of objects or objects

Responses

Request samples

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

Response samples

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

Deals

A Brand may want to offer a specific Deal to Partners on a specific Campaign. These Deals represent a timed promotion which can be programmatically ingested into the Partner's platform and offered dynamically to their user base.

List all Campaign Deals

Return the details of all Deals associated to the Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Responses

Response samples

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

Create a Campaign Deal

Create a new Deal against the Campaign entity.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Request Body schema: application/json
active
string (YesOrNo)
Enum: "y" "n"
advertiser_reference
string
category
string
country_iso
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"
coupon_code
string

A specific coupon or voucher code associated with the deal

description
required
string
destination
string

A deeplink to the specific deal location

end_date_time
string

Timezone specific timestamp to indicate the deal expiry time

offer_type
required
string
Enum: "coupon" "offer" "sale"

The type of offer

offer_value
required
string

The unit to attribute to the offer_type

start_date_time
string

Timezone specific timestamp to indicate the start of the deal

terms
string

Specific terms for the deal

title
required
string

Responses

Request samples

Content type
application/json
{
  • "active": "y",
  • "advertiser_reference": "string",
  • "category": "string",
  • "country_iso": "AD",
  • "coupon_code": "string",
  • "description": "string",
  • "destination": "string",
  • "end_date_time": "string",
  • "offer_type": "coupon",
  • "offer_value": "string",
  • "start_date_time": "string",
  • "terms": "string",
  • "title": "string"
}

Response samples

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

Retrieve a Campaign Deal

Review the specified Deal.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

deal_id
required
string
Example: 111111l2

ID of the Deal

Responses

Response samples

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

Update a Campaign Deal

Update properties of the specified Deal.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

deal_id
required
string
Example: 111111l2

ID of the Deal

Request Body schema: application/json
active
string (YesOrNo)
Enum: "y" "n"
advertiser_reference
string
category
string
country_iso
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"
coupon_code
string

A specific coupon or voucher code associated with the deal

description
required
string
destination
string

A deeplink to the specific deal location

end_date_time
string

Timezone specific timestamp to indicate the deal expiry time

offer_type
required
string
Enum: "coupon" "offer" "sale"

The type of offer

offer_value
required
string

The unit to attribute to the offer_type

start_date_time
string

Timezone specific timestamp to indicate the start of the deal

terms
string

Specific terms for the deal

title
required
string

Responses

Request samples

Content type
application/json
{
  • "active": "y",
  • "advertiser_reference": "string",
  • "category": "string",
  • "country_iso": "AD",
  • "coupon_code": "string",
  • "description": "string",
  • "destination": "string",
  • "end_date_time": "string",
  • "offer_type": "coupon",
  • "offer_value": "string",
  • "start_date_time": "string",
  • "terms": "string",
  • "title": "string"
}

Response samples

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

Delete a Campaign

Delete a Deal, which is the same as updating the Deal by setting active to n.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

deal_id
required
string
Example: 111111l2

ID of the deal

Responses

Meta Attributes

Based on all tracked events, a real-time cache of currencies and non standard conversion and conversion item attributes are kept for all Campaigns and Partners. This endpoint can be used to determine what non standard data might appear in reports/exports and is also useful when building an external app which will display Conversion data.

List all Meta attributes for Campaign

View all unique Meta attributes for the Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

Responses

Response samples

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

Campaign Transaction Queries

Transaction Queries (TQs) allow Partners to raise disputes about conversions with a Brand. There are three types of Transaction Queries:

  • Untracked: A conversion has not been tracked.
  • Incorrect Commission: A conversion does not have the correct Partner commission value.
  • Declined: The Brand has rejected a conversion.

List all Transaction Queries for a Campaign

Return the details of all Transaction Queries created on a campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

campaign_id
required
string
Example: 10l176

Filter by the ID of a campaign

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

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

Request Body schema: application/json

Generate a CSV file in a job and send the result to this email address, helpful when processing takes too long for a normal download

string

Responses

Request samples

Content type
application/json
"string"

Response samples

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

Approve a Transaction Query

Approve a single Transaction Query. Only Transaction Queries with a status of pending can be approved.

path Parameters
campaign_id
required
string
Example: 10l176

ID of a Campaign

transaction_query_id
required
string
Example: 1l1000532

ID of the Transaction Query

Request Body schema: application/json
expected_commission
number

The commission that the conversion should have after being approved

Responses

Request samples

Content type
application/json
{
  • "expected_commission": 907.43
}

Response samples

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

Pend a Transaction Query

Pend a single Transaction Query. Only Transaction Queries with a status of rejected can be pended.

path Parameters
campaign_id
required
string
Example: 10l176

ID of a Campaign

transaction_query_id
required
string
Example: 1l1000532

ID of the Transaction Query

Responses

Response samples

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

Reject a Transaction Query

Reject a single Transaction Query. Only Transaction Queries with a status of pending can be rejected.

path Parameters
campaign_id
required
string
Example: 10l176

ID of a campaign

transaction_query_id
required
string
Example: 1l1000532

ID of the transaction query

Request Body schema: application/json
reason
string

The reason for rejecting the Transaction Query

Responses

Request samples

Content type
application/json
{
  • "reason": "Example reason"
}

Response samples

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

Bulk processing of Transaction Queries

Process multiple Transaction Queries in a single API call. The same rules as approving, rejecting and pending single Transaction Queries apply. The actions are processed asynchronously and the Job endpoint must be polled to find out when all have been completed.

path Parameters
campaign_id
required
string
Example: 10l176

ID of a Campaign

Request Body schema: application/json
Array of objects

Responses

Request samples

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

Response samples

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

Transaction Query Reasons

List Transaction Query Reasons for a Campaign

Return the details of all saved Transaction Query Reasons.

path Parameters
campaign_id
required
string
Example: 10l176

ID of a Campaign

Responses

Response samples

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

Create a Transaction Query Reason for a Campaign

Create a new saved Transaction Query reason.

path Parameters
campaign_id
required
string
Example: 10l176

ID of a Campaign

Request Body schema: application/json
reason
required
string

The reason for rejecting a Transaction Query

Responses

Request samples

Content type
application/json
{
  • "reason": "Example reason"
}

Response samples

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

Delete a Transaction Query Reason for a Campaign

Delete a saved Transaction Query Reason for a Campaign.

path Parameters
campaign_id
required
string
Example: 10l176

ID of a Campaign

transaction_query_reason_id
required
string
Example: 111111l3

ID of the Transaction Query Reason

Responses

Response samples

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

Invoices

So that Brands can receive payment for all approved conversion events they have generated across a Brand's Campaigns, the Brand must raise an Invoice and send payment to Partnerize. Once the payment has cleared, all funds will be deposited into the relevant Partner accounts.

List all Invoices

View all Invoices that have been created.

path Parameters
advertiser_id
required
string
Example: 10l110

ID of the Brand

Responses

Response samples

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

Retrieve an Invoice

View an individual Invoice.

path Parameters
advertiser_id
required
string
Example: 10l110

ID of the Brand

invoice_id
required
string
Example: 1101l1536

ID of the Invoice

Responses

Response samples

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

Commissions

Commissions

List Commissions

This endpoint lists all upcoming and currently active standard commissions

path Parameters
campaignId
required
string

The ID of the campaign to list the commissions for

query Parameters
at
string <date-time>
Example: at=2023-05-04T12:00:00+00:00

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

Responses

Response samples

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

Create Commission

This endpoint creates a new commission

path Parameters
campaignId
required
string

The ID of the campaign to list the commissions for

Request Body schema: application/json
description
required
string <= 300 characters
start_date
required
string <date-time>

The Start Date of the Commission

end_date
stringnull <date-time> Nullable

The End Date of the Commission

commission_based_on_field
stringnull Nullable
Default: "value"

The tracking field used to calculate publisher commission

Array of Meta Field Values (object) or objects (Meta Field Creator)
required
Array of objects (Commission Rate) non-empty

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": null,
  • "commission_based_on_field": "value",
  • "meta_fields": [
    ],
  • "rates": [
    ]
}

Response samples

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

Get Commission

Get the given commission

path Parameters
campaignId
required
string

The ID of the campaign the commission belongs to

commissionId
required
string

The ID of the commission to retrieve

query Parameters
include
string
Enum: "history" "v1"

The historical edits will be shown under the history.data attribute when set to 'history'. The endpoint will also return v1 Commissions when set to 'v1'"

at
string <date-time>
Example: at=2023-05-04T12:00:00+00:00

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

Responses

Response samples

Content type
application/json
{
  • "commission": {
    },
  • "history": {
    }
}

Update Commission

Update the given commission. If it is currently active it will be retired and a new commission will be set up with the updated configuration.

path Parameters
campaignId
required
string

The ID of the campaign the commission belongs to

commissionId
required
string

The ID of the commission to retrieve

Request Body schema: application/json
description
string <= 300 characters
start_date
string <date-time>

The Start Date of the Commission

end_date
stringnull <date-time> Nullable

The End Date of the Commission

commission_based_on_field
stringnull Nullable
Default: "value"

The tracking field used to calculate partner commission

Array of Meta Field Values (object) or objects (Meta Field Creator)
Array of objects (Commission Rate) non-empty

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": null,
  • "commission_based_on_field": "value",
  • "meta_fields": [
    ],
  • "rates": [
    ]
}

Response samples

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

Migrate Commission

This endpoint migrates a given V1 Commission to a V2 Commission

path Parameters
campaignId
required
string

The ID of the campaign the commission belongs to

commissionId
required
string

The ID of the commission to migrate

Responses

Response samples

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

Retire Commission

This endpoint retires a given Commission.

path Parameters
campaignId
required
string

The ID of the campaign the commission belongs to

commissionId
required
string

The ID of the commission to retire

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "description": "string",
  • "start_date": null,
  • "end_date": null,
  • "last_modified": {
    },
  • "commission_based_on_field": "string",
  • "meta_fields": [
    ],
  • "status": "ACTIVE",
  • "rates": [
    ],
  • "version": 0
}

Commissions CSV Download

Commissions CSV Download

CSV Download.

Request a CSV for a Commission report which includes all individual items defined for the Campaign. Each item represents a commission type of default, standard, promotional or voucher commission and rates.

path Parameters
campaignId
required
string

The ID of the campaign for the commissions

query Parameters
start_date_time
string <datetime>

Limits list to commissions active at/from this date

end_date_time
string <datetime>

Limits list to commissions active until this date

type
string
Enum: "default" "standard" "promotional" "voucher"

Limits list to commissions of specified types

status
string
Enum: "retired" "active" "scheduled"

Limits list to commissions with specified status

Responses

Response samples

Content type
text/csv
commission_group_id,commission_id,commission_type,scope,campaign_id,group_id,group_name,publisher_id,publisher_name,voucher_id,voucher_code,group_limit,start_date_time_utc,end_date_time_utc,status,name,performance_model,commission,commission_based_on_field,cookie_period_seconds,dynamic_sut,created_utc,created_by_id,created_by_name,last_modified_utc,last_modified_by,last_modified_by_name
1111111l1,1111111l3,promotional,publisher,,,,111111l9,test_publisher,,,,"2023-05-05 16:00:00","2023-09-30 00:00:00",ACTIVE,"Test Promotional Commission","% CPA",10.0000,,,,,,,,promosku,,,,avalue,"2023-05-05 14:46:54",111111l1,user_name,"2023-05-05 14:46:54",111111l1,user_name

Promotional Commissions

Promotional Commission Endpoints

List Promotional Commissions

This endpoint lists all active and scheduled promotional commissions for the given campaign.

path Parameters
campaignId
required
string

The ID of the campaign to list the promotional commissions for

query Parameters
at
string
Example: at=2021-07-02T12:00:00+01:00

Check the promotional commissions for a given moment

Responses

Response samples

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

Create Promotional Commission

This creates a new promotional commission for the given campaign

path Parameters
campaignId
required
string

The ID of the campaign to create the promotional commission for

Request Body schema: application/json
description
string
performance_value
required
number

The value to be rewarded based on selected Performance Measurement

performance_model
required
string (Performance Model)
Enum: "fixed_cpa" "percentage_cpa" "cpc"

Model used to calculate Partner commission

start_date
required
string^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$

The start date and time in UTC

end_date
string Nullable ^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}|null)$

The end date and time in UTC

cookie_period
integer [ 0 .. 31536000 ]

The cookie period defined in seconds

commission_based_on_field
string

The tracking field used to calculate partner commission

Array of objects (Meta Field Values)
publishers
Array of strings (Partner ID) >= 0 items
groups
Array of strings (Group ID) >= 0 items

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "performance_value": 0,
  • "performance_model": "fixed_cpa",
  • "start_date": "string",
  • "end_date": "string",
  • "cookie_period": 0,
  • "commission_based_on_field": "string",
  • "meta_fields": [
    ],
  • "publishers": [
    ],
  • "groups": [
    ]
}

Response samples

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

Get Promotional Commission

This endpoint returns the promotional commission for the given campaign and promotional commission ID.

path Parameters
campaignId
required
string

The ID of the campaign the promotional commission belongs to

promotionalId
required
string

The ID of the promotional commission to retrieve

query Parameters
include
string
Value: "history"

The historical edits will be shown under the history.data attribute when set to 'history'.

Responses

Response samples

Content type
application/json
{
  • "promotion": {
    },
  • "history": {
    }
}

Delete Promotional Commission

This endpoint deletes a given Promotional Commission

path Parameters
campaignId
required
string

The ID of the campaign the promotional commission belongs to

promotionalId
required
string

The ID of the promotional commission to delete

Responses

Modify Promotional Commission

Modifies the promotional commission for the given commission ID and campaign

path Parameters
campaignId
required
string

The ID of the campaign to update the promotional commission for

promotionalId
required
string

The ID of the promotional commission to update

Request Body schema: application/json
id
string
description
string Nullable
performance_value
number

The value to be rewarded based on selected Performance Measurement

performance_model
string (Performance Model)
Enum: "fixed_cpa" "percentage_cpa" "cpc"

Model used to calculate Partner commission

start_date
string^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$

The start date and time in UTC

end_date
string Nullable ^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}|null)$

The end date and time in UTC

cookie_period
integer [ 0 .. 31536000 ] Nullable

The cookie period defined in seconds

commission_based_on_field
string

The tracking field used to calculate partner commission

Array of objects (Meta Field Values)
publishers
Array of strings (Partner ID) >= 0 items
groups
Array of strings (Group ID) >= 0 items

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "description": "string",
  • "performance_value": 0,
  • "performance_model": "fixed_cpa",
  • "start_date": "string",
  • "end_date": "string",
  • "cookie_period": 0,
  • "commission_based_on_field": "string",
  • "meta_fields": [
    ],
  • "publishers": [
    ],
  • "groups": [
    ]
}

Response samples

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

Retire Promotional Commission

This endpoint retires a given Promotional Commission

path Parameters
campaignId
required
string

The ID of the campaign the promotional commission belongs to

promotionalId
required
string

The ID of the promotional commission to retire

Responses

Response samples

Content type
application/json
{
  • "promotion": {
    },
  • "history": {
    }
}

Voucher Commissions

Voucher Commission Endpoints

List Voucher Commissions

This endpoint lists all active and scheduled Voucher commissions for the given campaign.

path Parameters
campaignId
required
string
Example: 11111l1

The ID of the campaign to list the Voucher commissions for

query Parameters
at
string
Example: at=2021-07-02T12:00:00+01:00

Check the Voucher commissions for a given moment

Responses

Response samples

Content type
application/json
{
  • "count": "1",
  • "execution_time": "0.30000 seconds",
  • "voucher_commissions": [
    ]
}

Create Voucher Commission

This endpoint saves a given Voucher Commission

path Parameters
campaignId
required
string
Example: 11111l1

The ID of the campaign the voucher commission belongs to

Request Body schema: application/json
description
stringnull
start_date
string <date-time>
end_date
stringnull <date-time>
group_limit_id
stringnull
Array of objects
voucher_codes
Array of strings
performance_value
integer
performance_model
string

Responses

Request samples

Content type
application/json
{
  • "description": "example",
  • "end_date": "2023-10-01 00:00:00",
  • "start_date": "2023-10-01 00:00:00",
  • "group_limit_id": "111111l1",
  • "meta_fields": [
    ],
  • "performance_model": "fixed_cpa",
  • "performance_value": 20,
  • "voucher_codes": [
    ]
}

Response samples

Content type
application/json
{
  • "execution_time": "0.30000 seconds",
  • "voucher_commission": {
    }
}

Show Voucher Commissions

This endpoint shows an active or scheduled Voucher commission for the given campaign.

path Parameters
campaignId
required
string
Example: 11111l1

The ID of the campaign to list the Voucher commissions for

commissionId
required
string
Example: 11111l1

The ID of the commission to edit the Voucher commissions for

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.30000 seconds",
  • "voucher_commission": {
    }
}

Edit Voucher Commissions

This endpoint edits all active and scheduled Voucher commission for the given campaign.

path Parameters
campaignId
required
string
Example: 11111l1

The ID of the campaign to list the Voucher commissions for

commissionId
required
string
Example: 11111l1

The ID of the commission to edit the Voucher commissions for

Request Body schema: application/json
description
stringnull
start_date
string <date-time>
end_date
stringnull <date-time>
Array of objects
performance_value
number
performance_model
string
voucher_codes
Array of strings

Responses

Request samples

Content type
application/json
{
  • "description": "example",
  • "end_date": "2023-10-01 00:00:00",
  • "start_date": "2023-10-01 00:00:00",
  • "meta_fields": [
    ],
  • "performance_model": "fixed_cpa",
  • "performance_value": 20,
  • "voucher_codes": [
    ]
}

Response samples

Content type
application/json
{
  • "execution_time": "0.30000 seconds",
  • "voucher_commission": {
    }
}

Delete Scheduled Voucher Commission

This endpoint deletes a scheduled Voucher Commission. Active Voucher Commissions should be retired.

path Parameters
campaignId
required
string
Example: 11111l1

The ID of the campaign the voucher commission belongs to

commissionId
required
string
Example: 11111l1

The ID of the commission to retire the Voucher commissions for

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.30000 seconds",
  • "voucher_commission": {
    }
}

Retire Active Voucher Commission

This endpoint retires an active Voucher Commission. Scheduled Voucher Commissions should be deleted.

path Parameters
campaignId
required
string
Example: 11111l1

The ID of the campaign the voucher commission belongs to

commissionId
required
string
Example: 11111l1

The ID of the commission to retire the Voucher commissions for

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.30000 seconds",
  • "voucher_commission": {
    }
}

Tiers

Commission Tiers Endpoints

List Commission Tiers

This endpoint lists all upcoming and currently active commission tiers for the given campaign.

path Parameters
campaignId
required
string

The ID of the campaign to list the commission tiers for

Responses

Response samples

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

Create Commission Tier

This creates a new commission tier for the given campaign

path Parameters
campaignId
required
string

The ID of the campaign to create the commission tier for

Request Body schema: application/json
id
string
name
required
string
start_date
required
string^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$

The Start Date of the Commission Tier

end_date
required
string^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$

The End Date of the Commission Tier

evaluation_period
required
integer [ 0 .. 86399999 ]

The earliest number of seconds after the end date the Commission Tier will be rewarded. Maximum length is 86,399,999 seconds, or rather, less than 1000 days exactly

reward_pending
required
boolean
Enum: true false

If enabled, pending conversion items can also be rewarded.

reward_model
required
string (Reward Model)
Enum: "fixed_reward" "fixed_cpa" "percentage_cpa"

Model used to calculate Partner rewards

performance_measurement
required
string (Performance Measurement)
Enum: "total_items" "total_revenue"

The measurement used to calculate Partners performance

required
Array of objects (Meta Field Value)
required
Array of objects (Commission Tier Level) non-empty

An array of Commission Tier Levels. Each Commission Tier Level's threshold must be unique.

publishers
Array of strings (Partner ID) >= 0 items
groups
Array of strings (Group ID) >= 0 items

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "start_date": "string",
  • "end_date": "string",
  • "evaluation_period": 0,
  • "reward_pending": true,
  • "reward_model": "fixed_reward",
  • "performance_measurement": "total_items",
  • "meta_fields": [
    ],
  • "levels": [
    ],
  • "publishers": [
    ],
  • "groups": [
    ]
}

Response samples

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

Delete Commission Tier

This endpoint deletes a given Commission Tier

path Parameters
campaignId
required
string

The ID of the campaign to list the commission tiers for

tierId
required
string

The ID of the commission tier to delete

Responses

Modify Commission Tier

Modifies the commission tier for the given tier ID and campaign

path Parameters
campaignId
required
string

The ID of the campaign to update the commission tier for

tierId
required
string

The ID of the tier to update

Request Body schema: application/json
name
string
start_date
string^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$

The Start Date of the Commission Tier

end_date
string^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$

The End Date of the Commission Tier

evaluation_period
integer [ 0 .. 86399999 ]

The earliest number of seconds after the end date the Commission Tier will be rewarded. Maximum length is 86,399,999 seconds, or rather, less than 1000 days exactly

reward_pending
boolean
Enum: true false

If enabled, pending conversion items can also be rewarded.

reward_model
string
Enum: "fixed_reward" "fixed_cpa" "percentage_cpa"

Model used to calculate Partner rewards

performance_measurement
string
Enum: "total_items" "total_revenue"

The measurement used to calculate Partners performance

Array of objects (Meta Field Value)
Array of objects (Commission Tier Level) non-empty
publishers
Array of strings (Partner ID) >= 0 items
groups
Array of strings (Group ID) >= 0 items

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "start_date": "string",
  • "end_date": "string",
  • "evaluation_period": 0,
  • "reward_pending": true,
  • "reward_model": "fixed_reward",
  • "performance_measurement": "total_items",
  • "meta_fields": [
    ],
  • "levels": [
    ],
  • "publishers": [
    ],
  • "groups": [
    ]
}

Response samples

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

Partner Commissions

Partner Commissions Endpoints

Get Partner Commissions

Get Partner Commissions. Active and Scheduled Commissions will be returned

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

query Parameters
status
string
Value: "scheduled"

Retrieve Commissions with a specifc Status

type
string
Enum: "default" "campaign"

Retrieve Commissions of a specific Commission Type

Responses

Response samples

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

Get Partner 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 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": [
    ]
}

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": [
    ]
}

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": [
    ]
}

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": [
    ]
}

Meta Fields

Meta Fields Endpoints

List Campaign Meta Fields

Determine the meta fields available when filtering commissions. This endpoint returns either the default set of meta fields, or a custom set which replaces the default fields.

path Parameters
campaignId
required
string

The ID of the campaign to list the commission tiers for

Responses

Response samples

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

List Tier Meta Fields

Returns the meta fields available when defining commission tiers. This endpoint returns campaign meta fields, plus meta fields that can be used to refine commission tiers, but not commission rates.

path Parameters
campaignId
required
string

The ID of the campaign to list the commission tiers for

Responses

Response samples

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

Attribution

Note: Attribution is a limited availability BETA feature. Attribution features allow you to control who the transaction is attributed to, based on the the configured rules. To process attribution rules we analyse clicks within the click trail going back the length of the cookie period for the campaign.

Partner Attributions

Get available ongoing and upcoming attribution opportunities for the given partner.

Any of the keys within the response will be excluded if they are not applicable, such as not being enabled or configured for the partner.

path Parameters
campaign_id
required
string

The ID of the campaign

partner_id
required
string

The ID of the partner

Responses

Response samples

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

List Attribution Settings

Get the status of each of the Attribution Settings

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Responses

Response samples

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

Update Attribution Settings

Update the Attribution Settings

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Request Body schema: application/json
code_suppression
boolean

Is Code Suppression enabled?

preferred_partners
boolean

Is Preferred Partners Enabled?

exclusive_codes
boolean

Is Exclusive Codes enabled?

in_cart
boolean

Is In-Cart enabled? Mutually exclusive with Split

split
boolean

Is Split enabled? Mutually exclusive with In-Cart

first_click
boolean

Is First Click enabled? Mutually exclusive with In-Cart and Split

Responses

Request samples

Content type
application/json
{
  • "code_suppression": true,
  • "preferred_partners": true,
  • "exclusive_codes": true,
  • "in_cart": true,
  • "split": true,
  • "first_click": true
}

Response samples

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

Suppressed Code

Suppressed codes are assigned to a campaign. If a suppressed code is matched, the sale is no longer rewarded - even if there are supporting clicks.

List All Suppressed Codes

Show a list of all configured suppressed codes. May be filtered with several filters.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

query Parameters
limit
integer [ 0 .. 200 ]

Used to limit the response to a number of results

offset
integer >= 0

Used to offset the results we're returning

query
string^[-a-z0-9_]++$

Search for specific codes

dates
string^.*?,.*?$
Example: dates=2020-10-01,2020-10-31

Search for codes within a date-time range. Comma separated start and end date-times

statuses
string^\w+(,\w+)*$
Example: statuses=active,scheduled,expired

A comma separated list of statuses to return results for

Responses

Response samples

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

Create a Suppressed Code

Create a Suppressed Code configuration

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Request Body schema: application/json
required
string or object or Suppressed Code All Values (object)
start_date
required
string <date-time>
end_date
stringnull <date-time>

Responses

Request samples

Content type
application/json
{
  • "voucher_code": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": null
}

Response samples

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

Delete Suppressed Codes

Delete Suppressed Codes. This is only possible if the Suppressed Codes are scheduled, otherwise an error will occur.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

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

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "error": {
    },
  • "code": 400,
  • "message": "Bad Request"
}

Get a Suppressed Code

Get a Suppressed Code instance

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 1001l1

The ID of the Suppressed Code

Responses

Response samples

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

Update a Suppressed Code

Update a Suppressed Code. All request body properties are optional but at least one must be specified for update.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 1001l1

The ID of the Suppressed Code

Request Body schema: application/json
string or object or Suppressed Code All Values (object)
start_date
string <date-time>

The date from which the voucher code is valid. This is inclusive.

string or null

The date until the voucher code is valid. This is inclusive.

Responses

Request samples

Content type
application/json
{
  • "voucher_code": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z"
}

Response samples

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

Delete a Suppressed Code

Delete and Suppressed Code

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 1001l1

The ID of the Suppressed Code

Responses

Exclusive Code

Exclusive codes are assigned to a partner. If a partner’s exclusive code is redeemed, the partner wins the sale - even if they don’t contribute any clicks.

List All Exclusive Codes

Show a list of all configured exclusive codes. May be filtered with several filters.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

query Parameters
limit
integer [ 0 .. 200 ]

Used to limit the response to a number of results

offset
integer >= 0

Used to offset the results we're returning

query
string^[-a-z0-9_]++$

Search for specific codes or partner names

dates
string^.*?,.*?$
Example: dates=2020-10-01T00:00:00Z,2020-10-31T00:00:00Z

Search for codes within a date-time range. Comma separated start and end date-times

statuses
string^\w+(,\w+)*$
Example: statuses=active,scheduled,expired

A comma separated list of statuses to return results for

Responses

Response samples

Content type
application/json
{}

Create an Exclusive Code

Create an Exclusive Code configuration

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Request Body schema: application/json
required
string or object
partner_id
required
string non-empty ^[a-z0-9]+$
start_date
required
string <date-time>
end_date
stringnull <date-time>
is_clickless
boolean
Default: false

Specifies if the Exclusive Code has Clickless Campaign Based Reallocation behaviour. This setting only applies to Master Campaign setups.

Responses

Request samples

Content type
application/json
{
  • "voucher_code": "string",
  • "partner_id": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": null,
  • "is_clickless": false
}

Response samples

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

Delete Exclusive Codes

Delete Exclusive Codes. This is only possible if the Exclusive Codes are scheduled, otherwise an error will occur.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

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

Responses

Request samples

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

Get an Exclusive Code

Get an Exclusive Code instance

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 1001l1

The ID of the Exclusive Code

Responses

Response samples

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

Update an Exclusive Code

Update an Exclusive Code. All request body properties are optional but at least one must be specified for update.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 1001l1

The ID of the Exclusive Code

Request Body schema: application/json
string or object
partner_id
string

The ID of the Partner who will receive commission when this voucher code is used.

start_date
string <date-time>

The date from which the voucher code is valid. This is inclusive.

end_date
stringnull <date-time>

The date until the voucher code is valid. This is inclusive.

is_clickless
boolean
Default: false

Specifies if the Exclusive Code has Clickless Campaign Based Reallocation behaviour. This setting only applies to Master Campaign setups.

Responses

Request samples

Content type
application/json
{
  • "voucher_code": "string",
  • "partner_id": "string",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": null,
  • "is_clickless": false
}

Response samples

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

Delete an Exclusive Code

Delete an Exclusive Code

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 1001l1

The ID of the Exclusive Code

Responses

Preferred Partner

Campaigns can have one preferred partner at any time. A sale will be attributed to a preferred partner if they contribute any clicks to that sale.

List All Preferred Partners

Show a list of all configured preferred partners. May be filtered with several filters.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

query Parameters
limit
integer [ 0 .. 200 ]

Used to limit the response to a number of results. Defaults to 20

offset
integer >= 0

Used to offset the results we're returning

name
string^[-a-z0-9_]++$

Search for partner by name. Alphanumeric with dashes and underscores

dates
string^.*?,.*?$
Example: dates=2020-10-01T00:00:00Z,2020-10-31T00:00:00Z

Search for preferred partners within a date range. Comma separated start and end date

statuses
string^\w+(,\w+)*$
Example: statuses=active,scheduled,expired

A comma separated list of statuses to return results for

Responses

Response samples

Content type
application/json
{}

Create Preferred Partner

Create a Preferred Partner configuration

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Request Body schema: application/json
partner_id
required
string non-empty ^[a-z0-9]+$

The ID of the Partner to prefer for this date range

start_date
required
string <date-time>

The date the partner is considered preferred from

end_date
required
string <date-time>

The date the partner is considered preferred until. This is inclusive.

Responses

Request samples

Content type
application/json
{
  • "partner_id": "10110l567801",
  • "start_date": "2019-08-24T14:15:22Z",
  • "end_date": "2019-08-24T14:15:22Z"
}

Response samples

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

Delete Preferred Partners

Delete Preferred Partners. This is only possible if the Preferred Partners are scheduled, otherwise an error will occur.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

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

Responses

Request samples

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

Delete a Preferred Partner

Delete a Preferred Partner. This is only possible if the Preferred Partner is scheduled, otherwise an error will occur.

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 10110l2398476

The Preferred Partner ID

Responses

Get a Preferred Partner

Get a Preferred Partner by ID

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 10110l2398476

The Preferred Partner ID

Responses

Response samples

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

Update a Preferred Partner

Update Preferred Partner

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

id
required
string
Example: 10110l2398476

The Preferred Partner ID

Request Body schema: application/json
partner_id
string

The ID of the Partner to prefer for this date range

start_date
string <date-time>

The date the partner is considered preferred from

end_date
string <date-time>

The date the partner is considered preferred until. This is inclusive.

Responses

Request samples

Content type
application/json
{
  • "partner_id": "10110l567801",
  • "start_date": "2022-11-01T00:00:00+00:00",
  • "end_date": "2022-11-30T23:59:59+00:00"
}

Response samples

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

In-Cart

Define a period leading up to the time of purchase where clicks will be ignored and not attributed with a commission. Helps prevent last-click poaching.

List In-Cart Settings

Get the In-Cart settings for the given Campaign

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Responses

Response samples

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

Update In-Cart Settings

Update the In-Cart settings for the Given Campaign

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Request Body schema: application/json
threshold
required
integer [ 1 .. 3540 ]

Duration in seconds

Responses

Request samples

Content type
application/json
{
  • "threshold": 1
}

Response samples

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

Split

Split all CPA commissions between the initiator (first click), contributors (supporting click) and convertor (last click) in the click chain.

List Split Settings

Get the Split attribution settings for the given Campaign

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Responses

Response samples

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

Update Split Settings

Update the Split settings for the given Campaign

path Parameters
campaignId
required
string
Example: 111111l1

The ID of the Campaign

Request Body schema: application/json
initiator
number [ 0 .. 100 ]

What portion of the conversion does the initiator receive

contributor_missing
string
Enum: "converter" "initiator" "split"

If no contributors are found, how should the remaining amount be divided?

converter
number [ 0 .. 100 ]

What portion of the conversion does the converter receive

excluded_partners
Array of strings

An array of partner IDs that are not affected by split attribution.

excluded_groups
Array of strings

An array of group IDs that are not affected by split attribution.

Responses

Request samples

Content type
application/json
{
  • "initiator": 50,
  • "contributor_missing": "split",
  • "converter": 50,
  • "excluded_partners": [
    ],
  • "excluded_groups": [
    ]
}

Response samples

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

Publishers

Partner management endpoints

Get publishers list

Get Publishers for Network

path Parameters
network_id
required
string

The publishers' network id

query Parameters
account_created
string
Example: account_created=2020-01-01..2021-01-01

Date range for when partners signed up

string or Array of strings

The publishers' campaign ids

string or Array of strings

The publishers' campaign statuses

string or Array of strings

The publishers' commission group ids

company_name
string

The publishers' company name

fields
string,
Enum: "account_created" "address" "campaigns" "commission_groups" "company_name" "company_logo" "contact_email" "contact_name" "default_currency" "description" "id" "locale" "metadata" "name" "operating_country" "partner_collection_ids" "phone_number" "promotional_countries" "promotional_method" "reporting_identifier" "vertical" "websites" "network_notes" "network_id" "signup_ip"

CSV list of fields to be returned as part of the response

string or Array of strings

Filter by partner IDs

include_discovery
string (Boolean)
Enum: "y" "n"

Whether to include partners with pending requests from brand discovery or invites from partner discovery

limit
integer

The number of records to retrieve

string or Array of strings

The publishers' contact locale (locale codes), see https://api.partnerize.com/reference/locale

string or Array of strings

The publishers' network status. Choosing requested or invited will automatically enable the include_discovery option for convenience.

offset
integer

Starting position

string or Array of strings

The publishers' operating countries (country isos), see https://api.partnerize.com/reference/country

partner_collection_id
string

Filter by partner collection ID

string or Array of strings

The publishers' promotional countries (country isos), see https://api.partnerize.com/reference/country

string or Array of strings

The publishers' promotional methods , see https://api.partnerize.com/reference/promotional_method

publisher_email
string
publisher_name
string

Search by the publishers' company name, falling back the publisher name

string or Array of strings
publisher_website
string
reporting_identifier
string
search
string

Search for matching publishers

sort
string
Example: sort=name

Order results

string or Array of strings

The publishers' verticals, see https://api.partnerize.com/reference/vertical

recipient_status
string
Example: recipient_status=111111l1

Accepts a communication ID. Adds a flag into the response whether publishers are on that communication's recipient list

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "count": 56,
  • "limit": 100,
  • "offset": 0,
  • "publishers": [
    ]
}

Export publishers

Export publishers for a network

path Parameters
network_id
required
string

The publishers' network id

header Parameters
Accept
string
Value: "charset=UTF-16"
Request Body schema: application/json
delimiter
string
Default: ","
Enum: "," "|" "\t"
excluded_publisher_id
Array of strings
Array of objects or objects or objects or objects
string or boolean
fields
Array of strings
Items Enum: "account_created" "campaigns" "company_name" "contact_email" "contact_name" "id" "instant_messaging" "locale" "metadata" "name" "network_id" "network_notes" "operating_country" "phone_number" "promotional_method" "reporting_identifier" "signup_ip" "vertical" "websites" "commission_groups"

Responses

Request samples

Content type
application/json
{
  • "delimiter": ",",
  • "excluded_publisher_id": [
    ],
  • "filter": [
    ],
  • "email_result": "user@example.com",
  • "fields": [
    ]
}

Response samples

Content type
text/csv
created_date,signup_ip,publisher_id,account_name,reporting_identifier,available_campaigns,approved_campaigns,invited_campaigns,requested_campaigns,rejected_campaigns,contact_name,contact_email,company_name,phone_area,phone,im_provider,im_username,operating_country,contact_locale,vertical_name,promotional_method_name,websites_website_url,network_metadata_1,network_metadata_2,network_metadata_3
"2019-10-30 11:08:41",80.80.80.80,111111l1,my_account,acc_reporting_id,"Campaign Avail","Campaign App A,Campaign App B","Campaign Inv","Campaign Req","Campaign Rej","Joe Bloggs",info@partnerize.com,"Partnerize",0191,12345678,Skype,jbskype,GB,en,Retail,PPC,http://www.partnerize.com,"Network metadata 1","Network metadata 2","Network metadata 3"

Get publisher details

Get Publishers Details for Network

path Parameters
network_id
required
string

The publishers' network id

publisher_id
required
string

The publisher id

Responses

Response samples

Content type
application/json
{
  • "id": "10000l1",
  • "name": "Name",
  • "company_name": "Company Name",
  • "company_logo": "http://some.url/image.jpg",
  • "contact_email": "contact@partnerize.com",
  • "locale": "en",
  • "operating_country": {
    },
  • "vertical": {
    },
  • "promotional_method": {
    },
  • "websites": [],
  • "campaigns": [
    ],
  • "commission_groups": [
    ],
  • "partner_collection_ids": [
    ],
  • "signup_ip": "127.0.0.1",
  • "network_notes": "string",
  • "network_id": "111111l1",
  • "account_created": "2020-09-01T14:20:03+00:01",
  • "contact_name": "string",
  • "description": "string",
  • "active": true,
  • "address": {
    }
}

Get publishers ids list

Get a list of publisher ids

path Parameters
network_id
required
string

The publishers' network id

query Parameters
account_created
string
Example: account_created=2020-01-01..2021-01-01

Date range for when partners signed up

string or Array of strings

The publishers' campaign ids

string or Array of strings

The publishers' campaign statuses

string or Array of strings

The publishers' commission group ids

company_name
string

The publishers' company name

fields
string,
Enum: "account_created" "address" "campaigns" "commission_groups" "company_name" "company_logo" "contact_email" "contact_name" "default_currency" "description" "id" "locale" "metadata" "name" "operating_country" "partner_collection_ids" "phone_number" "promotional_countries" "promotional_method" "reporting_identifier" "vertical" "websites" "network_notes" "network_id" "signup_ip"

CSV list of fields to be returned as part of the response

string or Array of strings

Filter by partner IDs

include_discovery
string (Boolean)
Enum: "y" "n"

Whether to include partners with pending requests from brand discovery or invites from partner discovery

limit
integer

The number of records to retrieve

string or Array of strings

The publishers' contact locale (locale codes), see https://api.partnerize.com/reference/locale

string or Array of strings

The publishers' network status. Choosing requested or invited will automatically enable the include_discovery option for convenience.

offset
integer

Starting position

string or Array of strings

The publishers' operating countries (country isos), see https://api.partnerize.com/reference/country

string or Array of strings

The publishers' promotional countries (country isos), see https://api.partnerize.com/reference/country

string or Array of strings

The publishers' promotional methods , see https://api.partnerize.com/reference/promotional_method

publisher_email
string
publisher_name
string

Search by the publishers' company name, falling back the publisher name

string or Array of strings
publisher_website
string
reporting_identifier
string
search
string

Search for matching publishers

sort
string
Example: sort=name

Order results

string or Array of strings

The publishers' verticals, see https://api.partnerize.com/reference/vertical

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "count": 1,
  • "publisher_ids": [
    ]
}

Create publisher collection

Create publisher collection

path Parameters
network_id
required
string

The publishers' network id

Request Body schema: application/json
One of
partner_ids
Array of strings
ttl
integer

Responses

Request samples

Content type
application/json
{
  • "filter": [
    ],
  • "excluded_publisher_ids": [
    ],
  • "expected_count": 0,
  • "ttl": 0
}

Response samples

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

Delete publisher collection

path Parameters
network_id
required
string

The publishers' network id

collection-id
required
string

The collection id

Responses

Response samples

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

Add publishers to a collection

path Parameters
network_id
required
string

The publishers' network id

collection-id
required
string

The collection id

Request Body schema: application/json
One of
partner_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "filter": [
    ],
  • "excluded_publisher_ids": [
    ],
  • "expected_count": 0
}

Response samples

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

Remove publishers from a collection

path Parameters
network_id
required
string

The publishers' network id

collection-id
required
string

The collection id

Request Body schema: application/json
One of
partner_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "filter": [
    ],
  • "excluded_publisher_ids": [
    ],
  • "expected_count": 0
}

Response samples

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

Campaign Requests and Invites

List Partner Campaign Requests and Invites

Lists partners with campaign requests or invites

path Parameters
networkId
required
string

ID of the brand network

query Parameters
vertical_id
string

ID of the vertical being filtered by

promo_method_id
string

ID of the promo method being filtered by

operating_country
string

The operating country code being filtered by

promotional_country
string

The promotional country ISO code

campaign_id
string

ID of the vertical being filtered by

status
string

The status of the interaction

search
string

Query string being search for which gets checked against the applicable fields.

Responses

Response samples

Content type
application/json
{
  • "partners": [
    ],
  • "hypermedia": {
    }
}

List Campaign Requests and Invites Filters.

Lists filters which can be used in conjuction with the List Campaign Requests and Invites contains the values required for the campaign interaction page filters.

path Parameters
networkId
required
string

ID of the brand network

Responses

Response samples

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

Retrieve Partner Campaign Invites and Requests Details.

Retrieve details for campaign invites and requests of a particular partner.

path Parameters
networkId
required
string

ID of the brand network

publisherId
required
string

The ID of the partner

Responses

Response samples

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

Accept Campaign Requests

This endpont is now Obsolete. Use Approve and Invite Partners to Campaigns instead

An Advertiser may accept requests from Partners to join campaigns within their Network. This bulk endpoint allows a user to reject multiple requests in one call. The payload contains one or more campaign ID and partner ID pairs that uniquely identify each campaign request to accept.

path Parameters
networkId
required
string

ID of the network

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
}

Decline Campaign Requests

An Advertiser may decline requests from Partners to join campaigns within their Network. This bulk endpoint allows a user to decline multiple requests in one call. The payload contains one or more campaign ID and partner ID pairs that uniquely identify each campaign request to decline. Each partner and campaign pair must include a decline "reason". Use null if no reason is provided.

path Parameters
networkId
required
string

ID of the network

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
}

Approve and Invite Partners to Campaigns

An Advertiser can invite one or more Network Partners to one or more Campaigns. The user must have manage participation permission over each campaign in the payload. The payload will be validated and invitations will be created only if all fields are valid. If a partner has already been invited or is approved on the campaign, the campaign will be skipped. If the partner has an existing request to join the campaign, the request will be resolved and the partner will be immediately approved on the campaign. Notifications will be sent according to each partner's preferences.

path Parameters
network_id
required
string
header Parameters
X-Prefer
string
Enum: "return-synch" "return-asynch"
Request Body schema: application/json

Selection based requests simply require a list of Publisher and Campaign IDs. The server will create invitations from the combination of the two lists.

Collection based requests require a partner collection creating first.

Alternatively when inviting many Publishers at once, instead of listing every PublisherID, a filter based request allows the user to specify filters with which to match Publishers. In this case, the expected_count should match the count returned from /v2/networks/{network_id}/publishers endpoint. You can exclude specific Publishers by listing their IDs using the excluded_publisher_id property.

One of
partner_collection_id
string
campaign_id
Array of strings

Responses

Request samples

Content type
application/json
Example
{
  • "partner_collection_id": "11111l1",
  • "campaign_id": [
    ]
}

Response samples

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

Display pending outcomes - invitations and approvals

List all potential invitations and approvals for given set of campaigns

path Parameters
network_id
required
any

The network id

query Parameters
partner_collection_id
required
string
campaign_ids
required
Array of strings
search
string
limit
number
offset
number

Responses

Response samples

Content type
application/json
{
  • "partners": [
    ],
  • "count": 3,
  • "limit": 10,
  • "offset": 0
}

Export pending outcomes - invitations and approvals into CSV

CSV all potential invitations and approvals for given set of campaigns

path Parameters
network_id
required
any

The network id

query Parameters
partner_collection_id
required
string
campaign_ids
required
Array of strings

Responses

Response samples

Content type
text/csv
partner_id,partner_name,company_name,partner_website,campaign_id,campaign_name,campaign_status,campaign_approval_date
111111l1,voucherbox_demo,16plus_voucherbox,https://www.bbc.co.uk,111111l1,"Cards & Loans",approved,2019-10-30T11:08:41+00:00

Reject partners from a campaign

An Advertiser can reject one or more Partners from a campaign.

path Parameters
network_id
required
string
header Parameters
X-Prefer
string
Enum: "return-synch" "return-asynch"
Request Body schema: application/json

Selection based requests simply require a list of Publisher IDs. The server will approve publishers in the list.

Collection based requests require a partner collection creating first.

Alternatively when blocking many Publishers at once, instead of listing every PublisherID, a filter based request allows the user to specify filters with which to match Publishers. In this case, the expected_count should match the count returned from /v2/networks/{network_id}/publishers endpoint. You can exclude specific Publishers by listing their IDs using the excluded_publisher_id property.

One of
partner_collection_id
string
campaign_id
array

Responses

Request samples

Content type
application/json
Example
{
  • "publisher_id": [
    ],
  • "campaign_id": [
    ]
}

Response samples

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

Discovery Settings

List discovery settings for brands

Retrieve a list of brands and their campaign discovery settings

path Parameters
show_test_mode
boolean

Decide if campaigns should be returned if they are in test mode (default value: false)

show_hidden
boolean

Decide if campaigns should be returned if they are hidden (default value: false)

Responses

Response samples

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

Update Brand Marketplace settings

Update the discovery settings of the brand

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

Responses

Request samples

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

Response samples

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

Communications

List communications

Lists all communications which the user has access to. Filtering by status is available via a query parameter.

query Parameters
status
string
Enum: "draft" "sent" "scheduled"

A comma separated list of statuses

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communications": [
    ]
}

Creates a new draft communication

Draft communications belong to the user that created them (the owner). Note: this endpoint accepts publisher_ids or recipients, not both together

Request Body schema: application/json
One of
html
required
string

The HTML contents of the communication

unlayer_json
string non-empty Nullable

The Unlayer JSON contents of the communication

name
string <= 64 characters
subject
string <= 128 characters
from_name
string <= 64 characters

The from name to be used

from_email
string <email> <= 255 characters

The from email to be used

reply_to_email
string <email> <= 255 characters

The reply to email to be used

type
string
Default: "general"
Enum: "general" "prospect_invitation"

The purpose of email being sent

campaigns
Array of strings <= 180 items unique
Array of strings or objects

An array containing the emails of the recipients

Responses

Request samples

Content type
application/json
{
  • "html": "<html>Communication content</html>",
  • "unlayer_json": "{}",
  • "name": "Awesome communication",
  • "subject": "Wonderful subject",
  • "from_name": "Joy O'Happy",
  • "from_email": "user@example.com",
  • "reply_to_email": "user@example.com",
  • "type": "general",
  • "campaigns": [
    ],
  • "publisher_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communication": {
    },
  • "hypermedia": {
    }
}

Retrieves a single communication

Retrieves a communication for a given id

path Parameters
id
required
string

The ID of the communication

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communication": {
    }
}

Updates a draft communication

Only the owner of the draft can update it. The recipients of the communication can be defined by a list of emails or by a list of existing partner ids

path Parameters
id
required
string

The ID of the communication

Request Body schema: application/json
One of
Array of strings or objects

An array containing the emails of the recipients

name
string <= 64 characters
subject
string <= 128 characters
from_name
string <= 64 characters

The from name to be used

from_email
string <email> <= 255 characters

The from email to be used

reply_to_email
string <email> <= 255 characters

The reply to email to be used

type
string
Default: "general"
Enum: "general" "prospect_invitation"

The purpose of email being sent

campaigns
Array of strings <= 180 items unique

Responses

Request samples

Content type
application/json
{
  • "publisher_ids": [
    ],
  • "name": "Awesome communication",
  • "subject": "Wonderful subject",
  • "from_name": "Joy O'Happy",
  • "from_email": "user@example.com",
  • "reply_to_email": "user@example.com",
  • "type": "general",
  • "campaigns": [
    ]
}

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communication": {
    }
}

Deletes an existing draft communication

Only the owner of the draft can delete it.

path Parameters
id
required
string

The ID of the communication to be deleted

Responses

Returns the content of a communication

Returns the HTML content of an existing communication.

path Parameters
id
required
string

The ID of the communication

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "html": "<html>communication content</html>",
  • "unlayer_json": "{}"
}

Updates the content of a communication

Updates the HTML content of an existing communication.

path Parameters
id
required
string

The ID of the communication

Request Body schema: application/json
html
required
string

The HTML contents of the communication

unlayer_json
string non-empty Nullable

The Unlayer JSON contents of the communication

Responses

Request samples

Content type
application/json
{
  • "html": "<html>Communication content</html>",
  • "unlayer_json": "{}"
}

Sends a communication preview

Send a preview of a communication

Request Body schema: application/json
html
string

The HTML contents of the communication

recipients
Array of strings

An array containing the emails of the recipients

Responses

Request samples

Content type
application/json
{
  • "html": "string",
  • "recipients": [
    ]
}

Sends or schedules a draft communication

Send a Communication

path Parameters
id
required
string

The ID of the communication

Request Body schema: application/json
send_date
string

The date when the communication will be sent (at least 15 minutes in the future), or the string "immediately" for immediate sending

timezone
string <= 64 characters

The timezone of the "send_date" as listed here https://www.php.net/manual/en/timezones.php.
Ignored if the value of "send_date" is "immediately"

Responses

Request samples

Content type
application/json
{
  • "send_date": "2019-06-17 12:34:56",
  • "timezone": "Europe/London"
}

Cancels a scheduled communication

Cancels the scheduling of a previously scheduled communication. This will change the communication status to draft.

path Parameters
id
required
string

The ID of the communication to be cancelled

Responses

Communications summary report

Retrieves summary report for all sent communications.

query Parameters
limit
integer
Default: 100

The number of records to retrieve

offset
integer
Default: 0

Starting position

Responses

Response samples

Content type
application/json
{
  • "count": 17,
  • "limit": 100,
  • "offset": 0,
  • "summary": [
    ]
}

Platform Communications

Get platform events list

Returns the available events for triggering platform communications

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "events": [
    ]
}

Create platform communication

Creates a platform communication that can be triggered automatically when a given event occurs

Request Body schema: application/json
event_id
required
string
html
string
unlayer_json
string non-empty Nullable
name
string
subject
string <= 128 characters
from_name
string
reply_to_email
string
event_properties
object
disable
boolean

Responses

Request samples

Content type
application/json
{
  • "event_id": "100l01",
  • "html": "<html>platform email content</html>",
  • "unlayer_json": "{}",
  • "name": "Sign Up Confirmation",
  • "subject": "Sign Up Confirmation",
  • "from_name": "John Smith",
  • "reply_to_email": "someone@partnerize.com",
  • "event_properties": {
    },
  • "disable": true
}

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "platform_communication": {
    }
}

Get platform communications list

Returns all existing platform communications

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "platform_communications": [
    ]
}

Deletes an existing platform communication

Deletes an existing platform communication

path Parameters
id
required
string

The ID of the platform communication to be deleted

Responses

Update an existing platform communication content

Updates an existing platform communication content

Request Body schema: application/json
html
required
string
unlayer_json
string non-empty Nullable

Responses

Request samples

Content type
application/json
{
  • "html": "<html>platform email content</html>",
  • "unlayer_json": "{}"
}

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "platform_communication": {
    }
}

Returns the content of a platform communication

Returns the HTML content of an existing platform communication.

path Parameters
id
required
string

The ID of the platform communication

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "html": "<html>platform communication content</html>",
  • "unlayer_json": "{}"
}

Validate content

A helper endpoint which can be used to validate the html for a platform communication

Request Body schema: application/json
html
string

The HTML contents of the platform communication

unlayer_json
string non-empty Nullable

The Unlayer JSON contents of the platform communication

Responses

Request samples

Content type
application/json
{
  • "html": "<html>platform communication content</html>",
  • "unlayer_json": "{}"
}

Placeholders

Placeholders list

Returns a list of all available placeholders

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "placeholders": [
    ]
}

Communication Templates

Get a list of communication templates

query Parameters
name
string

Name of template to search by

source
string
Enum: "partnerize" "unlayer"

Source of the template to filter by

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communication_templates": [
    ]
}

Creates a new communication template

Request Body schema: application/json
name
required
string [ 1 .. 128 ] characters
unlayer_json
required
object non-empty
html
required
string non-empty
visibility
string
Default: "user"
Enum: "user" "network"
thumbnail
required
string non-empty

The url for the communication template thumbnail

Responses

Request samples

Content type
application/json
{
  • "name": "My comms template",
  • "unlayer_json": { },
  • "html": "string",
  • "visibility": "user",
  • "thumbnail": "string"
}

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communication_template": {
    }
}

Get a single communication template

path Parameters
id
required
string

ID of the template to get

query Parameters
source
required
string
Enum: "partnerize" "unlayer"

Whether the template is from Partnerize or Unlayer

Responses

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communication_template": {
    }
}

Updates a communication template

path Parameters
id
required
string

ID of the template to patch

Request Body schema: application/json
name
string [ 1 .. 128 ] characters
unlayer_json
object non-empty
html
string non-empty
visibility
string
Default: "user"
Enum: "user" "network"
thumbnail
string non-empty

The url for the communication template thumbnail

Responses

Request samples

Content type
application/json
{
  • "name": "My comms template",
  • "unlayer_json": { },
  • "html": "string",
  • "visibility": "user",
  • "thumbnail": "string"
}

Response samples

Content type
application/json
{
  • "execution_time": "0.08853 seconds",
  • "communication_template": {
    }
}

Delete a single communication template

path Parameters
id
required
string

ID of the Partnerize template to delete

Responses

Get a single communication template's thumbnail

path Parameters
id
required
string

ID of the template to get

query Parameters
source
required
string
Enum: "partnerize" "unlayer"

Whether the thumbnail is for a Partnerize or Unlayer template

Responses

Campaign Conversions

Bulk update of conversions

Allows for conversion update operations to be performed on conversions within a particular campaign. This can be achieved using the conversion_id, conversion_item_id or conversion_reference identifiers depending on what works best in the situation.

Any changes to status at the conversions or conversion_references level will be applied to all items within that conversion, provided the individual item is allowed to be updated. Should you want to be more explicit with status (or any other field) updates then the conversion_items key allows this.

Note Only one of the accepted parameters to the payload (conversions, conversion_items, or conversion_references) can be used at once, each allowing a maximum of 100,000 items.

Deprecates POST /campaign/{campaignID}/conversion

path Parameters
campaignID
required
string

Id of the Campaign

Request Body schema: application/json
One of
required
object (conversions)
object (conversion items)
object (conversion references)

Responses

Request samples

Content type
application/json
Example
{
  • "conversions": {
    }
}

Response samples

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

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": {
    }
}

Jobs

Get a list of jobs for the user

Returns a list of jobs for the api user

query Parameters
type
string

Job type to filter by

reference
string

Job reference to filter by. Performs a partial match, eg "partner" would match a reference of "partnerize", "dance-partner" and "partner".

offset
integer
Default: 0

Pagination offset

limit
integer
Default: 20

Pagination limit

Responses

Response samples

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

Get a single job

Returns information about a single v3 job by the given ID

path Parameters
jobID
required
string

Id of the job

Responses

Response samples

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

Get tasks for a job

Returns a list of tasks for a given job

path Parameters
jobID
required
string

Id of the job

query Parameters
offset
integer
Default: 0

Pagination offset

limit
integer
Default: 20

Pagination limit

Responses

Response samples

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

Get detailed task information

Returns detailed information for a given task

path Parameters
jobID
required
string

Id of the job

taskID
required
string

Id of the task

Responses

Response samples

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

Replay a job

Resubmits a job in to the queue for re-processing. Only jobs of type conversion_bulk_update can be replayed.

path Parameters
jobID
required
string

Id of the job

Responses

Response samples

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

Replay a job

Resubmits a task in to the queue for re-processing. Only tasks of type conversion_bulk_update can be replayed.

path Parameters
jobID
required
string

Id of the job

taskID
required
string

Id of the task

Responses

Response samples

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

Brand Conversions

Retrieve a Brand Conversions Report

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

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

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_modified or approved_at the response will only include conversions that were last modified or approved at in 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[publisher][]=111111l29. Supported values are: publisher, product, advertiser_reference.

statuses[]
string
Example: statuses[]=approved

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

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
  • invoice_create_date
  • invoice_paid_date
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
{
  • "total_conversion_count": {
    },
  • "total_commission_value": {
    },
  • "total_publisher_commission": {
    },
  • "total_value": {
    },
  • "start_date_time_utc": "2019-08-10 00:00:00",
  • "end_date_time_utc": null,
  • "start_date_time": "2020-05-13 00:00:00",
  • "end_date_time": "2020-05-13 00:00:00",
  • "limit": 300,
  • "meta_data": [ ],
  • "count": 1,
  • "execution_time": "1.97706 seconds",
  • "conversions": [
    ]
}

Brand Clicks

Retrieve a Brand Clicks Report

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

path Parameters
campaign_id
required
string
Example: 10l176

ID of the Campaign

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_modified or approved_at the response will only include conversions that were last modified or approved at in 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[publisher][]=111111l29. Supported values are: publisher, product, advertiser_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": null,
  • "start_date_time": "2020-05-13 00:00:00",
  • "end_date_time": "2020-05-13 00:00:00",
  • "limit": 300,
  • "offset": 0,
  • "count": 2,
  • "execution_time": "0.50885 seconds",
  • "clicks": [
    ]
}

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 defined Campaign or Partner and within the requested time period.

query Parameters
campaign_id
required
string
Example: campaign_id=10l176

ID of the campaign. You must provide either this parameter or publisher_id.

publisher_id
required
string
Example: publisher_id=1l1007802

ID of the partner. You must provide either this parameter or campaign_id

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 defined Campaign or Partner and within the requested time period. This report will give you details of orders at the basket level

query Parameters
campaign_id
required
string
Example: campaign_id=10l176

ID of the campaign. You must provide either this parameter or publisher_id.

publisher_id
required
string
Example: publisher_id=1l1007802

ID of the partner. You must provide either this parameter or campaign_id.

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 based 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 defined Campaign or 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
campaign_id
required
string
Example: campaign_id=10l176

ID of the campaign. You must provide either this parameter or publisher_id.

publisher_id
required
string
Example: publisher_id=1l1007802

ID of the partner. You must provide either this parameter or campaign_id

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 based 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
  • invoice_create_date
  • invoice_paid_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,,,,,,,,,,

Reporting on Meta data

Reporting Meta is functionality that allows Brands to generate reports based on specific meta data.

List all Meta Reports for a Campaign

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Responses

Response samples

Content type
application/json; charset=utf-8
{
  • "count": 143,
  • "execution_time": "0.09004 seconds",
  • "reports": [
    ]
}

Create a Meta Report for a Campaign

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Request Body schema: application/json
filter
required
array

The filter options for the report

filter_meta_conversion
required
array

The conversion filter options for the report

filter_meta_item
required
array

The item filter options for the report

name
required
string

Name of the report

output_currency
string (Currency)
Enum: "GBP" "USD" "EUR" "JPY"
start_date
required
string

Start Date of the report

end_date
required
string

End Date of the report

Responses

Request samples

Content type
application/json
{
  • "end_date": "2017-01-01 00:00:00",
  • "filter": [
    ],
  • "filter_meta_conversion": [
    ],
  • "filter_meta_item": [
    ],
  • "name": "Test Report",
  • "output_currency": "GBP",
  • "start_date": "2016-01-01 00:00:00"
}

Response samples

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

Delete a Meta Report for a Campaign

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

report_id
required
string
Example: 123

ID of the report

Responses

Response samples

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

Retrieve a Meta Report for a Campaign

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

report_id
required
string
Example: 123

ID of the report

Responses

Response samples

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

View the results of a Meta Report for a Campaign.

The endpoint allows you to retrieve the results of a specified Meta Report for a Campaign. The endpoint supports .csv format. Use ../campaign/{campaign_id}/reporting/meta/reports/{report_id}/results.csv to export the results as a csv file.

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

report_id
required
string
Example: 123

ID of the report

Responses

Response samples

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

List all Meta Values for a Campaign

path Parameters
campaign_id
required
string
Example: 10l176

ID of the campaign

Responses

Response samples

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

List all Meta Whitelist Keys for a Campaign

Responses

Response samples

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

Incidents

List Incidents

Get all incidents that are not dismissed ordered by date descending

path Parameters
campaign_id
required
string

Campaign ID

query Parameters
partner_id
string

Partner ID to filter

ip_address
string

IP address to filter

metric
string
Enum: "volume_clicks" "volume_conversions" "conversion_ratio" "basket_variability_sku" "conversion_value" "ttc"

Filter the query by incident metric. This parameter must be used in conjunction with type.

type
string
Enum: "partner" "conversion" "ip_address"

Filter the query by incident type. This parameter must be used in conjunction with metric.

status
string
Enum: "active" "deleted"

Filter the query by incident status.

start_date
string <date>

Only include incidents after this date.

end_date
string <date>

Only include incidents before this date.

cursor_id
string

Cursor used for pagination.

limit
integer

Limit the number of incidents returned.

Responses

Response samples

Content type
application/json
{
  • "limit": 1,
  • "cursor_id": "1234l12345678",
  • "incidents": [
    ],
  • "hypermedia": {
    }
}

Get Incident

Get a specific incident

path Parameters
campaign_id
required
string

Campaign ID

incident_id
required
string

Incident ID

Responses

Response samples

Content type
application/json
Example
{
  • "incident": {
    },
  • "hypermedia": {
    }
}

Delete Incident

Delete a specific incident

path Parameters
campaign_id
required
string

Campaign ID

incident_id
required
string

Incident ID

Responses

Response samples

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

Get Incidents Aggregation

Get an aggregated total of incidents by day

path Parameters
campaign_id
required
string

Campaign ID

query Parameters
start_date
required
string <date>

Only include incidents after this date.

end_date
required
string <date>

Only include incidents before this date.

Responses

Response samples

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

Reject Partner

Reject a Partner due to fraudulent claims. This means that the partner will no longer be valid for this Campaign

path Parameters
campaign_id
required
string

Campaign ID

incident_id
required
string

Incident ID

Responses

Response samples

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

Reject Fraudulent Conversions

Reject fraudulent conversions for the Incident

path Parameters
campaign_id
required
string

Campaign ID

incident_id
required
string

Incident ID

Responses

Response samples

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

Set Incident Conversion status to Pending

Set Incident Conversion status to Pending

path Parameters
campaign_id
required
string

Campaign ID

incident_id
required
string

Incident ID

Responses

Response samples

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

List Incident-partners

Get a list of all partners that are associated with incidents.

path Parameters
campaign_id
required
string

Campaign ID

query Parameters
metric
string
Enum: "volume_clicks" "volume_conversions" "conversion_ratio" "basket_variability_sku" "conversion_value" "ttc"

Filter the query by incident metric. This parameter must be used in conjunction with type.

type
string
Enum: "partner" "conversion"

Filter the query by incident type. This parameter must be used in conjunction with metric.

status
string
Enum: "active" "deleted"

Filter the query by incident status.

start_date
string <date>

Only consider incidents after this date.

end_date
string <date>

Only consider incidents before this date.

Responses

Response samples

Content type
application/json
{
  • "incident-partners": [
    ]
}

Metrics

List Metrics

Get Fraud Metrics for the campaign, including a count of each

path Parameters
campaign_id
required
string

Campaign ID

query Parameters
start_date
string <date>

Only count incidents after this date.

end_date
string <date>

Only count incidents before this date.

Responses

Response samples

Content type
application/json
{
  • "metrics": [
    ],
  • "count": 0
}

Partner Whitelisting

Get Whitelisted Partners

Retrieve all whitelisted partners

path Parameters
campaign_id
required
string

Campaign ID

Responses

Response samples

Content type
application/json
{
  • "execution_time": "string",
  • "count": 1,
  • "whitelisted-partners": [
    ]
}

Whitelist Partner

Whitelist a trusted Partner.

path Parameters
campaign_id
required
string

Campaign ID

Request Body schema: application/json
partner_id
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "partner_id": "string",
  • "campaign_id": "string"
}

Remove Partner from Whitelist

Remove a partner from the whitelist

path Parameters
campaign_id
required
string

Campaign ID

Responses

Response samples

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

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_commission 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_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/brand/analytics/<data-source>/<endpoint>

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

/v3/brand/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
partner partner_id, partner_name
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 the campaign ID's that you wish to filter by.

"scope": {
  "campaigns": ["1", "2"],
}

The example above will first check you have access to campaign ID's 1 and 2. If you do have access, you will receive results for those two campaigns.

If you do not have access to one or more requested campaigns you will receive a 403 Forbidden response.

Please see the Tutorials section for an example of how to filter by partners.

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 Partner 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/brand/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 the Campaign IDs:

{
   "scope":{
      "campaigns":[
         "campaign_id_1",
         "campaign_id_2"
      ]
   },
   "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 broken down by 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_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 /brand/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_commission"
   ],
   "group_by":[
      "campaign",
      "country",
      "currency"
   ],
   "order_by":[
      {
         "field":"total_commission",
         "direction":"DESCENDING"
      }
   ],
   "top":10,
   "scope":{
      "campaigns":[
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
   },
   "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 Total Partner Commision for approved and pending Converison broken down by Partner 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/brand/analytics/conversions/explode endpoint like in the previous example above.

+------------+--------------+----------+--------------------------+
| partner_id | partner_name | status   | total_partner_commission |
|            |              |          |                          |
+------------+--------------+----------+--------------------------+
| 1          | Partner 1    | pending  | 200.00                   |
+------------+--------------+----------+--------------------------+
| 1          | Partner 1    | approved | 150.00                   |
|            |              |          |                          |
|            |              |          |                          |
+------------+--------------+----------+--------------------------+
| 2          | Partner 2    | pending  | 350.00                   |
+------------+--------------+----------+--------------------------+
| 2          | Partner 2    | approved | 100.00                   |
+------------+--------------+----------+--------------------------+

To do the filtering it requires a filter_by property:

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

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":{
      "campaigns":[
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
   },
   "filter_by":[
      {
         "field":"conversion_status",
         "operator":"EQUALS",
         "value":[
            "approved",
            "pending"
         ]
      }
   ],
   "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 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/brand/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":{
      "campaigns":[
         "1",
         "2",
         "3",
         "4",
         "5"
      ]
   },
   "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. This is why this endpoint is useful for driving charts and graphs. Again, we highly recommend this over using the Explode endpoint.

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

With the request body of:

{
   "metrics":[
      "total_conversion_items",
      "total_commission"
   ],
   "output_currency":"GBP",
   "interval":{
      "period":"P1D"
   },
   "scope":{
      "campaigns":[
         "1",
         "2"
      ]
   },
   "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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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" "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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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" "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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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

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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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

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_reference" "conversion_status" "conversion_type" "country" "creative" "currency" "customer_reference" "customer_type" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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_reference" "conversion_status" "conversion_type" "country" "creative" "currency" "customer_reference" "customer_type" "date_time" "device" "os_family" "os_major" "os_minor" "os_patch" "partner" "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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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

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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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" "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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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" "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 specified campaign identifiers. You must have the correct authorisation to view reporting data on these campaigns.

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": [
    ]
}

Verticals

List all Verticals

Reference data endpoint which lists all the verticals.

Responses

Response samples

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

Locales

List all Locales

List all active locales.

Responses

Response samples

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

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": [
    ]
}

Currency countries

List Country Currency Combinations

List all Country Currency Combinations

Responses

Response samples

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

Devices

List all Devices

List all device types.

Responses

Response samples

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

US States

List US States

List all US states.

Responses

Response samples

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

Timezones

List all Timezones

List all the timezones.

Responses

Response samples

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

Campaign Extra Fields

List all Campaign Extra Fields

List all the types of campaign extra fields.

Responses

Response samples

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

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": [
    ]
}

Website Types

List Website Types

List all the website types.

Responses

Response samples

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

Promotional Methods

List all Promotional Method

List all the types of payment methods.

Responses

Response samples

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

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": [
    ]
}

Campaign v3

Get campaign

Return information about a single campaign from the provided ID.

path Parameters
campaignId
required
string

The ID of the Partnerize campaign to be returned

query Parameters
extra_info
string
Example: extra_info=allow_deep_linking,campaign_logo

Comma-separated list of extra_info to fetch; defaults to none; supply * to fetch all; unknown values will be ignored

Responses

Response samples

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

Partial campaign update

Update some information of a campaign.

path Parameters
campaignId
required
string

The ID of the Partnerize campaign to be returned

Request Body schema: application/json
object

Any campaign extra_info to update. Key must be a supported extra_info.

Responses

Request samples

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

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
brand_id
string
Example: brand_id=111111l3

ID of the brand 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 brand. 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

The ID of the Partnerize Tag to be returned

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
Example
{
  • "name": "first-party-tracking",
  • "config": null
}

Response samples

Content type
application/json; charset=utf-8
Example
{
  • "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

Network Terms and Conditions (v3)

List network terms and conditions

Lists all network terms and conditions that must be accepted by a brand

query Parameters
network_id
required
string
Example: network_id=1111l11

Filter by a network

types
string,
Value: "partner_recruitment"

Filter by terms and conditions types

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.

Responses

Response samples

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

Network Terms and Conditions Acknowledgments (v3)

Create network terms and conditions acknowledgment

Create an acknowledgement for network terms and conditions

Request Body schema: application/json
network_id
required
string
terms_locale_id
string

Responses

Request samples

Content type
application/json
{
  • "network_id": "0000l00",
  • "terms_locale_id": "1010l00"
}

Commission Groups

List commission groups

Lists all network commission groups

query Parameters
network_id
required
string
Example: network_id=1111l11

Filter by a network

active
boolean,
Default: true

Whether the commission groups are still ongoing

has_participation
boolean

Only return commission groups that have partners participating

Responses

Response samples

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

Paid Search Violations

Create a paid search violation

Create a paid search violation time frame for a given participation

path Parameters
participationId
required
string
Example: 1111l11

The ID of the participation that the paid search violation will be applied to

Request Body schema: application/json
start_date_time
string <date-time>

Datetime when the violation time window should start. The field is optional and will default to the current datetime

end_date_time
string <date-time> Nullable

Datetime when the violation time window should end. The field is optional and will default 'null'. If this field is 'null' then all commissions for the participation after the 'start_date_time' will not be paid to the partner

Responses

Request samples

Content type
application/json
{
  • "start_date_time": "2024-10-10T12:01:00+00:00",
  • "end_date_time": "2025-10-10T12:01:00+00:00"
}

Response samples

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

List paid search violations

Get a timeline of paid search violations for a given participation

path Parameters
participationId
required
string
Example: 1111l11

The ID of the participation that the paid search violation is associated with

Responses

Response samples

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

Delete a paid search violation

Deletes or ends a paid search violation. If a paid search violation has been started but the end date has not elapsed, then the end date will be updated to the current datetime. If the paid search violation has not been started then the paid search violation will be completely deleted.

path Parameters
participationId
required
string
Example: 1111l11

The ID of the participation that the paid search violation is associated with

paidSearchViolationId
required
string
Example: 1111l11

The ID of the paid search violation that will be deleted

Responses

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": {
    }
}