Get details of a Campaign
Use the Get Campaign Details API to retrieve details of the SEM campaign with the specified Campaign ID. The Campaign's unique Campaign ID is required to get the campaign details.
Campaign state lifecycle
Campaigns progress through defined lifecycle states that control delivery and reporting. The table defines each state and shows common transitions as start dates, budgets, or manual actions change. Terminal states are noted in the table.
| State | What it means | Typical transitions |
|---|---|---|
| READY | Passed validation and queued to start the following day. Use for (next-day starts only). | → RUNNING (auto-start next day), → DELETED (removed before start). |
| SCHEDULED | Passed validation and set to start on a configured future date. Use for beyond the next day. | → RUNNING (start date reached), → DELETED (removed before start). |
| RUNNING | Actively serving ads; performance data appears in reports and API responses. | → LIMITED_BY_BUDGET (approaching cap; throttling possible), → BUDGET_EXHAUSTED (cap reached; stops), → CAMPAIGN_ENDING_SOON (near end date), → COMPLETED (end date reached), → STOPPED (ended early). |
| LIMITED_BY_BUDGET | Serving ads but near budget limits; delivery may slow or pause without more funds; remains eligible to serve until budget is fully depleted. | → RUNNING (add funds/reset cycle), → BUDGET_EXHAUSTED (cap reached), → CAMPAIGN_ENDING_SOON (near end date), → COMPLETED, → STOPPED. |
| BUDGET_EXHAUSTED | Delivery stopped because the total budget cap was reached; can resume only if budget increases and the end date hasn’t passed. | → RUNNING (increase budget), → COMPLETED (end date passes while stopped), → STOPPED. |
| CAMPAIGN_ENDING_SOON | Near the scheduled end date; will stop unless the end date is extended. | → RUNNING (extend end date), → COMPLETED (end date reached), → STOPPED. |
| COMPLETED | Reached its scheduled end date; terminal; cannot be resumed. Reporting data remains available. | — (terminal) |
| STOPPED | Ended early by user or system; terminal; cannot be resumed. Reporting data remains available. | — (terminal) |
| DELETED | Removed before its start date; terminal; cannot be resumed. | — (terminal) |
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
GET /v3/advertising/sem/campaigns/{campaignId}
Sample request
curl --location 'https://marketplace.walmartapis.com/v3/advertising/sem/campaigns/123456789' \
--header 'WM_SVC.NAME: Search Engine Marketing' \
--header 'WM_QOS.CORRELATION_ID: 01fc147d-b17e-4447-a443-5146a01776b3' \
--header 'WM_SEC.ACCESS_TOKEN: **********'
import requests url = 'https://marketplace.walmartapis.com/v3/advertising/sem/campaigns/123456789' headers = { 'WM_SVC.NAME': 'Search Engine Marketing', 'WM_QOS.CORRELATION_ID': '01fc147d-b17e-4447-a443-5146a01776b3', 'WM_SEC.ACCESS_TOKEN': '**********'
} response = requests.get(url, headers=headers) print(response.status_code)
print(response.text)
Modify your code
- Replace
123456789in the URL with the actual campaign ID you want to use. - Use your unique
WM_QOS.CORRELATION_IDfor each request. - Use your unique
WM_SEC.ACCESS_TOKENobtained from the Token API.
Sample response
{ "campaignId": "123456789", "name": "New Year Campaign", "startDate": "2025-01-01", "endDate": "2025-01-31", "dailyBudget": 100, "totalBudget": 1000, "targetRoas": 3, "status": "RUNNING", "createdDate": "2024-11-20"
}
Result
You'll get a status of the specified campaign.
Updated 5 days ago
