Publisher API Documentation (1)

Introduction

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

Authentication

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

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

Status Codes

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

Errors

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

Filtering

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

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

Sorting

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

Pagination

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

To paginate the result you can provide the following:

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

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

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

Example:

Go to the first page:

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

Go to the second page:

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

PublisherSettings

Generate API Key

Generate a new API Key for for API access.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Responses

Response Schema: application/json
api_key
string

Response samples

Content type
application/json
{
}

PublisherOffers

List Coupon Codes

List all your Coupon Codes.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Responses

Response Schema: application/json
Array of objects (csapi.CouponCode)
object (csapi.ListMeta)

Response samples

Content type
application/json
{
}

List Offers

List multiple Offers using pagination and filtering.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Responses

Response Schema: application/json
Array of objects (csapi.PublisherViewOffer)
object (csapi.ListMeta)

Response samples

Content type
application/json
{
}

Get Offer

Get an Offer information.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

offerID
required
string

The PublisherViewOffer ID

Responses

Response Schema: application/json
object (csapi.PublisherViewOffer)

Response samples

Content type
application/json
{
}

Agree to Offer T&Cs

For an Offer that requires aggrement to their T&Cs, use this API to agree. The Offer T&Cs can be read in the Offer object.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

offerID
required
string

The Offer ID

Responses

Response Schema: application/json
object (service.svcPatchResponse)

Response samples

Content type
application/json
{ }

Apply for Offer Access

Request an access to a restricted Offer. Use the Object ID in the response to check for the application status. If the application is approved, you will be able to create Click for the Offer.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

offerID
required
string

The PublisherViewOffer ID

Responses

Response samples

Content type
application/json
{
}

Get Offer Payouts

View Offer Payout settings.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

offerID
required
string

The PublisherViewOffer ID

Responses

Response Schema: application/json
Array of objects (csapi.PublisherViewOfferPayout)
object (csapi.ListMeta)

Response samples

Content type
application/json
{
}

PublisherProductFeeds

List Product Feeds

List all your product feeds.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Responses

Response Schema: application/json
Array of objects (csapi.ProductFeed)
object (csapi.ListMeta)

Response samples

Content type
application/json
{
}

Get Product Feed

Get the Product Feed information.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

productFeedID
required
string

The Product Feed ID

Responses

Response Schema: application/json
object (csapi.ProductFeed)

Response samples

Content type
application/json
{
}

Download product feed file

Downloads file for the product feed.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

productFeedID
required
string

The Product Feed ID

Responses

Response Schema: application/octet-stream
string <binary>

List product feed items

List all your product feed items.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

productFeedID
required
string

The Product Feed ID

Responses

Response Schema: application/json
object (csapi.ProductFeedItemList)

Response samples

Content type
application/json
{
}

List product feed items in XML format

List all your product feed items in XML format.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

productFeedID
required
string

The Product Feed ID

Responses

Response Schema: application/xml
object (csapi.ProductFeedItemList)

OfferApplications

List Offer Applications

List all your Offer Applications.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Responses

Response Schema: application/json
Array of objects (csapi.OfferAccessRequest)
object (csapi.ListMeta)

Response samples

Content type
application/json
{
}

Bulk Delete Offer Applications

Delete multiple applications for multiple Offers.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Request Body schema: application/json
required

An object array of offer access request IDs to delete

Array of objects (service.OfferAccessRequestDeleteRequest)

Responses

Response Schema: application/json
object (service.svcDeleteResponse)

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{ }

Get Offer Application Status

Get the status of your application for an Offer.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

offerID
required
string

The PublisherViewOffer ID

offerAccessRequestID
required
string

The OfferAccessRequest ID

Responses

Response Schema: application/json
object (csapi.OfferAccessRequest)

Response samples

Content type
application/json
{
}

Delete Offer Application

Delete your application for an Offer.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

offerID
required
string

The PublisherViewOffer ID

offerAccessRequestID
required
string

The PublisherViewOfferAccessRequest ID

Responses

Response Schema: application/json
object (service.svcDeleteResponse)

Response samples

Content type
application/json
{ }

PublisherPostbacks

List Postback Logs

View Postback history.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

query Parameters
start_date
required
string <date>

The start_date is used with end_date. This applies to the process_time field

end_date
required
string <date>

The end_date is used with start_date. This applies to the process_time field

start_time
required
string <date-time>

The start_time is used with end_time. This applies to the process_time field

end_time
required
string <date-time>

The end_time is used with start_time. This applies to the process_time field

filter[service_type]
string
Enum: "conversion" "click"

The service that triggered the postback event

filter[postback_manager_id]
string

The postback manager that triggered the postback event

filter[tx_id]
string

The transaction ID of the event that triggered the postback

filter[offer_id]
string

The offer ID

filter[publisher]
string

The publisher ID

filter[postback_ip]
string

The server IP address where the postback is executed

filter[postback_url][match]
string

Find postback with URL that matches this string

filter[error][match]
string

Find postback that ended with error which contains this message

filter[status_code]
integer

The postback HTTP status code

filter[duration_ms][gte]
integer

Find postback with latency that has greater than or equal this value

filter[duration_ms][lte]
integer

Find postback with latency that has less than or equal this value

columns[]
Array of strings

columns

sort
string

sort

Responses

Response Schema: application/json
Array of objects (csapi.PostbackLog)
object (csapi.ListMeta)

Response samples

Content type
application/json
{
}

List Postbacks

List all your Postbacks.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Responses

Response Schema: application/json
Array of objects (csapi.PostbackManager)
object (csapi.ListMeta)

Response samples

Content type
application/json
{
}

Get Postback

Get the Postback information.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

postbackID
required
string

The PostbackManager ID

Responses

Response Schema: application/json
object (csapi.PostbackManager)

Response samples

Content type
application/json
{
}

PublisherPostbacksAdmin

This is a restricted API. You must request for access from your Network if you are not allowed to perform this operation.

Create Postback

Create a new Postback.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

Request Body schema: application/json
required

A JSON object containing postback information

active
boolean
body
string
delay_metric
string
Default: "Second"
Enum: "Second" "Minute" "Hour"
delay_value
integer
description
string
object (csapi.PostbackManagerFilters)
object
integration
required
string
method
string
Default: "GET"
Enum: "GET" "POST" "PUT" "DELETE" "PATCH"
name
required
string
organization
required
string
service_type
required
string
Enum: "click" "impression" "conversion" "event"
url
required
string

Responses

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Bulk Delete Postbacks

Delete multiple Postbacks by supplying an array of Postback IDs.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID of the postback.

Request Body schema: application/json
required

An array of postback IDs to delete

data
Array of strings

Responses

Response Schema: application/json
object (service.svcBulkDeleteResponse)

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{ }

Bulk Update Postbacks Status

Update multiple Postbacks status by supplying an array of Postback IDs and the new status.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID of the postback.

Request Body schema: application/json
required

An array of postback IDs to update and the new status

active
boolean
data
Array of strings

Responses

Response Schema: application/json
object (service.svcPatchResponse)

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{ }

Delete Postback

Delete a Postback.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
postbackID
required
string

The PostbackManager ID

organizationID
required
string

The Organization ID

Responses

Response Schema: application/json
object (service.svcDeleteResponse)

Response samples

Content type
application/json
{ }

Update Postback

Update a Postback.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
postbackID
required
string

The PostbackManager ID

organizationID
required
string

The Organization ID

Request Body schema: application/json
required

A JSON object containing postback information

active
boolean
body
string
delay_metric
string
Enum: "Second" "Minute" "Hour"
delay_value
integer
description
string
object (csapi.PostbackManagerFiltersPayload)
object
method
string
Enum: "GET" "POST" "PUT" "DELETE" "PATCH"
name
string
url
string

Responses

Response Schema: application/json
object (service.svcPatchResponse)

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{ }

PublisherReports

Pagination

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

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

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

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

Example response:

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

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

GET /api/v2/reports/v2/conversion-table?page[size]=25&integration_id={integrationID}&start_date=2025-02-01&end_date=2025-02-27&page[after]=XYZ'

Example response:

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

Sorting

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

Get a Publisher's Click

Get a single click given the query parameters. An error is returned if there is no match.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

query Parameters
integration_id
required
string

The Integration ID

request_date
required
string <date>

The Click Time

offer
string

The Offer

tx_id
required
string

The Transaction ID

Responses

Response Schema: application/json
object (report.Click)

Response samples

Content type
application/json
{
}

Click Report

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

query Parameters
start_date
required
string <date>

Fetch data where request_time is starting from this date

end_date
required
string <date>

Fetch data where request_time is until this date

timezone
string

Optional IANA timezone, Defaults to UTC

page[size]
required
integer

The number of items to return

page[before]
string

Fetch the previous data before this cursor

page[after]
string

Fetch the next data after this cursor

Responses

Response Schema: application/json
object (report.ClickTable)

Response samples

Content type
application/json
{
}

Get a Publisher's Conversion or Event

Get a single conversion or event given the query parameters. An error is returned if there is no match.

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

query Parameters
integration_id
required
string

The Integration ID

request_date
required
string <date>

The Conversion Time

offer
string

The Offer

hash
required
string

The Hash

Responses

Response Schema: application/json
object (report.Conversion)

Response samples

Content type
application/json
{
}

Conversion Report

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

query Parameters
start_date
required
string <date>

Fetch data where request_time is starting from this date

end_date
required
string <date>

Fetch data where request_time is until this date

timezone
string

Optional IANA timezone, Defaults to UTC

page[size]
required
integer

The number of items to return

page[before]
string

Fetch the previous data before this cursor

page[after]
string

Fetch the next data after this cursor

Responses

Response Schema: application/json
object (report.ConversionTable)

Response samples

Content type
application/json
{
}

Impression Report

Authorizations:
ApiKeyAuthBearerAuth
path Parameters
organizationID
required
string

The Organization ID

query Parameters
start_date
required
string <date>

Fetch data where request_time is starting from this date

end_date
required
string <date>

Fetch data where request_time is until this date

timezone
string

Optional IANA timezone, Defaults to UTC

page[size]
required
integer

The number of items to return

page[before]
string

Fetch the previous data before this cursor

page[after]
string

Fetch the next data after this cursor

Responses

Response Schema: application/json
object (report.ImpressionTable)

Response samples

Content type
application/json
{
}