# Partner Reporting API

## Introduction

This API is for programmatic partners to retrieve daily aggregate impressions & revenue (publishers) or cost (advertisers) numbers for discrepancy monitoring. Please note the [API Rules](#api-rules).

## Authentication

Each request must contain the following headers:


Header                 | Value
----                   | -----
Content-Type           | `application/json`
Authorization          | `{{PARTNER AUTH TOKEN}}`


Please reach out to our Integrations team for your auth token.

## Requests

URL: `https://chili.chartboost.com/partner`

Method: POST
Each request body supports the following JSON fields:


Name          | Required | Type   | Description
----          | -------- | ----   | -----------
timezone      | true     | string | Timezone of the returned data.  Supported values are 'utc' or 'pst'.
date_min      | false    | string | Format: `YYYY-MM-DD`; default: previous calendar date.
date_max      | false    | string | Format: `YYYY-MM-DD`; default: previous calendar date.
metrics       | true     | array of strings | Data fields to return aggregate data for.  Supported values include `impressions`, `revenue` (publishers only), `cost` (advertisers only), and `ecpm`.
group_by      | true     | array of strings | Dimensions to aggregate data by. Supported values include `dt`, `country`, `creative_type_name`, and `bundle` (publishers only).


### Dimensions

The following dimensions are available for use in the group_by parameter:

- `dt`
- `country`
- `creative_type_name`
- `bundle` (publishers only)

### Metrics

The following metrics are available:

- `impressions`
- `revenue` (publishers only; earnings) 
- `cost` (advertisers only; spend)
- `ecpm` (revenue / impressions * 1000) or (cost / impressions * 1000)

## API Rules

- Data is only updated once per hour.
- Rate limited to 100 requests per rolling 60-minute window.
- Data is available for 90 days.


Questions? Email us at <integrations-team@chartboost.com>.

## Examples


<ul class="tab" data-tab="38e3985a-74bf-4854-8833-a93038b405f6" data-name="partnerReportingAPI">
  
      <li class="active">
          <a href="#">PHP </a>
      </li>
  
      <li>
          <a href="#">Python </a>
      </li>
  
      <li>
          <a href="#">Javascript </a>
      </li>
  
</ul>
<ul class="tab-content" id="38e3985a-74bf-4854-8833-a93038b405f6" data-name="partnerReportingAPI">
  
      <li class="active">
<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?php</span>

<span class="nv">$CB_PARTNER_API_ENDPOINT</span> <span class="o">=</span> <span class="s2">"https://chili.chartboost.com/partner"</span><span class="p">;</span>
<span class="nv">$CB_PARTNER_API_AUTH_TOKEN</span> <span class="o">=</span> <span class="s2">"{{PARTNER AUTH TOKEN}}"</span><span class="p">;</span>

<span class="nv">$date_min</span> <span class="o">=</span> <span class="s2">"2019-08-01"</span>
<span class="nv">$date_max</span> <span class="o">=</span> <span class="s2">"2019-08-07"</span>
<span class="nv">$group_by</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"dt"</span><span class="p">,</span> <span class="s2">"country"</span><span class="p">,</span> <span class="s2">"creative_type_name"</span><span class="p">]</span>
<span class="nv">$metrics</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"impressions"</span><span class="p">,</span> <span class="s2">"ecpm"</span><span class="p">]</span>
<span class="nv">$timezone</span> <span class="o">=</span> <span class="s2">"utc"</span>

<span class="nv">$request</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">HttpRequest</span><span class="p">();</span>
<span class="nv">$request</span><span class="o">-&gt;</span><span class="nf">setUrl</span><span class="p">(</span><span class="nv">$CB_PARTNER_API_ENDPOINT</span><span class="p">);</span>
<span class="nv">$request</span><span class="o">-&gt;</span><span class="nf">setMethod</span><span class="p">(</span><span class="no">HTTP_METH_POST</span><span class="p">);</span>

<span class="nv">$request</span><span class="o">-&gt;</span><span class="nf">setHeaders</span><span class="p">(</span><span class="k">array</span><span class="p">(</span>
  <span class="s1">'Cache-Control'</span> <span class="o">=&gt;</span> <span class="s1">'no-cache'</span><span class="p">,</span>
  <span class="s1">'Content-Type'</span> <span class="o">=&gt;</span> <span class="s1">'application/json'</span><span class="p">,</span>
  <span class="s1">'Authorization'</span> <span class="o">=&gt;</span> <span class="nv">$CB_PARTNER_API_AUTH_TOKEN</span>
<span class="p">));</span>

<span class="nv">$request</span><span class="o">-&gt;</span><span class="nf">setBody</span><span class="p">(</span><span class="s1">'{
  "timezone": $timezone,
  "group_by": $group_by,
  "metrics": $metrics,
  "date_min": $date_min,
  "date_max": $date_max
}'</span><span class="p">);</span>

<span class="k">try</span> <span class="p">{</span>
  <span class="nv">$response</span> <span class="o">=</span> <span class="nv">$request</span><span class="o">-&gt;</span><span class="nf">send</span><span class="p">();</span>

  <span class="k">echo</span> <span class="nv">$response</span><span class="o">-&gt;</span><span class="nf">getBody</span><span class="p">();</span>
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nc">HttpException</span> <span class="nv">$err</span><span class="p">)</span> <span class="p">{</span>
  <span class="k">echo</span> <span class="nv">$err</span><span class="p">;</span>
<span class="p">}</span>

<span class="cp">?&gt;</span>
</code></pre></div></div>

</li>
  
      <li>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">requests</span>
<span class="kn">import</span> <span class="n">json</span>

<span class="n">CB_PARTNER_API_URL</span> <span class="o">=</span> <span class="s">"https://chili.chartboost.com/partner"</span>
<span class="n">CB_PARTNER_API_AUTH_TOKEN</span> <span class="o">=</span> <span class="s">"{{PARTNER AUTH TOKEN}}"</span>

<span class="n">timezone</span> <span class="o">=</span> <span class="s">"utc"</span>
<span class="n">date_min</span> <span class="o">=</span> <span class="s">"2019-09-16"</span>
<span class="n">date_max</span> <span class="o">=</span> <span class="s">"2019-09-16"</span>
<span class="n">group_by</span> <span class="o">=</span> <span class="p">[</span><span class="s">"dt"</span><span class="p">,</span> <span class="s">"country"</span><span class="p">,</span> <span class="s">"creative_type_name"</span><span class="p">]</span>
<span class="n">metrics</span> <span class="o">=</span> <span class="p">[</span><span class="s">"impressions"</span><span class="p">,</span> <span class="s">"ecpm"</span><span class="p">]</span>
<span class="n">body</span> <span class="o">=</span> <span class="p">{</span>
    <span class="s">"timezone"</span><span class="p">:</span> <span class="n">timezone</span><span class="p">,</span> 
    <span class="s">"group_by"</span><span class="p">:</span> <span class="n">group_by</span><span class="p">,</span> 
    <span class="s">"metrics"</span><span class="p">:</span> <span class="n">metrics</span><span class="p">,</span> 
    <span class="s">"date_min"</span><span class="p">:</span> <span class="n">date_min</span><span class="p">,</span> 
    <span class="s">"date_max"</span><span class="p">:</span> <span class="n">date_max</span>
    <span class="p">}</span>

<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span>
    <span class="s">'Authorization'</span><span class="p">:</span> <span class="n">CB_PARTNER_API_AUTH_TOKEN</span><span class="p">,</span>
    <span class="s">'Content-Type'</span><span class="p">:</span> <span class="s">"application/json"</span><span class="p">,</span>
    <span class="s">'Cache-Control'</span><span class="p">:</span> <span class="s">"no-cache"</span><span class="p">,</span>
    <span class="p">}</span>

<span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="p">.</span><span class="nf">request</span><span class="p">(</span><span class="s">"POST"</span><span class="p">,</span> <span class="n">CB_PARTNER_API_URL</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">json</span><span class="p">.</span><span class="nf">dumps</span><span class="p">(</span><span class="n">body</span><span class="p">),</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">)</span>

<span class="nf">print</span><span class="p">(</span><span class="n">response</span><span class="p">.</span><span class="n">text</span><span class="p">)</span>
</code></pre></div></div>

</li>
  
      <li>
<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// NodeJS</span>
<span class="kd">var</span> <span class="nx">request</span> <span class="o">=</span> <span class="nf">require</span><span class="p">(</span><span class="dl">"</span><span class="s2">request</span><span class="dl">"</span><span class="p">);</span>

<span class="kd">const</span> <span class="nx">CB_PARTNER_API_URL</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">https://chili.chartboost.com/partner</span><span class="dl">"</span><span class="p">;</span>
<span class="kd">const</span> <span class="nx">CB_PARTNER_API_AUTH_TOKEN</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">{{PARTNER AUTH TOKEN}}</span><span class="dl">"</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">timezone</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">utc</span><span class="dl">"</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">group_by</span> <span class="o">=</span> <span class="p">[</span><span class="dl">"</span><span class="s2">dt</span><span class="dl">"</span><span class="p">,</span> <span class="dl">"</span><span class="s2">country</span><span class="dl">"</span><span class="p">,</span> <span class="dl">"</span><span class="s2">creative_type_name</span><span class="dl">"</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">metrics</span> <span class="o">=</span> <span class="p">[</span><span class="dl">"</span><span class="s2">impressions</span><span class="dl">"</span><span class="p">,</span> <span class="dl">"</span><span class="s2">ecpm</span><span class="dl">"</span><span class="p">];</span>
<span class="kd">var</span> <span class="nx">date_min</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">2019-08-01</span><span class="dl">"</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">date_max</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">2019-08-07</span><span class="dl">"</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">body</span> <span class="o">=</span> <span class="p">{</span> 
     <span class="na">timezone</span><span class="p">:</span> <span class="nx">timezone</span><span class="p">,</span>
     <span class="na">group_by</span><span class="p">:</span> <span class="nx">group_by</span><span class="p">,</span>
     <span class="na">metrics</span><span class="p">:</span> <span class="nx">metrics</span><span class="p">,</span>
     <span class="na">date_min</span><span class="p">:</span> <span class="nx">date_min</span><span class="p">,</span>
     <span class="na">date_max</span><span class="p">:</span> <span class="nx">date_max</span>
    <span class="p">};</span>

<span class="kd">var</span> <span class="nx">options</span> <span class="o">=</span> <span class="p">{</span> 
  <span class="na">method</span><span class="p">:</span> <span class="dl">'</span><span class="s1">POST</span><span class="dl">'</span><span class="p">,</span>
  <span class="na">url</span><span class="p">:</span> <span class="nx">CB_PARTNER_API_URL</span><span class="p">,</span>
  <span class="na">headers</span><span class="p">:</span> 
   <span class="p">{</span> <span class="dl">'</span><span class="s1">Cache-Control</span><span class="dl">'</span><span class="p">:</span> <span class="dl">'</span><span class="s1">no-cache</span><span class="dl">'</span><span class="p">,</span>
     <span class="dl">'</span><span class="s1">Content-Type</span><span class="dl">'</span><span class="p">:</span> <span class="dl">'</span><span class="s1">application/json</span><span class="dl">'</span><span class="p">,</span>
     <span class="dl">'</span><span class="s1">Authorization</span><span class="dl">'</span><span class="p">:</span> <span class="nx">CB_PARTNER_API_AUTH_TOKEN</span> <span class="p">},</span>
  <span class="na">body</span><span class="p">:</span> <span class="nx">body</span><span class="p">,</span>
  <span class="na">json</span><span class="p">:</span> <span class="kc">true</span>
<span class="p">};</span>

<span class="nf">request</span><span class="p">(</span><span class="nx">options</span><span class="p">,</span> <span class="nf">function </span><span class="p">(</span><span class="nx">error</span><span class="p">,</span> <span class="nx">response</span><span class="p">,</span> <span class="nx">body</span><span class="p">)</span> <span class="p">{</span>
  <span class="nf">if </span><span class="p">(</span><span class="nx">error</span><span class="p">)</span> <span class="k">throw</span> <span class="k">new</span> <span class="nc">Error</span><span class="p">(</span><span class="nx">error</span><span class="p">);</span>

  <span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">body</span><span class="p">);</span>
<span class="p">});</span>

</code></pre></div></div>

</li>
  
</ul>

