Get Campaign-level performance report

Use the Campaigns Performance Report API to retrieve comprehensive performance metrics for all your SEM campaigns in a paginated and sorted format. You can specify the maximum number of campaigns to return, the sorting order, and the filtering criteria, such as the field by which to filter the results. The detailed summary allows you to analyze key performance metrics based on specified filtering and sorting criteria.

NOTE:

Only campaigns created via the Create a new Campaign API appear in the Campaign-level performance report. Seller Center campaigns are not included.

Starting December 8, 2025, all campaigns will be visible in the report, regardless of where they were created.

Throttling

This API endpoint is throttled—if you submit too many feeds too quickly, you might hit Walmart’s rate limits and receive HTTP 429 responses. To learn more about throttling, refer to the Marketplace throttling documentation.

Endpoint

POST /v3/advertising/sem/campaigns/performance-summary

Sample request

curl --location 'https://marketplace.walmartapis.com/v3/advertising/sem/campaigns/performance-summary' \
--header 'WM_SVC.NAME: Search Engine Marketing' \
--header 'WM_QOS.CORRELATION_ID: 49373061-ec28-4b2f-8e5d-87c139d605b9' \
--header 'WM_SEC.ACCESS_TOKEN: **********' \
--header 'Content-Type: application/json' \
--data '{ "page": { "offset": 0, "limit": 10 }, "filters": [ { "field": "duration", "values": [ "2025-05-01", "2025-10-31" ] }, { "field": "status", "values": [ "RUNNING", "COMPLETED" ] } ], "sort": { "field": "gmv", "order": "DESC" }
}'
import requests url = "https://marketplace.walmartapis.com/v3/advertising/sem/campaigns/performance-summary" headers = { "WM_SVC.NAME": "Search Engine Marketing", "WM_QOS.CORRELATION_ID": "49373061-ec28-4b2f-8e5d-87c139d605b9", "WM_SEC.ACCESS_TOKEN": "YOUR_ACCESS_TOKEN", # Replace with your actual token "Content-Type": "application/json"
} payload = { "page": { "offset": 0, "limit": 10 }, "filters": [ { "field": "duration", "values": [ "2025-05-01", "2025-10-31" ] }, { "field": "status", "values": [ "RUNNING", "COMPLETED" ] } ], "sort": { "field": "gmv", "order": "DESC" }
} response = requests.post(url, headers=headers, json=payload) print("Status Code:", response.status_code)
print("Response JSON:", response.json())

Modify your code

  1. Use your unique WM_QOS.CORRELATION_ID for each request.
  2. Use your unique WM_SEC.ACCESS_TOKEN obtained from the Token API.
  3. Optionally, you can update these parameters:
    • offset- Replace 0 with a positive number to specify the starting point for fetching the records.
    • limit - Replace 10 with a positive number to specify the maximum number of records to display per page. This value cannot exceed 200.
    • sort - Replace gmv with a field by which to sort the data.
      • You can sort fields by: [startDate, endDate, impressions, clicks, adSpend, gmv, roas, ctr, cpc]
      "sort": { "field": "impressions", "order": "DESC" }
      
      • You can filter results using the following fields:
        • name
        • campaignId
        • status: Supported values are RUNNING, COMPLETED, PAUSED, READY, STOPPED, DELETED
        • duration: Specify a date range using 'from' and 'to' in the yyyy-mm-dd format.
          First value should be the start date and second one should be the end date.
    • order - Replace DESC with an order of sorting. For example, DESC for descending order and ASC for ascending order.

Sample response

{ "pagination": { "pageNo": 0, "pageSize": 10, "totalCount": 2, "totalPages": 1 }, "data": [ { "campaignId": "123456790", "name": "Valentines Day Campaign", "startDate": "2025-05-01", "endDate": "2025-10-28", "totalBudget": 2000.0, "dailyBudget": 100.0, "targetRoas": 3.5, "status": "COMPLETED", "createdDate": "2025-01-20", "traffic": { "impressions": 5000, "clicks": 250, "ctr": 0.05, "adspend": 150.0, "cpc": 0.6, "gmv": 600.0, "roas": 4.0 } }, { "campaignId": "123456789", "name": "New Year Campaign", "startDate": "2025-06-01", "endDate": "2025-10-31", "totalBudget": 1000.0, "dailyBudget": 50.0, "targetRoas": 3.0, "status": "RUNNING", "createdDate": "2024-12-20", "traffic": { "impressions": 4000, "clicks": 200, "ctr": 0.05, "adspend": 120.0, "cpc": 0.6, "gmv": 420.0, "roas": 3.5 } } ]
}

Result

You'll get a detailed performance report for all of your SEM campaigns.