Skip to main content
Version: v2

Publisher Offers V2 API errors

Most Offers V2 routes return a structured error body:

{
"code": "sdk_session_expired",
"message": "sdk_session_expired",
"fieldErrors": {},
"traceId": "trace_safe_identifier",
"retryable": false
}

A rate-limited response is 429, includes Retry-After, and may include retryAfterSeconds. Do not retry a non-retryable validation, authorization, or idempotency conflict unchanged. Keep the traceId for support; never attach a token or raw user record.

Status / code familyMeaningRecovery
401 authentication_required, sdk_session_expiredMissing, invalid, or expired tokenUse the correct credential type; create a fresh session when expired
403 sdk_identity_mismatch, sdk_version_too_old, sdk_consent_requiredSession does not satisfy placement rulesCorrect identity, SDK version, or consent state
403 placement_not_verified, placement_not_releasedReview or production release incompleteFinish review and coordinate release
404 not_foundFeature disabled or resource unavailableCheck account/environment capability and ID scope
404 no_fillNo eligible offer for this contextShow an empty state; do not fabricate inventory
409 idempotency_conflictA key was reused with different request contentKeep a key stable per logical write and use a new key for a new action
429 rate_limitedRequest budget exceededHonor Retry-After and back off

Dashboard console, SDK, Static API, and callback credentials have separate scopes. A token that works for one family is not a fallback for another.