openapi: 3.0.1
info:
title: Partnerize Brands Attribution Campaign Requests and Invites API
version: 1.4.99
description: "# Introduction\n\nThis is the full external API documentation for the [Partnerize](http://partnerize.com/) 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.\n\nYou 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/Quick-Start) section for a quick start tutorial on making your first API call.\n\n# Versioning\n\n 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`. \n 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.\n\n# Quick Start\n\nThis tutorial takes you through creating your first Partnerize API call. The example below demonstrates how to:\n\n1. Obtain your API keys\n2. Generate an Authorization header\n3. Make your first Partnerize API request\n\n*Step 1.* Obtaining your API keys\n\n1. Login to the Partnerize console at [https://console.partnerize.com](https://console.partnerize.com/).\n2. Go to Settings – the _User Application Key_ and User _API key_ can be found under Account settings.\n\n*Step 2.* Generate an Authorization header\n\nAuthentication is achieved by providing an Authorization header in the following format:\n\n`Authorization: Basic cDN0ZXcxNDV5M3RhZzQxbjowaHkzNGho`\n\nWhere `cDN0ZXcxNDV5M3RhZzQxbjowaHkzNGho` is the Base64 encoding of the _User Application Key_ and _User API key_ joined by a colon ':'.\n\nRefer to the [_Access and Authentication_](#section/Common-API-Conventions/Access-and-Authentication) section for more details.\n\n*Step 3.* Make your first Partnerize API request\n\nIn 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.\n\nIn the example below, replace the {personal\\_token} with the one generated in the previous step:\n\n`curl -X GET https://api.partnerize.com/network -H 'Authorization: Basic {personal_token}'`\n\nThe response will contain a collection of networks:\n\n```\n{\n \"count\": 1,\n \"execution_time\": \"0.20239 seconds\",\n \"networks\": [\n {\n \"network\": {\n \"network_id\": 1,\n \"network_name\": \"Partnerize\",\n \"network_description\": \"Test Network\",\n \"network_notes\": \"This is a test Partnerize network\",\n \"network_application_id\": 2,\n \"auto_approve_publishers\": \"n\",\n \"default_campaign_id\": null,\n \"cm_client_id\": “b4d0d85cff813cdce092c261b2b200”,\n \"network_contact_email\": null,\n \"network_locale\": \"en\"\n }\n }\n ]\n}\n``` \n\n# API Change Management Policy\n\n## Types of changes\n\n### Backwards-compatible changes\n\nConsumers of the Partnerize API should ensure that their applications can handle backwards-compatible changes. Examples of what Partnerize considers to be backwards-compatible changes:\n\n* Introducing new resources\n* Introducing new optional request parameters to existing API resources\n* Introducing new properties in the responses of existing API resources\n* Introducing new methods to existing API resources\n* Introducing new headers to existing responses\n* Changing the order of existing response properties\n\nPartnerize will be making backwards-compatible changes without advanced notice. The changes will be communicated by updating the API documentation. \n\n### Breaking changes\n\nBreaking changes would usually require changes in the code of a Partnerize API consumer. Examples of what Partnerize considers to be breaking changes:\n\n* Removing a resource (see _API Resource Deprecation_ below)\n* Removing or renaming properties in existing responses\n* Removing documented response headers\n* Introducing new mandatory request parameters or header\n* Making an optional request parameter or header to mandatory\n\nPartnerize will announce breaking changes at least 3 months in advance. \n\n### Hotfix changes\n\nPartnerize 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. \n\n## API resource deprecation\n\nPartnerize 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. \n\n# Common API Conventions\n\n## Terminology\n\nOlder 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. \n\n## Access and Authentication\n\nThe 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_](#section/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:\n\n- username: *application\\_key*\n- password: *user\\_api\\_key*\n\n `Authorization: Basic cDN0ZXcxNDV5M3RhZzQxbjowaHkzNGho`\n\nAccess to data and operations of certain endpoints is dependent on the access rights of the user. \n\n## Requests\n\nAll API requests must be made over [HTTPS](https://en.wikipedia.org/wiki/HTTPS) and contain a valid Authorization header value.\n\n## Standard Pagination\n\nCertain 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.\n\nAny endpoint that supports pagination will return 3 attributes to support this:\n\n- `offset` the current offset of the data returned\n- `limit` the number of results to which the output was restricted\n- `count` the total number of results available\n\nIf `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.\n\n### Paging\n\nTo paginate through a result set, you can use a combination of 2 parameters:\n\n| **Parameter** | **Description** | **Notes** |\n| --- | --- | --- |\n| `offset` | Offset the results by a given amount | Integer, defaults to `0` |\n| `limit` | Limit the number of results returned | Integer, maximum limit is defined in result set headers |\n\nFor 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.\n\nThere are 2 considerations when doing this:\n\n- 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.\n- 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.\n\n### Hypermedia\n\nIt 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.\n\n```\n\"hypermedia\": {\n \"pagination\": {\n \"total_page_count\": 15,\n \"total_item_count\": 51234,\n \"first_page\": \"/user.json?limit=100&offset=0\",\n \"last_page\": \"/user.json?limit=100&offset=1400\",\n \"next_page\": \"/user.json?limit=100&offset=100\",\n \"previous_page\": null\n }\n}\n```\n\n## Cursor Pagination\n\nFor 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.\n\nTo 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.\n\nThis 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.\n\n### Paging\n\nTo paginate through a result set, you can use a combination of 2 parameters:\n\n| **Parameter** | **Description** | **Notes** |\n| --- | --- | --- |\n| `cursor_id` | Cursor value that defines client position in result set | Integer |\n| `limit` | Limit the number of results returned | Integer, maximum limit is 300 |\n\nFor 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.\n\n### Hypermedia\n\nThe hypermedia object has been updated to automatically include the relevant `cursor_id` and limit for the next page.\n\n```\n\"hypermedia\": {\n \"pagination\": {\n 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\",\n 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\"\n }\n}\n```\n\n## Rate Limits\n\nTo protect our API users, API endpoints will rate limit based on usage.\nIf violated, the API will respond with with a 429 http status code with the following body:\n\nv1 API:\n\n {\n \"error\": {\n \"message\": \"Too Many Requests\",\n \"type\": \"429\"\n }\n }\n\nv2 API:\n\n {\n \"error\": {\n \"errors\": [\n ],\n \"code\": \"429\",\n \"message\": \"Too Many Requests\"\n }\n }\n\nv3 API:\n\n {\n \"error\": {\n \"errors\": [\n {\n \"property\": \"\",\n \"message\": \"You have made too many requests recently, please try again later.\",\n \"code\": \"3b22ff00-96a5-4fa4-96cc-f36e68dbd2e2\",\n \"type\": \"too_many_requests\"\n }\n ],\n \"message\": \"Too Many Requests\",\n \"code\": \"429\"\n }\n }\n\nTo help monitor your API usage, the following headers will be returned via the API to help moderate the integration:\n\n| Code | Data Type | Description |\n|-------------------------|-----------|-------------------------------------------------------|\n| `X-RateLimit-Limit` | integer | How many tokens are permitted |\n| `X-RateLimit-Remaining` | integer | How many tokens are left in the specified time period |\n| `X-RateLimit-Reset` | integer | How many seconds until the throttle resets itself |\n| `X-RateLimit-Retry-After` | integer | How mow many seconds to wait to retry |\n\n# Version 1 API Conventions\n\n## Requests\n\n### Base URL\n\nThe base URL for version 1 API endpoints is [https://api.partnerize.com/](https://api.partnerize.com/)\n\n## Response Formats\n\nThe 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:\n\n| **Format** | **Header** | **Notes** |\n| --- | --- | --- |\n| `.json` | `Content-Type: application/json` | |\n| `.xml` | `Content-Type: text/xml` | |\n| `.csv` | `Content-Type: application/octet-stream` | Only available on specific endpoints |\n\n\n## Rate limit response\nWhenever 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](#section/Common-API-Conventions/Rate-Limits) for more information on this.\n\n\n**Sample JSON response body when a rate limit is hit.**\n```\n{\n \"error\": {\n \"message\": \"Too Many Requests\",\n \"type\": \"429\"\n }\n }\n```\n\n## Compression\n\nThe API is compression-enabled. To control whether the API response is compressed, send the relevant `Accept-Encoding` HTTP header:\n\n- Request: `Accept-Encoding: gzip`\n- Response: `Content-Encoding: gzip`\n\n# Version 2 API Conventions\n\n## Requests\n\n### Base URL\n\nThe base URL for version 2 API endpoints is [https://api.partnerize.com/v2](https://api.partnerize.com/v2).\n\n### Supported HTTP Verbs\n\nPartnerize's API uses appropriate HTTP verbs where possible. Endpoints support one or more of the following HTTP verbs:\n\nGET – GET requests retrieve one or more entities and are always read-only. A successful request returns a response with a 200 _OK_ status code.\n\nPOST – 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. \n\nPUT – 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.\n\nPATCH – Used to do partial updates to Partnerize entities. A successful request returns a response with a 200 _OK_ status code.\n\nDELETE – 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.\n\nIf an endpoint doesn't support a particular method, it will return a response with a 405 _Method Not Allowed_ code.\n\n## Responses\n\nVersion 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:\n\n### HTTP Status Codes Summary\n\n| **HTTP Status Code** | **Description** |\n| --- | --- |\n| `200 OK` | The request was successfully completed. A 200 status is returned for a successful GET, PUT, PATCH and sometimes DELETE methods. |\n| `201 Created` | The request was successful and a resource was created. The response usually includes an identifier for the newly created resource. |\n| `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.|\n| `204 No content` | The request was successfully completed and there is no payload in the response. |\n| `400 Bad Request` | The request could not be processed because it contains missing or invalid information. See [Errors](#section/Version-2-API-Conventions/Errors) for more details. |\n| `401 Unauthorized` | The request is not authorized. The request could not be authenticated becuase of wrong or invalid credentials used in the Authorization header. |\n| `403 Forbidden` | The user is not authorized to perform this action. |\n| `404 Not Found` | The request includes a resource URI that cannot be found by the server. |\n| `405 Method Not Allowed` | The request method, e.g. POST, is not allowed for the resource identified by the request URI. |\n| `429 Too Many Requests` | The user has exceeded the quota for a particular request. See [Rate limits](#section/Common-API-Conventions/Rate-Limits) for more information on this. |\n| `500 Internal Server Error` | Generic server error. The server encountered an unexpected condition that prevented it from fulfilling the request. |\n| `503 Internal Server Error` | The service is temporarily unavailable. |\n\nSee the [Errors](#section/Version-2-API-Conventions/Errors) section below for more details on error responses.\n\n### Response format\n\n#### Top level attributes\n\nEach response document contains an `execution_time` top level attribute. \n\n#### Collections response\n\nIn 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.\n\nExample:\n\n```\n{\n \"execution_time\": \"1.11761 seconds\",\n \"count\": 0,\n \"commissions\": []\n}\n``` \n\n#### Single resource response\n\nExample:\n\n```\n{\n \"execution_time\": \"1.11761 seconds\",\n \"commission\": {\n \"id\": '1234',\n }\n}\n``` \n\n## Errors\n\nThe Version 2 API uses the above mentioned standard HTTP status codes to indicate the success or failure of the API calls.\nThe body of the response will be JSON in the following format:\n\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"property\": \"evaluation_period\",\n \"type\": \"validation_error\",\n \"code\": \"required_property\",\n \"message\": \"Parameter 'evaluation_period' is required\"\n }\n ],\n \"code\": \"400\",\n \"message\": \"Bad Request\"\n }\n}\n```\n\n| Attribute | Type | Description |\n|-----------|---|-------|\n| `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. |\n| `code` | string | An error code representing the error(s) which has occured, this typically matches the HTTP status code. |\n| `message` | string | A human-friendly message describing the error(s) which has occured. |\n\n### Bad Request (Code 400)\nIf 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).\n\n| Code | Description |\n|--|--|\n| `invalid_property_format` | Invalid date format. |\n| `invalid_type` | Invalid parameter type. For example when an array is expected and the input was different type. |\n| `invalid_value` | The value is out of bounds. |\n| `required_property` | Missing parameter. |\n| `invalid_lower_bound` | The value is too low. |\n| `invalid_upper_bound` | The value is too hogh. |\n| `invalid_enum_value` | The value must be one of a specified list of values. |\n| `invalid_max_length` | Maximum number of characters reached. |\n| `invalid_property` | The property is invalid. |\n\n### Unauthorized (Code 401)\nIf there is an error with your authentication credentials, you’ll receive a “401 Unauthorized” http response. \n\n**Sample JSON response body**\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"type\": \"error\",\n \"code\": \"unauthorized\",\n \"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'\"\n }\n ],\n \"code\": \"401\",\n \"message\": \"Unauthorized\"\n }\n}\n```\n\n### Forbidden (Code 403)\nIf there is an denial of access to a resouce within your request, you’ll receive a “403 Forbidden“ http response. \n\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"type\": \"error\",\n \"code\": \"unauthorized\",\n \"message\": \"You do not have 'read' permission on campaign with id '1'\"\n }\n ],\n \"code\": \"403\",\n \"message\": \"Forbidden\"\n }\n}\n```\nWhen 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.\n\n### Not Found (Code 404)\nIf there is an error locating a requested resource, you’ll receive a “404 Not Found\" http response. \n\n\n**Sample JSON response body when an invalid URL has been requested.**\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"type\": \"error\",\n \"code\": \"entity_not_found\",\n \"message\": \"campaign not found for id '1'\"\n }\n ],\n \"code\": \"404\",\n \"message\": \"Not Found\"\n }\n}\n```\n\n### Method Not Allowed (Code 405)\nIf 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).\n\n\n**Sample JSON response body when an valid URL has been requested with an invalid request method.**\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"type\": \"error\",\n \"code\": \"routing_error\",\n \"message\": \"index not supported\"\n }\n ],\n \"code\": \"405\",\n \"message\": \"Method Not Allowed\"\n }\n}\n```\n\n### Too Many Requests (Code 429)\nThis error code indicates that too many requests were sent within a period of time. See [Rate limits](#section/Common-API-Conventions/Rate-Limits) for more information on this.\n\n\n**Sample JSON response body when a rate limit is hit.**\n```\n\n {\n \"error\": {\n \"errors\": [\n ],\n \"code\": \"429\",\n \"message\": \"Too Many Requests\"\n }\n }\n ``` \n\n## Date Time\n\n`v2` API endpoints use [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) date time format.\n\n### Example:\n\n`2019-03-01T12:01:00+00:00` - this example represents 1 minute past midday on the 1st of March 2019 in UTC.\n\n`2019-03-01` - date only example\n\n# Version 3 API Conventions\n\n## Requests\n\n### Base URL\n\nThe base URL for version 3 API endpoints is [https://api.partnerize.com/v3](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](https://api.partnerize.com/v3/brand) and the _partner_ ones will have: [https://api.partnerize.com/v3/partner](https://api.partnerize.com/v3/partner)\n\n### Supported HTTP Verbs\n\nPartnerize's API uses appropriate HTTP verbs where possible. Endpoints support one or more of the following HTTP verbs:\n\nGET – GET requests retrieve one or more entities and are always read-only. A successful request returns a response with a 200 _OK_ status code.\n\nPOST – 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. \n\nPUT – 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.\n\nPATCH – Used to do partial updates to Partnerize entities. A successful request returns a response with a 200 _OK_ status code.\n\nDELETE – 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.\n\nIf an endpoint doesn't support a particular method, it will return a response with a 405 _Method Not Allowed_ code.\n\n### Unrecognized request headers and parameters\n\n* We ignore unrecognized HTTP headers.\n* We ignore unrecognized query string parameters.\n* We return a 400 _Bad Request_ if there are unrecognized parameters in the request body.\n\n## Responses\n\nVersion 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:\n\n### HTTP Status Codes Summary\n\n| **HTTP Status Code** | **Description** |\n| --- | --- |\n| `200 OK` | The request was successfully completed. A 200 status is returned for a successful GET, PUT, PATCH and sometimes DELETE methods. |\n| `201 Created` | The request was successful and a resource was created. The response usually includes an identifier for the newly created resource. |\n| `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.|\n| `204 No content` | The request was successfully completed and there is no payload in the response. |\n| `400 Bad Request` | The request could not be processed because it contains missing or invalid information. See [Errors](#section/Version-3-API-Conventions/Errors) for more details. |\n| `401 Unauthorized` | The request is not authorized. The request could not be authenticated becuase of wrong or invalid credentials used in the Authorization header. |\n| `403 Forbidden` | The user is not authorized to perform this action. |\n| `404 Not Found` | The request includes a resource URI that cannot be found by the server. |\n| `405 Method Not Allowed` | The request method, e.g. POST, is not allowed for the resource identified by the request URI. |\n| `429 Too Many Requests` | The user has exceeded the quota for a particular request. See [Rate limits](#section/Common-API-Conventions/Rate-Limits) for more information on this. |\n| `500 Internal Server Error` | Generic server error. The server encountered an unexpected condition that prevented it from fulfilling the request. |\n| `503 Internal Server Error` | The service is temporarily unavailable. |\n\nSee the [Errors](#section/Version-3-API-Conventions/Errors) section below for more details on error responses.\n\n### Response format\n\n#### Top level attributes\n\nEach 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. \n\nExample:\n\n```\n{\n \"data\": {\n \"id\": \"111111l11\",\n ...\n },\n \"hypermedia\": {\n \"links\": {\n \"tasks\": \"/v3/jobs/111111l11/tasks\"\n }\n }\n}\n``` \n\n\n## Errors\nThe API uses standard HTTP status codes to indicate the success or failure of the API call.\nThe body of the response will be JSON in the following format:\n\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"property\": \"[name]\",\n \"message\": \"The attribute expected to be of type 'string' but 'integer' given.\",\n \"code\": \"6a6c32c0-de05-4301-89dd-4a72133c137f\",\n \"type\": \"validation_error\"\n }\n ],\n \"code\": \"400\",\n \"message\": \"Bad Request\"\n }\n}\n```\n\n| Attribute | Type | Description |\n|-----------|---|-------|\n| `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. |\n| `code` | string | An error code representing the error(s) which has occured, this typically matches the HTTP status code. |\n| `message` | string | A human-friendly message describing the error(s) which has occured. |\n\n### Bad Request (Code 400)\nIf 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).\n\n| Code | Description |\n|--|--|\n| `2572f7f9-e87e-4aa7-98cf-6f53c9ed5584` | A value is required for an attribute which has not been supplied. |\n| `901d8596-1b91-4e87-869f-ef66bd4ffc0c` | The value contains more items than expeceted. |\n| `b9f3a79a-6767-4947-907e-5e0934b5a641` | The value contains more attributes than expected. |\n| `6771735c-3000-49d1-a978-74aeb33d15b9` | The value does not match the expected value. |\n| `9ba6d700-08f1-45c9-bde7-873926d4d393` | The value does not contain the expected value. |\n| `aa903a6c-64ff-4f8b-830d-8967331c5ba3` | The value does not match one of the expected values. |\n| `c535eb9f-a8fd-40ce-9e99-fcd6056b55de` | The value is not higher than or equal to the maximum value. |\n| `ed574a9e-fa9d-4b3c-83ee-65ecc47fa2fb` | The value is not lower than or equal to the minimum value. |\n| `1945fae7-8937-4086-b06b-2a43da93b7e3` | The value does not match the expected format. |\n| `1098ac2a-42f4-4a46-a684-64d67b8c274c` | The value contains more items than permitted. |\n| `539b9fb0-b542-422d-992f-4428e26b39e1` | The value contains less items than permitted. |\n| `32452de9-0c46-4674-a87d-e02f469a003c` | The value contains more characters than required. |\n| `39c6adce-c253-4750-b2c1-7215713af74d` | The value contains less characters than required. |\n| `458f0977-09d2-40ee-bbe5-c21bc9ed6e48` | The value contains more attributes than expected. |\n| `4d7d63f2-28f1-45d3-b3b8-99a1bf816e53` | The value contains less attributes than expected. |\n| `d0fd75d5-9246-4c22-b395-4f6d0279555e` | The value is higher than permitted. |\n| `7ed9630d-04c4-4559-ace5-5e44f45e14e9` | The value is lower than permitted. |\n| `3dff825b-ac80-41da-a991-2f257ab60a79` | The value is not a multiple of the defined value. |\n| `80d20241-7f19-4ee2-b46d-538f7179f7fb` | The value does not match the defined pattern. |\n| `9f6fab77-488f-449d-85d3-3345c40a2a45` | The attribute value name does not match the defined pattern. |\n| `976f4746-0e09-44a7-ba46-b53527a24f6a` | The attribute value name does not match one of the expected values. |\n| `6a6c32c0-de05-4301-89dd-4a72133c137f` | The value has been supplied as an invalid type. |\n| `25772442-e9f9-4cb1-9147-65c422026404` | The value contains a duplicate value. |\n| `0a53a999-8349-4326-9135-929f25745e08` | The interval value does not represent a date-time period between the dates. |\n| `cff336e3-1245-49f4-87ec-8efe0d2e2dce` | The interval value does represent a valid date-time period. |\n| `66dad313-af0b-4214-8566-6c799be9789c` | The Business Identifier Code (BIC) value is an invalid length. |\n| `f424c529-7add-4417-8f2d-4b656e4833e2` | The Business Identifier Code (BIC) value contains invalid characters. |\n| `00559357-6170-4f29-aebd-d19330aa19cf` | The Business Identifier Code (BIC) value does not contain a valid bank code. |\n| `1ce76f8d-3c1f-451c-9e62-fe9c3ed486ae` | The Business Identifier Code (BIC) value does not contain a valid country code. |\n| `11884038-3312-4ae5-9d04-699f782130c7` | The Business Identifier Code (BIC) value does not contain only contain uppercase characters. |\n| `29a2c3bb-587b-4996-b6f5-53081364cea5` | The Business Identifier Code (BIC) value does not contain a valid iban country code. |\n| `183ad2de-533d-4796-a439-6d3c3852b549` | The value is empty. |\n| `f196f6bd-1914-4707-a32c-20536041558f` | Campaign is required. |\n| `a2ad9231-e827-485f-8a1e-ef4d9a6d5c2e` | The Credit Card value contains non-numeric characters. |\n| `a8faedbf-1c2f-4695-8d22-55783be8efed` | The Credit Card value is an invalid format. |\n| `8e179f1b-97aa-4560-a02f-2a8b42e49df7` | The value selected is not a valid choice. |\n| `11edd7eb-5872-4b6e-9f12-89923999fd0e` | The value contains too few choices. |\n| `9bd98e49-211c-433f-8630-fd1c2d0f08c3` | The value contains too many choices. |\n| `2fa2158c-2a7f-484b-98aa-975522539ff8` | The value has not been supplied. |\n| `7703c766-b5d5-4cef-ace7-ae0dd82304e9` | The value has been supplied for an unexpected attribute. |\n| `bef8e338-6ae5-4caf-b8e2-50e7b0579e69` | The value contains too few items. |\n| `756b1212-697c-468d-a9ad-50dd783bb169` | The value contains too many items. |\n| `8f900c12-61bd-455d-9398-996cd040f7f0` | The country value is not a valid country. |\n| `69945ac1-2db4-405f-bec7-d2772f73df52` | The currency value is not a valid currency. |\n| `1a9da513-2640-4f84-9b6a-4d99dcddc628` | The date-time value is not a valid date-time. |\n| `d52afa47-620d-4d99-9f08-f4d85b36e33c` | The date value is not a valid date. |\n| `5e797c9d-74f7-4098-baa3-94390c447b27` | The time value is not a valid time. |\n| `6d99d6c3-1464-4ccf-bdc7-14d083cf455c` | The value is not divisible by the defined value. |\n| `bd79c0ab-ddba-46cc-a703-a7a4b08de310` | The email value is not a valid email address. |\n| `478618a7-95ba-473d-9101-cabd45e49115` | The value does not match the expected value. |\n| `6b3befbc-2f01-4ddf-be21-b57898905284` | The value does not match the expected expression. |\n| `d2a3fb6e-7ddc-4210-8fbf-2ab345ce1998` | The file value contains a file which does not exist. |\n| `c20c92a4-5bfa-4202-9477-28e800e0f6ff` | The file value contains a non-readable file. |\n| `5d743385-9775-4aa5-8ff5-495fb1e60137` | The file value contains an empty file. |\n| `df8637af-d466-48c6-a59d-e7126250a654` | The file value contains a file which is too large. |\n| `744f00bc-4389-4c74-92de-9a43cde55534` | The file value contains a file which contains an invalid mime type. |\n| `778b7ae0-84d3-481a-9dec-35fdb64b1d78` | The value is less than the expected value. |\n| `ea4e51d1-3342-48bd-87f1-9e672cd90cad` | The value is not greater than or equal to the expected value. |\n| `de78ee2c-bd50-44e2-aec8-3d8228aeadb9` | The IBAN value does not contain a valid country code. |\n| `8d3d85e4-784f-4719-a5bc-d9e40d45a3a5` | The IBAN value contains invalid characters. |\n| `b9401321-f9bf-4dcb-83c1-f31094440795` | The IBAN value checksum failed. |\n| `c8d318f1-2ecc-41ba-b983-df70d225cf5a` | The IBAN value is not in the correct format. |\n| `e2c259f3-4b46-48e6-b72e-891658158ec8` | The IBAN value contains an unsupported country code. |\n| `2a8cc50f-58a2-4536-875e-060a2ce69ed5` | The value is not identical to the defined value. |\n| `6d55c3f4-e58e-4fe3-91ee-74b492199956` | The Image value size could not be determined. |\n| `7f87163d-878f-47f5-99ba-a8eb723a1ab2` | The Image value is too wide. |\n| `9afbd561-4f90-4a27-be62-1780fc43604a` | The Image value is too narrow. |\n| `7efae81c-4877-47ba-aa65-d01ccb0d4645` | The Image value is too tall. |\n| `aef0cb6a-c07f-4894-bc08-1781420d7b4c` | The Image value is too short. |\n| `1b06b97d-ae48-474e-978f-038a74854c43` | The Image value contains too few pixels. |\n| `ee0804e8-44db-4eac-9775-be91aaf72ce1` | The Image value contains too many pixels. |\n| `70cafca6-168f-41c9-8c8c-4e47a52be643` | The Image value aspect radio is too big. |\n| `59b8c6ef-bcf2-4ceb-afff-4642ed92f12e` | The Image value aspect radio is too small. |\n| `5d41425b-facb-47f7-a55a-de9fbe45cb46` | The Image value cannot be square. |\n| `6f895685-7cf2-4d65-b3da-9029c5581d88` | The Image value cannot be landscape. |\n| `65608156-77da-4c79-a88c-02ef6d18c782` | The Image value cannot be portrait. |\n| `5d4163f3-648f-4e39-87fd-cc5ea7aad2d1` | The Image value is corrupted. |\n| `b1b427ae-9f6f-41b0-aa9b-84511fbb3c5b` | The value does not match the format for a valid IP address. |\n| `949acbb0-8ef5-43ed-a0e9-032dfd08ae45` | The ISBN value contains too few characters. |\n| `3171387d-f80a-47b3-bd6e-60598545316a` | The ISBN value contains too many characters. |\n| `23d21cea-da99-453d-98b1-a7d916fbb339` | The ISBN value contains invalid characters. |\n| `2881c032-660f-46b6-8153-d352d9706640` | The ISBN value checksum failed. |\n| `fa54a457-f042-441f-89c4-066ee5bdd3e1` | The ISBN value does not match the ISBN-10 or ISBN-13 formats. |\n| `d53a91b0-def3-426a-83d7-269da7ab4200` | The value is not `false`. |\n| `60d2f30b-8cfa-4372-b155-9656634de120` | The value is not `null`. |\n| `6a20dd3d-f463-4460-8e7b-18a1b98abbfb` | The ISSN value contains too few characters. |\n| `37cef893-5871-464e-8b12-7fb79324833c` | The ISSN value contains too many characters. |\n| `2983286f-8134-4693-957a-1ec4ef887b15` | The ISSN value does not contain hyphens. |\n| `a663d266-37c2-4ece-a914-ae891940c588` | The ISSN value contains invalid characters. |\n| `7b6dd393-7523-4a6c-b84d-72b91bba5e1a` | The ISSN value must contain uppercase characters. |\n| `b0f92dbc-667c-48de-b526-ad9586d43e85` | The ISSN value checksum failed. |\n| `2beabf1c-54c0-4882-a928-05249b26e23b` | The value is not `true`. |\n| `0789c8ad-2d2b-49a4-8356-e2ce63998504` | The JSON value contains invalid JSON syntax. |\n| `ee65fec4-9a20-4202-9f39-ca558cd7bdf7` | The Language value contains an invalid language. |\n| `9ff3fdc4-b214-49db-8718-39c315e33d45` | The value contains too few characters. |\n| `d94b19cc-114f-4f44-9cc4-4138e80a87b9` | The value contains too many characters. |\n| `35e6a710-aa2e-4719-b58e-24b35749b767` | The value contains invalid characters for the defined character set. |\n| `079d7420-2d13-460c-8756-de810eeb37d2` | The value is greater than the expected value. |\n| `30fbb013-d015-4232-8b3b-8f3be97a7e14` | The value is not less than or equal to the expected value. |\n| `a0af4293-1f1a-4a1c-a328-979cba6182a2` | The Locale value does not contain a valid locale. |\n| `dfad6d23-1b74-4374-929b-5cbb56fc0d9e` | The Luhn value contains invalid characters. |\n| `4d760774-3f50-4cd5-a6d5-b10a3299d8d3` | The Luhn value checksum failed. |\n| `c1051bb4-d103-4f74-8988-acbcafc7fdc3` | The value is blank. |\n| `d9bcdbfe-a9d6-4bfa-a8ff-da5fd93e0f6d` | The Password value has been compromised. e.g. the Password value has been made public by a data breach. |\n| `aa2e33da-25c8-4d76-8c6c-812f02ea89dd` | The value is not equal to the defined value. |\n| `4aaac518-0dda-4129-a6d9-e216b9b454a0` | The value is not identical to the defined value. |\n| `ad32d13f-c3d4-423b-909a-857b961eb720` | The value is null. |\n| `ad9a9798-7a99-4df7-8ce9-46e416a1e60b` | The numeric value does not exclusively contain numeric characters. |\n| `2d28afcb-e32e-45fb-a815-01c431a86a69` | The numeric value is too high and exists outside the defined range. |\n| `76454e69-502c-46c5-9643-f447d837c4d5` | The numeric value is too low and exists outside the defined range. |\n| `de1e3db3-5ed4-4941-aae4-59f3667cc3a3` | The value does not match the defined regular expression. |\n| `9d27b2bb-f755-4fbf-b725-39b1edbdebdf` | The Time value does not match the time format. |\n| `8532f9e1-84b2-4d67-8989-0818bc38533b` | The Time value does not present a valid time value. |\n| `5ce113e6-5e64-4ea2-90fe-d2233956db13` | The Timezone value does not contain a valid value. |\n| `b57767b1-36c0-40ac-a3d7-629420c775b8` | The Timezone value does not exist within the defined zone. |\n| `c4a22222-dc92-4fc0-abb0-d95b268c7d0b` | The Timezone value does not exist within the defined country. |\n| `45863c26-88dc-41ba-bf53-c73bd1f7e90d` | The Timezone value is an invalid internationalization code. |\n| `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\"`. |\n| `7911c98d-b845-4da0-94b7-a8dac36bc55a` | The value does not contain unique elements. |\n| `57c2f299-1154-4870-89bb-ef3b1f5ad229` | The URL value does not contain a value URL. |\n| `aa314679-dac9-4f54-bf97-b2049df8f2a3` | The UUID value contains too few characters. |\n| `494897dd-36f8-4d31-8923-71a8d5f3000d` | The UUID value contains too many characters. |\n| `51120b12-a2bc-41bf-aa53-cd73daf330d0` | The UUID value contains invalid characters. |\n| `98469c83-0309-4f5d-bf95-a496dcaa869c` | The UUID value contains hyphens in invalid positions. |\n| `21ba13b4-b185-4882-ac6f-d147355987eb` | The UUID value contains an invalid version number. |\n| `164ef693-2b9d-46de-ad7f-836201f0c2db` | The UUID value's first two characters do not sum to ten. |\n| `f645b551-53ae-4e8b-8ce8-1c747e9df1e2` | This value is already used. |\n\n### Authorized (Code 401)\nIf 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).\n\n| Code | Description |\n|--|--|\n| `39b4b7c2-e5b9-41b1-83d4-db3b23b5ebfa` | The authentication credentials are missing or are an invalid `User application key` and `User API key` combination. |\n\n**Sample JSON response body when no credentials has been supplied.**\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"property\": \"\",\n \"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'.\",\n \"code\": \"39b4b7c2-e5b9-41b1-83d4-db3b23b5ebfa\",\n \"type\": \"unauthorised\"\n }\n ],\n \"message\": \"Unauthorized\",\n \"code\": \"401\"\n }\n}\n```\n**Sample JSON response body when an invalid `User application key` and `User API key` combination has been supplied.**\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"property\": \"\",\n \"message\": \"Your 'User application key' and 'User API key' combination is invalid.\",\n \"code\": \"39b4b7c2-e5b9-41b1-83d4-db3b23b5ebfa\",\n \"type\": \"unauthorised\"\n }\n ],\n \"message\": \"Unauthorized\",\n \"code\": \"401\"\n }\n}\n```\n\n### Forbidden (Code 403)\nIf 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).\n\n| Code | Description |\n|--|--|\n| `76fb121a-d769-4293-852d-3b9b6a3dcce8` | Access has not been permitted to a resource or to perform an action. |\n| `16bd7f4a-bf84-45c3-aa95-9b32aeb139b0` | Access has not been permitted to a resource or to perform an action. |\n| `f0b71be3-c8be-4ff2-893e-2bc7f7a18156` | There are terms and conditions that need to be acknowledged before continuing. |\n\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"property\": \"[campaigns][0]\",\n \"message\": \"You do not have \\\"view\\\" access on this entity.\",\n \"code\": \"16bd7f4a-bf84-45c3-aa95-9b32aeb139b0\",\n \"type\": \"unauthorised\"\n }\n ],\n \"code\": \"403\",\n \"message\": \"Forbidden\"\n }\n}\n```\n\n### Not Found (Code 404)\nIf 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).\n\n| Code | Description |\n|--|--|\n| `0d528fb3-569c-45fa-b2b5-309b360bf9fa` | A route has not been found to match the supplied URL. |\n\n**Sample JSON response body when an invalid URL has been requested.**\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"property\": \"\",\n \"message\": \"No route found for \\\"POST \\/foo\\\"\",\n \"code\": \"0d528fb3-569c-45fa-b2b5-309b360bf9fa\",\n \"type\": \"not_found\"\n }\n ],\n \"message\": \"Not Found\",\n \"code\": \"404\"\n }\n}\n```\n\n### Method Not Allowed (Code 405)\nIf 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).\n\n| Code | Description |\n|--|--|\n| `5fe5c44b-f299-4fa6-bda4-bf80fecf6093` | A route has been found which matches the supplied URL but cannot be accessed via the HTTP verb. |\n\n**Sample JSON response body when an valid URL has been requested with an invalid request method.**\n```\n{\n \"error\": {\n \"errors\": [\n {\n \"property\": \"\",\n \"message\": \"No route found for \\\"POST \\/foo\\\": Method Not Allowed (Allow: GET)\",\n \"code\": \"5fe5c44b-f299-4fa6-bda4-bf80fecf6093\",\n \"type\": \"routing_error\"\n }\n ],\n \"message\": \"Method Not Allowed\",\n \"code\": \"405\"\n }\n}\n```\n\n### Too Many Requests (Code 429)\nThis error code indicates that too many requests were sent within a period of time. See [Rate limits](#section/Common-API-Conventions/Rate-Limits) for more information on this.\n\n\n**Sample JSON response body when a rate limit is hit.**\n```\n {\n \"error\": {\n \"errors\": [\n {\n \"property\": \"\",\n \"message\": \"You have made too many requests recently, please try again later.\",\n \"code\": \"3b22ff00-96a5-4fa4-96cc-f36e68dbd2e2\",\n \"type\": \"too_many_requests\"\n }\n ],\n \"message\": \"Too Many Requests\",\n \"code\": \"429\"\n }\n }\n ``` \n\n### Internal System Error (Code 500)\nIf 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).\n\n| Code | Description |\n|--|--|\n| `a72717b1-0ecb-4d74-a77f-3e3702a2c8d5` | A non-specific error has occured. |\n| `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. |\n| `03b1fdbe-ce8a-4de7-b850-b5e4bccf7f81` | A remote service encountered an error, this could be related to an outage or an invalid request. |\n\n## Date Time\n\n`v3` API endpoints use [ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html) date time format.\n\n### Example:\n\n`2019-03-01T12:01:00+00:00` - this example represents 1 minute past midday on the 1st of March 2019 in UTC.\n\n`2019-03-01` - date only example\n"
contact:
email: support@partnerize.com
x-logo:
url: https://console.partnerize.com/assets/img/network/partnerize/logo.png
altText: Partnerize
servers:
- description: Production
url: https://api.partnerize.com
- description: Local
url: http://api.partnerize.tech
tags:
- name: Campaign Requests and Invites
paths:
/v2/networks/{networkId}/campaign-requests-invites:
parameters:
- name: networkId
in: path
description: ID of the brand network
examples:
- 1l1007802
required: true
schema:
type: string
- name: vertical_id
in: query
description: ID of the vertical being filtered by
examples:
- '10'
required: false
schema:
type: string
- name: promo_method_id
in: query
description: ID of the promo method being filtered by
examples:
- '17'
required: false
schema:
type: string
- name: operating_country
in: query
description: The operating country code being filtered by
examples:
- '10'
required: false
schema:
type: string
- name: promotional_country
in: query
description: The promotional country ISO code
examples:
- GB
required: false
schema:
type: string
- name: campaign_id
in: query
description: ID of the vertical being filtered by
examples:
- '10'
required: false
schema:
type: string
- name: status
in: query
description: The status of the interaction
examples:
- invited
- requested
required: false
schema:
type: string
- name: search
in: query
description: Query string being search for which gets checked against the applicable fields.
examples:
- campaign 123
required: false
schema:
type: string
get:
operationId: partner-requests-invites
tags:
- Campaign Requests and Invites
summary: List Partner Campaign Requests and Invites
description: Lists partners with campaign requests or invites
responses:
'200':
description: OK
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema
type: object
title: Partner Response
properties:
partners:
type: array
items:
$schema: http://json-schema.org/draft-04/schema
title: Partner
type: object
allOf:
- $ref: '#/paths/~1v2~1networks~1%7BnetworkId%7D~1campaign-requests-invites~1partners~1%7BpublisherId%7D/get/responses/200/content/application~1json/schema/properties/partner/allOf/0'
- properties:
request_count:
type: integer
title: Campaign request count
invite_count:
type: integer
title: Campaign Invitations
hypermedia:
$schema: http://json-schema.org/draft-04/schema
title: Currency
type: object
properties:
pagination:
type: object
properties:
total_page_count:
type: number
total_item_count:
type: number
first_page:
type: string
last_page:
type: string
next_page:
type: string
previous_page:
anyOf:
- type: 'null'
- type: string
/v2/networks/{networkId}/campaign-requests-invites/filters:
parameters:
- name: networkId
in: path
description: ID of the brand network
examples:
- 1l1007802
required: true
schema:
type: string
get:
operationId: partner-requests-invites-filters
tags:
- Campaign Requests and Invites
summary: List Campaign Requests and Invites Filters.
description: 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.
responses:
'200':
description: OK
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema
type: object
title: Filters Response
description: Multiple values are comma delimited.
properties:
filters:
$schema: http://json-schema.org/draft-04/schema
title: Filter
type: object
properties:
promo_methods:
type: array
title: Promo methods
description: Any applicable promo method/partner type.
items:
properties:
name:
type: string
example: Cashback
value:
type: string
example: '73'
verticals:
type: array
title: Verticals
description: Any applicable vertical
items:
properties:
name:
type: string
example: Automotive
value:
type: string
example: '179'
campaigns:
type: array
title: Campaigns
description: The campaigns the current logged in user has access to on the included network
items:
properties:
name:
type: string
example: Adidas
value:
type: string
example: 111111l32
operating_countries:
type: array
title: Operating countries
description: List of available operating countries to filter by.
items:
properties:
name:
type: string
example: Afghanistan
value:
type: string
example: AF
statuses:
description: The different status filter options available.
type: array
title: Status'
items:
type: string
example:
- invited
- requested
custom_promo_methods:
type: array
title: Custom promo methods
description: Network specific promo method/partner type.
items:
properties:
name:
type: string
example: Cashback
value:
type: string
example: '73'
custom_verticals:
type: array
title: Custom Verticals
description: Network specific verticals
items:
properties:
name:
type: string
example: Automotive
value:
type: string
example: '179'
/v2/networks/{networkId}/campaign-requests-invites/partners/{publisherId}:
parameters:
- name: networkId
in: path
description: ID of the brand network
examples:
- 1l1007802
required: true
schema:
type: string
- name: publisherId
in: path
description: The ID of the partner
examples:
- 1lPUBA001,1lPUBB002
required: true
schema:
type: string
get:
operationId: partner-requests-invites-detail
tags:
- Campaign Requests and Invites
summary: Retrieve Partner Campaign Invites and Requests Details.
description: Retrieve details for campaign invites and requests of a particular partner.
responses:
'200':
description: OK
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema
type: object
title: Partner Response
properties:
partner:
$schema: http://json-schema.org/draft-04/schema
title: Partner
type: object
allOf:
- $schema: http://json-schema.org/draft-04/schema
title: Partner
type: object
properties:
id:
type: string
description: ID of the partner
example: 111111l300761
name:
type: string
example: Partner UK
reporting_identifier:
type: string
example: wedo.com
active:
type: boolean
title: Partner Active Status
example: false
company_name:
type: string
example: Partner UK
company_logo:
oneOf:
- type: string
- type: 'null'
example: http://some.url/image.png
contact_name:
type: string
example: John Smith
contact_email:
type: string
example: john@partner.uk
description:
type: string
example: Partner UK
account_created:
type: string
format:
- date
- time
example: '2020-09-01 14:20:03'
phone_number:
type: string
example: '+440201234123'
operating_country:
title: Operating country
$schema: http://json-schema.org/draft-04/schema
type: object
properties:
iso:
type: string
enum:
- GB
example: GB
name:
type: string
enum:
- United Kingdom
example: United Kingdom
vertical:
$schema: http://json-schema.org/draft-04/schema
title: Vertical
type: object
properties:
id:
type: string
example: '1'
name:
type: string
example: Retail
promotional_method:
$schema: http://json-schema.org/draft-04/schema
title: Promotional method
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: PPC
promotional_countries:
type: array
items:
type: object
properties:
iso:
type: string
name:
type: string
websites:
type: array
items:
type: object
properties:
id:
type: string
example: 111111l1
website_url:
type: string
example: http://url.uk
description:
type: string
example: Partner UK website
- properties:
address:
title: Postal Address
$schema: http://json-schema.org/draft-04/schema
type: object
properties:
line1:
anyOf:
- type: 'null'
- type: string
line2:
anyOf:
- type: 'null'
- type: string
line3:
anyOf:
- type: 'null'
- type: string
line4:
anyOf:
- type: 'null'
- type: string
postcode:
anyOf:
- type: 'null'
- type: string
country:
anyOf:
- type: 'null'
- type: string
requests:
type: array
title: Campaign Requests
items:
properties:
id:
type: string
example: 111111l300883
campaign:
$ref: '#/paths/~1v2~1networks~1%7BnetworkId%7D~1campaign-requests-invites~1partners~1%7BpublisherId%7D/get/responses/200/content/application~1json/schema/properties/partner/allOf/1/properties/invites/items/properties/campaign'
invites:
type: array
title: Campaign Invitations
items:
properties:
id:
type: string
example: 111111l300878
campaign:
$schema: http://json-schema.org/draft-04/schema
title: Campaign
type: object
properties:
id:
type: string
default_destination:
anyOf:
- type: 'null'
- type: string
title:
type: string
currency:
$schema: http://json-schema.org/draft-04/schema
title: Currency
type: object
properties:
iso:
type: string
enum:
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BRL
- BSD
- BTN
- BWP
- BYR
- BZD
- CAD
- CDF
- CHF
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GHS
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HRK
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KPW
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LTL
- LVL
- LYD
- MAD
- MDL
- MKD
- MMK
- MNT
- MOP
- MUR
- MVR
- MWK
- MXN
- MXV
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RMB
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SHP
- SLL
- SOS
- SRD
- SSP
- STD
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- UYU
- UZS
- VEF
- VND
- VUV
- WST
- XAF
- XCD
- XOF
- XPF
- YER
- ZAR
- ZMW
example: GBP
name:
type: string
enum:
- United Arab Emirates dirham
- Azerbaijani manat
- Mexican Unidad de Inversion
- Malaysian ringgit
- Mozambican metical
- Namibian dollar
- Nigerian naira
- Nicaraguan cordoba
- Norwegian krone
- Nepalese rupee
- New Zealand dollar
- Omani rial
- Bosnia and Herzegovina convertible mark
- Panamanian balboa
- Peruvian nuevo sol
- Papua New Guinean kina
- Philippine peso
- Pakistani rupee
- Polish zloty
- Paraguayan guarani
- Qatari riyal
- Romanian new leu
- Serbian dinar
- Barbados dollar
- Russian rouble
- Rwandan franc
- Saudi riyal
- Solomon Islands dollar
- Seychelles rupee
- Sudanese pound
- Swedish krona
- Singapore dollar
- Saint Helena pound
- Sierra Leonean leone
- Bangladeshi taka
- Somali shilling
- Surinamese dollar
- South Sudanese pound
- Sao Tome and Principe dobra
- Syrian pound
- Swazi lilangeni
- Thai baht
- Tajikistani somoni
- Turkmenistani manat
- Tunisian dinar
- Bulgarian lev
- Tongan pa'anga
- Turkish lira
- Trinidad and Tobago dollar
- New Taiwan dollar
- Tanzanian shilling
- Ukrainian hryvnia
- Ugandan shilling
- United States dollar
- Uruguayan peso
- Uzbekistan som
- Bahraini dinar
- Venezuelan
example: Pound sterling
symbol:
type: string
enum:
- AED
- ман
- MXV
- RM
- MT
- ₦
- C$
- KM
- B/.
- S/.
- PGK
- zł
- Gs
- lei
- Дин.
- руб
- RWF
- SDG
- SLL
- BDT
- S
- SSP
- STD
- SZL
- ฿
- TJS
- TMT
- TND
- TOP
- TRY
- TT$
- NT$
- TZS
- ₴
- UGX
- $U
- BHD
- Bs
- ₫
- VUV
- WST
- XAF
- XAG
- XAU
- XBA
- XBB
- XBC
- BIF
- XBD
- XDR
- XFU
- XOF
- XPD
- XPF
- XPT
- R
- ZMW
- $b
- ؋
- R$
- BTN
- P
- p.
- BZ$
- CDF
- CHE
- CHF
- Lek
- CHW
- CLF
- COU
- ₡
- CUC
- ₱
- CVE
- AMD
- Kč
- DJF
- RD$
- DZD
- ERN
- ETB
- €
- GEL
- GHS
- GMD
- GNF
- Q
- AOA
- L
- kn
- HTG
- Ft
- Rp
- ₪
- INR
- IQD
- ﷼
- kr
- J$
- JOD
- ¥
- KES
- ៛
- KMF
- KWD
- лв
- ₭
- £
- $
- LSL
- Lt
- Ls
- LYD
- ƒ
- MAD
- MDL
- ден
- MMK
- ₮
- MOP
- ₨
- MVR
- MWK
example: £
advertiser_id:
type: string
/v2/networks/{networkId}/campaign-requests/accept:
parameters:
- name: networkId
in: path
description: ID of the network
examples:
- 1l1007802
required: true
schema:
type: string
post:
summary: Accept Campaign Requests
description: 'This endpont is now `Obsolete`. Use [Approve and Invite Partners to Campaigns](#tag/Campaign-Requests-and-Invites/operation/post-v2-networks-network_id-invite-network-partners) 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.
'
operationId: accept-campaign-requests
tags:
- Campaign Requests and Invites
requestBody:
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema#
type: object
required:
- campaign_requests
properties:
campaign_requests:
type: array
items:
$schema: http://json-schema.org/draft-04/schema
type: object
required:
- campaign_id
- publisher_id
properties:
campaign_id:
type: string
examples:
- 726fl66778123
publisher_id:
type: string
examples:
- 6aedl83886767
additionalProperties: false
responses:
'200':
description: Success
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema#
type: object
title: Accept Campaign-Request Response
required:
- success_count
- failure_count
properties:
success_count:
type: integer
examples:
- 1
failure_count:
type: integer
examples:
- 0
/v2/networks/{networkId}/campaign-requests/decline:
parameters:
- name: networkId
in: path
description: ID of the network
examples:
- 1l1007802
required: true
schema:
type: string
post:
summary: Decline Campaign Requests
description: '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.
'
operationId: decline-campaign-requests
tags:
- Campaign Requests and Invites
requestBody:
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema#
type: object
required:
- campaign_requests
properties:
campaign_requests:
type: array
items:
type: object
required:
- campaign_id
- publisher_id
- reason
properties:
campaign_id:
type: string
examples:
- 726fl66778123
publisher_id:
type: string
examples:
- 6aedl83886767
reason:
type: string
additionalProperties: false
responses:
'200':
description: Success
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema#
type: object
title: Decline Campaign-Request Response
required:
- success_count
- failure_count
properties:
success_count:
type: integer
examples:
- 1
failure_count:
type: integer
examples:
- 0
/v2/networks/{network_id}/invite/network-partners:
post:
summary: Approve and Invite Partners to Campaigns
tags:
- Campaign Requests and Invites
parameters:
- in: header
name: X-Prefer
schema:
type: string
enum:
- return-synch
- return-asynch
required: false
- in: path
name: network_id
schema:
type: string
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema#
type: object
required:
- success_count
- failure_count
properties:
success_count:
type: integer
examples:
- 1
failure_count:
type: integer
examples:
- 0
'202':
description: Accepted
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/paths/~1v2~1networks~1%7Bnetwork_id%7D~1publishers~1ids/get/responses/400/content/application~1json/schema'
operationId: post-v2-networks-network_id-invite-network-partners
description: 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.
requestBody:
content:
application/json:
schema:
oneOf:
- properties:
partner_collection_id:
type: string
campaign_id:
type: array
items:
type: string
- properties:
publisher_id:
type: array
items:
type: string
campaign_id:
type: array
items:
type: string
- properties:
filter:
type: array
items: {}
campaign_id:
type: array
items:
type: string
excluded_publisher_id:
type: array
items:
type: string
type: object
examples:
Collection based request:
value:
partner_collection_id: 11111l1
campaign_id:
- 11111l21
- 11111l22
Selection based request:
value:
publisher_id:
- 11111l1
- 11111l2
campaign_id:
- 11111l21
- 11111l22
Filter based request:
value:
filter:
- property: search
value: cash
- property: vertical_id
value:
- '6'
- property: promo_method_id
value:
- '70'
- property: operating_country
value:
- US
- property: promotional_country
value:
- US
- property: campaign_id
value:
- 11111l90
- property: campaign_status
value:
- approved
- requested
campaign_id:
- 11111l21
- 11111l22
excluded_publisher_id:
- 11111l102
description: '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. You can exclude specific Publishers by listing their IDs using the `excluded_publisher_id` property.'
get:
summary: Display pending outcomes - invitations and approvals
operationId: inviteDryRun
description: List all potential invitations and approvals for given set of campaigns
tags:
- Campaign Requests and Invites
parameters:
- name: network_id
in: path
description: The network id
required: true
- in: query
name: partner_collection_id
required: true
schema:
type: string
- in: query
name: campaign_ids
required: true
schema:
type: array
items:
type: string
- in: query
name: search
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
type: number
- in: query
name: offset
required: false
schema:
type: number
responses:
'200':
description: Success
content:
application/json:
schema:
$schema: http://json-schema.org/draft-04/schema#
type: object
properties:
partners:
type: array
items:
type: object
properties:
id:
type: string
examples:
- 1101l78103
name:
type: string
examples:
- Greatest Partner
company_name:
type: string
examples:
- Greatest Partner Inc.
campaigns:
type: array
items:
type: object
properties:
id:
type: string
examples:
- 1101l78105
name:
type: string
examples:
- 'Campaign #1'
status:
type: string
examples:
- APPROVED
- INVITED
approval_date:
type: string
examples:
- '2022-01-01 00:00:00'
- 'null'
websites:
type: array
items:
type: object
properties:
id:
type: string
examples:
- 1101l78105
website_url:
type: string
examples:
- https://partnerize.com
description:
type: string
examples:
- Description
count:
type: integer
examples:
- 3
limit:
type: integer
examples:
- 10
offset:
type: integer
examples:
- 0
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/paths/~1v2~1networks~1%7Bnetwork_id%7D~1publishers~1ids/get/responses/400/content/application~1json/schema'
/v2/networks/{network_id}/invite/network-partners.csv:
post:
summary: Export pending outcomes - invitations and approvals into CSV
operationId: exportDryRun
description: CSV all potential invitations and approvals for given set of campaigns
tags:
- Campaign Requests and Invites
parameters:
- name: network_id
in: path
description: The network id
required: true
- in: query
name: partner_collection_id
required: true
schema:
type: string
- in: query
name: campaign_ids
required: true
schema:
type: array
items:
type: string
produces:
- text/csv
responses:
'201':
description: The list of filtered publishers
content:
text/csv:
schema:
type: string
example: '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
'
/v2/networks/{network_id}/reject/network-partners:
parameters:
- in: header
name: X-Prefer
schema:
type: string
enum:
- return-synch
- return-asynch
required: false
- in: path
name: network_id
schema:
type: string
required: true
post:
summary: Reject partners from a campaign
tags:
- Campaign Requests and Invites
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/paths/~1v2~1networks~1%7Bnetwork_id%7D~1invite~1network-partners/post/responses/200/content/application~1json/schema'
'202':
description: Accepted
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/paths/~1v2~1networks~1%7Bnetwork_id%7D~1publishers~1ids/get/responses/400/content/application~1json/schema'
operationId: post-v2-networks-network_id-reject-partners
description: An Advertiser can reject one or more Partners from a campaign.
requestBody:
content:
application/json:
schema:
oneOf:
- properties:
partner_collection_id:
type: string
campaign_id:
type: array
- properties:
publisher_id:
type: array
items:
type: string
campaign_id:
type: array
- properties:
filter:
type: array
items: {}
excluded_publisher_id:
type: array
items:
type: string
campaign_id:
type: array
type: object
examples:
Selection based request:
value:
publisher_id:
- 11111l1
- 11111l2
campaign_id:
- 11111l1
- 11111l2
Filter based request:
value:
filter:
- property: search
value: cash
- property: vertical_id
value:
- '6'
- property: promo_method_id
value:
- '70'
- property: operating_country
value:
- US
- property: promotional_country
value:
- US
- property: campaign_id
value:
- 11111l90
- property: campaign_status
value:
- approved
- requested
- requested
excluded_publisher_id:
- 11111l102
campaign_id:
- 11111l1
- 11111l2
description: '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. You can exclude specific Publishers by listing their IDs using the `excluded_publisher_id` property.'
x-tagGroups:
- name: Networks and Brands Management (v1)
tags:
- Networks
- Network Partners
- Network Terms and Conditions
- Brands
- name: Campaign Management (v1)
tags:
- Campaigns
- Participating Partners
- Partner Groups
- Custom Terms and Conditions
- Voucher Codes
- Creatives
- Product Feeds
- Deals
- Meta Attributes
- name: Payments (v1)
tags:
- Campaign Transaction Queries
- Transaction Query Reasons
- Invoices
- name: Commissions (v2)
tags:
- Commissions
- Commissions CSV Download
- Promotional Commissions
- Voucher Commissions
- Tiers
- Partner Commissions
- Meta Fields
- name: Attribution (v2)
tags:
- Attribution
- Suppressed Code
- Exclusive Code
- Preferred Partner
- In-Cart
- Split
- name: Partner management (v2)
tags:
- Publishers
- Campaign Requests and Invites
- Discovery Settings
- name: Communications tool (v2)
tags:
- Communications
- Platform Communications
- Placeholders
- Communication Templates
- name: Tracking and Conversions (v3)
tags:
- Campaign Conversions
- Deep link domains
- name: Background Jobs (v1)
tags:
- Jobs (v1)
- name: Background Jobs (v3)
tags:
- Jobs
- name: Reporting (v1)
tags:
- Brand Conversions
- Brand Clicks
- Exports
- Reporting on Meta data
- name: Fraud
tags:
- Incidents
- Metrics
- Partner Whitelisting
- name: Analytics (v3)
tags:
- Introduction
- Tutorials
- Clicks
- Conversions
- Impressions
- name: Reference (v1)
tags:
- Verticals
- Locales
- Countries
- Currencies
- Currency countries
- Devices
- US States
- Timezones
- Campaign Extra Fields
- User Contexts
- Traffic Sources
- Website Types
- Promotional Methods
- Conversion Types
- Conversion Metrics
- Partnership Models
- name: Campaigns (v3)
tags:
- Campaign v3
- name: Partnerize Tags (v3)
tags:
- Partnerize Tags
- Partnerize Tag Features
- name: Terms and Conditions (v3)
tags:
- Network Terms and Conditions (v3)
- Network Terms and Conditions Acknowledgments (v3)
- name: Commissions (v3)
tags:
- Commission Groups
- Paid Search Violations
- name: User (v3)
tags:
- Current User