> For the complete documentation index, see [llms.txt](https://pubscale.gitbook.io/immersive-ads-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pubscale.gitbook.io/immersive-ads-sdk/reporting-api/api-key-documentation.md).

# API Key Documentation

### Immersive Analytics Reporting API

***

This API returns your Immersive Analytics (IA) reporting data - the same numbers shown in your GreedyGame IA dashboard.

Reporting URL: `https://go.greedygame.com/v1/chameleon/reporting/public/signal/report/generate`

Method: `POST`

| Input Type | Item                    | Required | Description                                                         |
| ---------- | ----------------------- | -------- | ------------------------------------------------------------------- |
| Header     | X-Api-Key\*             | True     | Your Immersive Analytics reporting API key                          |
| Header     | Content-Type            | True     | `application/json`                                                  |
| Body       | date\_range.start\_date | True     | Starting date (format: 2006-01-02)                                  |
| Body       | date\_range.end\_date   | True     | Ending date (format: 2006-01-02)                                    |
| Body       | dimensions              | True     | List of allowed dimensions. At least one is required                |
| Body       | metrics                 | True     | List of allowed metrics. At least one is required                   |
| Body       | filters                 | False    | List of `{ "dimension": <dim>, "values": [...] }` to filter by      |
| Body       | order\_by               | False    | List of `{ "column": <dim or metric>, "ascending": true or false }` |
| Body       | pagination              | False    | `{ "page": <n>, "count": <rows per page> }`                         |

`*`Create and manage your `X-Api-Key` from the GreedyGame publisher dashboard (scope `ia-reporting.READ`). The key maps to your publisher account - results are always limited to your own apps.

#### Dimensions

* date
* app
* country
* placement\_id
* ad\_tag
* demand\_source
* sdk\_v

#### Metrics

* ad\_requests
* ad\_responses
* impressions
* clicks
* revenue
* ecpm
* fill\_rate
* show\_rate
* click\_rate

#### Limitations

* Date range between `start_date` and `end_date` must be less than or equal to 90 days
* Rate limit: 1 request every 2 seconds per API key
* The `ad_tag` dimension cannot be combined with the `ad_requests`, `ad_responses`, `fill_rate` or `show_rate` metrics

#### Errors

Errors return a JSON body of the form `{ "error": "<message>", "code": "<code>" }`, with the HTTP status shown below.

* `invalid or inactive api key`: the `X-Api-Key` header is missing, wrong, or the key was revoked (HTTP 401)
* `rate limit exceeded`: too many requests - retry after a short delay (HTTP 429)
* `invalid dimension selected` / `invalid metric selected`: a requested dimension/metric is not in the allowed list (HTTP 400)
* `invalid daterange from` / `invalid daterange to`: date not in `2006-01-02` format (HTTP 400)
* `Time period must be less than or equal to 90 days`: date range too large (HTTP 400)
* A `204 No Content` response means there is no data for the requested query

#### Sample request

Please replace values inside `<` `>` with your own values.

```
curl -X POST 'https://go.greedygame.com/v1/chameleon/reporting/public/signal/report/generate' \
  -H 'X-Api-Key: <your-api-key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "date_range": { "start_date": "2026-06-01", "end_date": "2026-06-30" },
    "dimensions": ["date", "app", "country"],
    "metrics": ["impressions", "revenue", "ecpm"],
    "filters": [{ "dimension": "country", "values": ["IN", "US"] }],
    "order_by": [{ "column": "date", "ascending": false }],
    "pagination": { "page": 1, "count": 500 }
  }'
```

#### Sample response

Rows are returned under `rows`. Each row contains the requested dimensions and metrics; zero-value fields are omitted. `app` is an object with the app's name when the `app` dimension is requested.

```json
{
  "rows": [
    { "date": "2026-06-30", "app_id": "24814157", "app": { "name": "<app name>" }, "country": "IN", "impressions": 12345, "revenue": 67.89, "ecpm": 5.50 }
  ]
}
```
