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.

StateWhat it meansTypical transitions
READYPassed validation and queued to start the following day. Use for (next-day starts only).RUNNING (auto-start next day), → DELETED (removed before start).
SCHEDULEDPassed validation and set to start on a configured future date. Use for beyond the next day.RUNNING (start date reached), → DELETED (removed before start).
RUNNINGActively 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_BUDGETServing 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_EXHAUSTEDDelivery 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_SOONNear the scheduled end date; will stop unless the end date is extended.RUNNING (extend end date), → COMPLETED (end date reached), → STOPPED.
COMPLETEDReached its scheduled end date; terminal; cannot be resumed. Reporting data remains available.(terminal)
STOPPEDEnded early by user or system; terminal; cannot be resumed. Reporting data remains available.(terminal)
DELETEDRemoved 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

  1. Replace 123456789 in the URL with the actual campaign ID you want to use.
  2. Use your unique WM_QOS.CORRELATION_ID for each request.
  3. Use your unique WM_SEC.ACCESS_TOKEN obtained 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.