Reporting API
Pull your Noise campaign performance into your own tools: daily spend, views, posts, creators, CPM, and install estimates.
The Noise Reporting API gives your brand read-only access to daily campaign performance. Base URL:
https://reporting.getnoise.com
Authentication
Every request needs two headers:
x-noise-org: your organization slugx-noise-token: your API key
Both live in your Noise dashboard: on the new dashboard under Settings β Integrations, or on the classic dashboard under Resources β Reporting API. Keep the token secret; rotate it from the same page if it leaks.
Building with an AI assistant?
Give it the OpenAPI spec and it can write correct requests and generate a client for you:
https://reporting.getnoise.com/openapi.yaml
Metrics
spend: your cost, USDviews: views earned that day (daily incremental)posts: approved postscreators: unique creatorscpm: cost per 1,000 views (spend / views Γ 1000)estimated_installs: app installs. When your brand has a connected App Store or Google Play integration, this is first-party store data for that platform; days the store data does not cover (including history from before you connected) are filled with a third-party SensorTower estimate when one is available.totals.installs_sourcetells you which contributed (store,estimated, ormixed). Org-wide per day, so it is only returned when grouping by day alone (not by campaign or playbook), and only if your brand has an installs source.
Group by
date (always), plus optional campaign and/or playbook (playbook_id: 0 = Custom Posts).
GET /v1/reports/daily
Daily metrics with a period totals summary.
Parameters: start_date, end_date (required, YYYY-MM-DD, UTC, up to 366 days), group_by (csv of campaign,playbook), campaign_id, playbook_id, and metrics (subset; default all).
curl -s https://reporting.getnoise.com/v1/reports/daily \ -H "x-noise-org: your-org-slug" \ -H "x-noise-token: $NOISE_API_KEY" \ --get \ --data-urlencode "start_date=2026-06-01" \ --data-urlencode "end_date=2026-06-30" \ --data-urlencode "group_by=campaign"
Response:
{
"meta": {
"start_date": "2026-06-01",
"end_date": "2026-06-30",
"group_by": ["date", "campaign"],
"timezone": "UTC",
"row_count": 30,
"data_freshness": "~5 minutes"
},
"totals": { "spend": 2460.50, "views": 722444, "posts": 62, "creators": 51, "cpm": 3.41 },
"data": [
{ "date": "2026-06-01", "campaign_id": 812, "campaign_name": "Summer Launch",
"spend": 1840.50, "views": 512334, "posts": 44, "creators": 39, "cpm": 3.59 }
]
}
GET /v1/campaigns and GET /v1/playbooks
List your campaigns / playbooks (id, name, active) to use as campaign_id / playbook_id filters.
curl -s https://reporting.getnoise.com/v1/campaigns \ -H "x-noise-org: your-org-slug" \ -H "x-noise-token: $NOISE_API_KEY"
Notes
- Days are UTC; data lags real time by roughly 5 minutes.
cpmaggregates (total spend Γ· total views), so daily and campaign-level CPM can differ. This is expected.- Spend and views are dated independently (you're billed as views land), so daily CPM is noisier than range or campaign CPM.
- Rate limited per org; responses include
X-RateLimit-*headers.
Connect an AI client (MCP)
Prefer talking to your data instead of calling endpoints? Connect Claude or another MCP-capable client to https://reporting.getnoise.com/mcp from the dashboard's Integrations page and ask questions in plain language.