Skip to main content
GET
/
creative-reviews
/
{creativeId}
Get a creative review row
curl --request GET \
  --url https://api.interchange.io/api/v2/storefront/creative-reviews/{creativeId} \
  --header 'Authorization: Bearer <token>'
{
  "id": "42",
  "storefrontId": "1234",
  "creativeId": "cr_abc123",
  "mediaBuyId": "<string>",
  "buyerCustomerId": 0,
  "submittedPayload": "<unknown>",
  "reviewedBy": "<string>",
  "reviewedAt": "2023-11-07T05:31:56Z",
  "reviewerNotes": "<string>",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z"
}

Authorizations

Authorization
string
header
required

API key or access token

Path Parameters

creativeId
string
required

AdCP creative id as supplied by the buyer.

Minimum string length: 1
Example:

"cr_abc123"

Response

Get a creative review row

A single creative review queue row — one buyer-submitted creative awaiting (or having received) an operator decision.

id
string
required

Surrogate row id (BIGINT serialized as string).

Example:

"42"

storefrontId
string
required

Storefront the submission was made against.

Example:

"1234"

creativeId
string
required

AdCP creative id as submitted by the buyer.

Example:

"cr_abc123"

mediaBuyId
string | null
required

AdCP media_buy_id this creative was associated with at submit time, if any. Null when the buyer attaches creatives independently of a buy.

buyerCustomerId
integer
required

customer_id of the buyer that submitted the creative — the tenancy boundary on buyer-side reads.

Required range: -9007199254740991 <= x <= 9007199254740991
submittedPayload
any
required

Verbatim AdCP sync_creatives entry, with buyer webhook credentials (push_notification_config / pushNotificationConfig) removed before it reaches operator-facing responses. The storefront stores the payload so the forwarder can reproduce it 1:1 to the upstream salesagent when the creative is approved.

status
enum<string>
required

Lifecycle state of a buyer-submitted creative awaiting storefront review. pending until an operator decides; approved or rejected after a decision; revoked if an operator pulls a previously-approved creative.

Available options:
pending,
approved,
rejected,
revoked
reviewedBy
string | null
required

User id of the operator who decided this review (BIGINT serialized as string). Null while pending.

reviewedAt
string<date-time> | null
required

Decision timestamp (ISO 8601). Null while pending.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
reviewerNotes
string | null
required

Free-text reviewer note attached at decide time. Null when the operator did not supply one.

createdAt
string<date-time>
required

Submission timestamp (ISO 8601).

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
updatedAt
string<date-time>
required

Last-modified timestamp (ISO 8601). Equal to created_at while pending; bumped when the row transitions to a decided state.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$