> For the complete documentation index, see [llms.txt](https://docs.helix.voodoo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.helix.voodoo.io/api-reference/monetization-reporting-api.md).

# Monetization Reporting API

Programmatic access to your Helix monetization performance data: impressions, revenue, and more for a given date range, optionally filtered to specific columns.

Use this API to feed monetization data into BI systems, finance workflows, or automated alerting.

### Getting started

Generate an **API key** from the Helix dashboard under **Monetization > API Keys**, then click **New API Key** and copy it (you won't be able to see it again). If the API Keys page isn't available to you, contact your Helix Account Manager.

{% hint style="warning" %}
Keep your API key secure. Treat it like a password: never share it or expose it in client-side code.
{% endhint %}

### Authentication

All requests must include your API key in the `X-API-Key` header:

```
X-API-Key: YOUR_API_KEY
```

Requests without a valid key return `401 Unauthorized`.

### Base URL

```
https://app.helix.voodoo.io
```

### Timezone

All dates in request parameters use **UTC**. `start` and `end` refer to full calendar days in UTC.

### Data delay

Data is available with a **2-hour delay** relative to live events. When scheduling automated pulls, run your job at least 2 hours after the target window closes to ensure complete results.

### Compression

All responses are gzip-compressed by default. No special request header is needed; your HTTP client handles decompression automatically.

## GET /api/v1/reporting/monetization

> Monetization Reporting API Spec

````json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"tags":[{"name":"Reporting","description":"Use this API to feed monetization data into BI systems, finance workflows, or automated alerting.\n\n## Getting started\n\nGenerate an **API key** from the Helix dashboard under **Monetization > API Keys**, then click **New API Key** and copy it (you won't be able to see it again). If the API Keys page isn't available to you, contact your Helix Account Manager.\n\n{% hint style=\"warning\" %}\nKeep your API key secure. Treat it like a password: never share it or expose it in client-side code.\n{% endhint %}\n\n## Authentication\n\nAll requests must include your API key in the `X-API-Key` header:\n\n```\nX-API-Key: YOUR_API_KEY\n```\n\nRequests without a valid key return `401 Unauthorized`.\n\n## Base URL\n\n```\nhttps://app.helix.voodoo.io\n```\n\n## Timezone\n\nAll dates in request parameters use **UTC**. `start` and `end` refer to full calendar days in UTC.\n\n## Data delay\n\nData is available with a **2-hour delay** relative to live events. When scheduling automated pulls, run your job at least 2 hours after the target window closes to ensure complete results.\n\n## Compression\n\nAll responses are gzip-compressed by default. No special request header is needed; your HTTP client handles decompression automatically."}],"servers":[{"url":"https://app.helix.voodoo.io","description":"Generated server url"}],"security":[{"X-API-Key":[]}],"components":{"securitySchemes":{"X-API-Key":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{"MonetizationReportingLine":{"type":"object","description":"A single monetization reporting line. Fields with no data for a given row are omitted.","properties":{"day":{"type":"string","format":"date","description":"Date of the report line, in YYYY-MM-DD format (UTC)."},"application":{"type":"string","description":"Application display name."},"applicationId":{"type":"string","description":"App bundle identifier: Android bundle ID (e.g. com.example.myapp) or iOS numeric App Store ID (e.g. 1389111413)."},"adUnit":{"type":"string","description":"Ad unit name as configured in Helix."},"adUnitId":{"type":"string","description":"Helix ad unit ID (UUID)."},"format":{"type":"string","description":"Ad format type.","enum":["INTERSTITIAL","REWARDED"]},"country":{"type":"string","description":"ISO 3166-1 alpha-3 country code."},"countryIso2":{"type":"string","description":"ISO 3166-1 alpha-2 country code."},"platform":{"type":"string","description":"Operating system of the device.","enum":["IOS","ANDROID"]},"mediation":{"type":"string","description":"Mediation provider name."},"impressions":{"type":"integer","format":"int32","description":"Total number of impressions."},"revenue":{"type":"number","format":"double","description":"Publisher revenue, in USD."},"clicks":{"type":"integer","format":"int32","description":"Total number of clicks."},"requests":{"type":"integer","format":"int32","description":"Total number of ad requests made."},"responses":{"type":"integer","format":"int32","description":"Total number of ad responses."}}},"Error":{"type":"object","description":"Describes an error response","properties":{"status":{"type":"integer","format":"int32"},"title":{"type":"string"},"detail":{"type":"string"}}}}},"paths":{"/api/v1/reporting/monetization":{"get":{"tags":["Reporting"],"summary":"Monetization Reporting API Spec","operationId":"monetizationReport","parameters":[{"name":"start","in":"query","description":"Start of the date range (inclusive). Format: YYYY-MM-DD (UTC). Must not be more than 3 months in the past.","required":true,"schema":{"type":"string","format":"date"}},{"name":"end","in":"query","description":"End of the date range (inclusive). Format: YYYY-MM-DD (UTC). Must not be before the start date.","required":true,"schema":{"type":"string","format":"date"}},{"name":"columns","in":"query","description":"Comma-separated list of columns to include. Possible values: day, application, application_id, ad_unit, ad_unit_id, format, country, country_iso2, platform, mediation, impressions, revenue, clicks, requests, responses. If omitted, all columns are included.","required":false,"schema":{"type":"string"}},{"name":"format","in":"query","description":"Response format. Possible values: json, csv. If omitted, defaults to json. Can also be controlled via the Accept header (text/csv).","required":false,"schema":{"type":"string","enum":["json","csv"]}},{"name":"Accept","in":"header","description":"Response content type. Use application/json (default) or text/csv.","required":false,"schema":{"type":"string","default":"application/json"}}],"responses":{"200":{"description":"Returns reporting as a downloadable JSON or CSV file","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonetizationReportingLine"}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"A required parameter is missing, or a value is invalid (e.g. bad date format, unknown column name, or end date before start date).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
````


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.helix.voodoo.io/api-reference/monetization-reporting-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
