Issue with Reporting API – NullRequest Error When Submitting Campaign Performance Report
Dear Microsoft Advertising Support Team,
I am encountering a persistent "NullRequest" error when attempting to submit a Campaign Performance Report via the Reporting API v13. I would appreciate your assistance in identifying the root cause.
API Endpoint:
POST https://reporting.api.bingads.microsoft.com/Reporting/v13/GenerateReport/Submit
{
"ExcludeColumnHeaders": false,
"ExcludeReportFooter": false,
"ExcludeReportHeader": false,
"Format": "Csv",
"FormatVersion": "2.0",
"ReportName": "My Campaign Performance Report",
"ReturnOnlyCompleteData": false,
"Type": "CampaignPerformanceReportRequest",
"Aggregation": "Daily",
"Columns": [
"AccountName",
"AccountId",
"CampaignName",
"CampaignId",
"Impressions",
"Clicks",
"Ctr",
"AverageCpc",
"Spend",
"Conversions"
``` ],
"Filter": {
```haskell
"AccountStatus": "Active",
"AdDistribution": "Search",
"DeviceType": "Computer,SmartPhone"
``` },
"Scope": {
```yaml
"AccountIds": [xxxxxx]
``` },
"Time": {
```sql
"PredefinedTime": "LastSevenDays"
``` }
}
HTTP Headers:
- `Authorization: Bearer <valid_access_token>`
- `CustomerAccountId: xxxxx`
- `CustomerId: xxxxx`
- `DeveloperToken: <valid_developer_token>`
- `Content-Type: application/json`
Response Received:
{
```haskell
"OperationErrors": [
{
"Code": 100,
"ErrorCode": "NullRequest",
"Message": "The request message is null."
}
],
"TrackingId": "399d1b50-d55e-4237-8f66-041dcddf593b",
"Type": "ApiFaultDetail"
``` }
Despite providing a well-formed JSON payload and valid authentication headers, the API treats the request as null. I’ve verified:
- The access token is valid and scoped to [https://ads.microsoft.com/msads.manage]() offline_access.
- All required headers are included.
- The JSON structure matches the [official CampaignPerformanceReportRequest schema ](https://learn.microsoft.com/en-us/advertising/reporting-service/campaignperformancereportrequest?spm=a2ty_o01.29997173.0.0.12e4c921vklcT3&view=bingads-13).
Could you please:
```yaml
1. Confirm whether the `/GenerateReport/Submit` endpoint accepts direct JSON POST requests?
1. Clarify if there’s an issue with the report definition structure or missing wrapper (e.g., should the payload be nested under a `"ReportRequest"` key)?
1. Investigate using the provided **TrackingId**: `399d1b50-d55e-4237-8f66-041dcddf593b`.
Thank you for your support. I look forward to your guidance.
Best regards,
Santosh Sakre