GET Creative Moderation Comments

📘

URL: GET /api/v1/creatives/moderation/comments?creativeId={uuid of creative}&advertiserId={id of advertiser}

Query Parameters

ParameterDescriptionTypeRequiredPossible Values
advertiserIdThe ID for the specific advertiserintegerYA valid advertiser ID
creativeIdThe UUID of the creativestringYA valid creative ID
filterValues: resolved, unresolvedarrayresolved, unresolved

Headers

Header NameDescriptionRequiredValues
AuthorizationThe token will provide you the access to the API. It is same for all advertisers you access through the API.YPlease utilize the generated auth_token shared with you at the time of partner onboarding from the Getting Started Guide
Content-TypeFormat of the message bodyYapplication/json
WM_CONSUMER.IDUnique ID for consumer. We will provide you the consumer ID to access the API. It is same for all advertisers you access through the API.   YPlease use the generated ConsumerId shared with you at the time of partner onboarding. Refer to the Getting Started Guide for more information
WM_SEC.AUTH_SIGNATURESignature for authenticationYUse the signature generator code from Getting Started Guide to generate this value
WM_SEC.KEY_VERSIONKey version. We will provide you with the KEY VERSION to access the API. It is same for all advertisers you access through the API.Y1
WM_CONSUMER.intimestampTimestamp for which the auth signature is generated. Use Unix epoch format for the timestamp.YUse the signature generator code from Getting Started Guide to generate this value

Sample Request

curl -X GET \
--location 'https://developer.api.us.stg.walmart.com/api-proxy/service/display/api/v1/api/v1/creatives/moderation/comments?creativeId=abcde-12345&advertiserId=123' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <token>' \
--header 'WM_CONSUMER.ID: <consumer id>' \
--header 'WM_SEC.KEY_VERSION: 1' \
--header 'WM_CONSUMER.INTIMESTAMP: 0000000000000' \
--header 'WM_SEC.AUTH_SIGNATURE: <token>'

Response

ElementDescriptionType
creativeIdUUID of creativestring
namename of creativestring
statusstatus represents the high-level lifecycle state of the creative. This is the primary field that should be used to determine whether a creative is approved, rejected, or still going through moderation. Supported values:

PENDING_APPROVAL: The creative has been submitted for moderation and is not yet in a final approved or rejected state. When status=PENDING_APPROVAL, clients can use detailedStatus to understand the specific stage of the moderation workflow

APPROVED:The creative has completed moderation and is approved for use. This is a final moderation outcome

REJECTED:The creative has completed moderation and was rejected. This is a final moderation outcome. If the user appeals the rejected creative, the creative may move back into the moderation flow with status=PENDING_APPROVAL
string
detailedStatusdetailedStatus provides a more granular view of where the creative is within the moderation workflow. This field is primarily applicable when status=PENDING_APPROVAL, because it explains what is happening while the creative is still under review. Supported values when status=PENDING_APPROVAL:

CREATIVE_REVIEW: The creative is currently being reviewed by the moderation team.

NEEDS_MORE_INFORMATION: The reviewer needs additional information from the advertiser/user before the review can be completed. If the reviewer provided specific instructions, they should be available in moderation comments.

ESCALATION_REVIEW:The creative, or the additional information provided for it, is under escalation review. This typically means the case requires additional review beyond the standard moderation path.

APPEALED: A rejected creative was appealed by the advertiser/user and has moved back into the pending approval / moderation flow for re-review.

NEW_INFO_PROVIDED: The advertiser/user has submitted additional information for the creative, usually after more information was requested or as part of an escalation workflow. The creative remains in moderation while the newly submitted information is reviewed.
string
decidedAttimestamp of last reviewer decisiondate-time
requestIdID of the moderation requeststring
prohibitedContentsCountnumber of total prohibited content commentsinteger
claimsContentsCountnumber of total claims commentsinteger
generalCommentsCountnumber of total general commentsinteger
reviewCommentscomments
The reviewComments objects are detailed

here

appealsappeals to rejected creatives
  • description: description text
  • attachments: listing of attachment filenames
  • submittedAt: timestamp of appeal
string

reviewComments Objects

ElementDescriptionType
unresolvedunresolved comments (not all fields all the time)
  • commentId: id of comment for PUT/api/v1/creatives/comments/resolve
  • type: type of comment (prohibitedContent, claim, general)
  • policyId: id of policy
  • policyCategory: category of policy, if any
  • policyName: name of policy
  • message: description of violation
  • adUnitName: ad unit name
  • asset: creative asset
  • commentedAt: timestamp of comment
  • evidence: content that was interpreted as a claim
  • commentId: UUID
string
resolvedunresolved comments (not all fields all the time)
  • commentId: id of comment for PUT/api/v1/creatives/comments/resolve
  • type: type of comment (prohibitedContent, claim, general)
  • policyId: id of policy
  • policyCategory: category of policy, if any
  • policyName: name of policy
  • message: description of violation
  • adUnitName: ad unit name
  • asset: creative asset
  • commentedAt: timestamp of comment
  • evidence: content that was interpreted as a claim
  • resolvedAt
  • commentId: UUID
string
👉

NOTE: If asset = 'Photo 1', it refers to the main image.


Sample Response

{ "creativeId": "11111111-aaaa-aaaa-aaaa-111111111111", "name": "name of creative", "status": "PENDING_APPROVAL", "detailedStatus": "APPEALED", "decidedAt": "2026-01-28T19:50:25+00:00", "prohibitedContentsCount": 2, "claimsContentsCount": 2, "generalCommentsCount": 2, "resolvedCommentsCount": 2, "unResolvedCommentsCount": 2, "reviewComments": { "unresolved": [ { "commentId": "33333333-aaaa-aaaa-aaaa-333333333333", "type": "prohibitedContent", "policyId": "TEXT_PROH_ALCOHOL-ALCOHOL USE", "policyCategory": "alcohol-alcohol use", "policyName": "alcohol-alcohol use", "message": "Alcohol in any onsite media.", "adUnitName": "marqueeDesktop", "asset": "headline", "commentedAt": "2026-01-28T19:44:06+00:00" }, { "commentId": "33333333-aaaa-aaaa-aaaa-333333333333", "type": "claim", "policyId": "TEXT_CLAIM_FREE FROM CLAIMS", "policyCategory": "", "policyName": "Free From Claims", "message": "The submitted creative copy refers to brands or products with Green Claims such as \"bpa \".", "adUnitName": "marqueeDesktop", "asset": "subhead", "evidence": "bpa ", "commentedAt": "2026-01-28T19:44:06+00:00" }, { "commentId": "33333333-aaaa-aaaa-aaaa-333333333333", "type": "general", "message": "A general comment", "adUnitName": "galleryDesktop", "asset": "headline", "commentedAt": "2026-01-28T19:44:06+00:00" }... ], "resolved": [ { "commentId": "33333333-aaaa-aaaa-aaaa-333333333333", "type": "general", "message": "A general comment", "adUnitName": "galleryDesktop", "asset": "headline", "commentedAt": "2026-01-28T19:44:06+00:00" }... ] }, "appeals": [ { "description": "i want to appeal this", "attachments": [ "a document.docx" ], "submittedAt": "2026-01-28T19:54:33+00:00" } ]
}