Hi Apple Developer Community,
Since March 16, 2026, our integration with the Apple Ads Campaign Management API (v5) is returning 403 Forbidden on all GET requests to the custom-reports endpoint, while POST requests to create reports continue to work without any issues.
Environment
API Version: v5
Base URL: https://api.searchads.apple.com/api/v5/
Authentication: OAuth 2.0 (Bearer token — token generation works fine)
API User Role: API Account Manager
What's broken
GET /api/v5/custom-reports/63638557 → 403 Forbidden
The response is raw HTML from Apple's gateway, not a JSON API error:
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>Apple</center>
</body>
</html>
This indicates the request is being blocked at the reverse proxy / infrastructure level and never reaches the API application layer. A proper API-level authorization error would return JSON with messageCode and message fields.
What still works
POST creates report successfully
POST /api/v5/custom-reports → 200 OK
Response:
{
"data": {
"id": 63638557,
"name": "Impression_Share_Report_2026-03-22_daily",
"startTime": "2026-02-21",
"endTime": "2026-03-22",
"granularity": "DAILY",
"downloadUri": null,
"dimensions": ["appName", "adamId", "countryOrRegion", "searchTerm"],
"metrics": ["lowImpressionShare", "highImpressionShare", "rank", "searchPopularity"],
"selector": { "conditions": [] },
"state": "QUEUED",
"creationTime": "2026-03-23T10:05:25.537",
"modificationTime": "2026-03-23T10:05:25.537"
},
"pagination": null,
"error": null
}
The report is created and enters QUEUED state with downloadUri: null, which is expected. The normal flow is to poll the GET endpoint until state becomes COMPLETED and downloadUri is populated. But the GET endpoint now returns a 403 at the gateway level, making it impossible to retrieve or download the report.
Other endpoints confirmed working
POST to standard reporting endpoints (e.g., /api/v5/reports/campaigns/{campaignId}/keywords) → 200 OK
All other campaign management GET endpoints (campaigns, ad groups, keywords) → 200 OK
OAuth token generation → works fine
What we've verified
Bearer token is valid and not expired (other endpoints work with the same token)
X-AP-Context: orgId= header is present and correct in all requests
Accept: application/json and Content-Type: application/json headers are set
The reportId (63638557) is a valid ID returned by the successful POST
API user has API Account Manager role (not Read-only)
No changes were made to our code or credentials — this started failing on March 16 with no code deployment on our side
Tested with multiple report IDs (both new and previously created) — all return the same HTML 403
Timeline
Before March 16, 2026: Full POST + GET flow for custom reports worked without issues
March 16, 2026: GET requests began returning 403. POST requests unaffected.
March 18, 2026: We noticed reports about Custom Reports being replaced by Insights
Our suspicion
We're aware that Apple has introduced the Insights analytics tool as a replacement for Custom Reports. The timing of our 403 errors aligns exactly with this transition. The fact that the 403 is an HTML gateway response (not a JSON API error) suggests the GET route has been deliberately removed from the API gateway configuration.
However, we could not find any API changelog, deprecation notice, or migration guide documenting:
Whether the custom-reports GET endpoint has been intentionally removed
What the replacement API endpoint is for programmatically retrieving report data (especially Impression Share reports)
Whether there is a migration timeline or if this is a permanent change
Why POST still works if the feature is being deprecated
What we need
Confirmation: Is the 403 on custom-reports GET intentional due to the Insights migration, or is this a bug/misconfiguration?
Migration path: If Custom Reports API is being deprecated, what is the new API endpoint for retrieving Impression Share data programmatically? Is there an Insights API?
Timeline: If this is a phased deprecation, when will the POST endpoint also stop working?
Documentation: Is there an updated API reference or migration guide?
Impact
This is a production-breaking issue for our data pipeline. We rely on the POST → GET → download flow to pull Impression Share data (impression share, rank, search popularity by search term and country) for downstream analytics. The standard reporting POST endpoints (/api/v5/reports/campaigns/...) do not support Impression Share metrics, so there is currently no API workaround for this specific data.
Any guidance from Apple engineers or anyone in the community experiencing the same issue would be greatly appreciated.
Thanks in advance.