Skip to main content
GET
/
proposals
List storefront proposals
curl --request GET \
  --url https://api.interchange.io/api/v2/storefront/proposals \
  --header 'Authorization: Bearer <token>'
[
  {
    "id": 123,
    "proposalCode": "PRP-XK4A29",
    "operatorId": "<string>",
    "label": "<string>",
    "notes": "<string>",
    "expiresAt": "2023-11-07T05:31:56Z",
    "proposalId": "<string>",
    "discoverySessionId": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "createdBy": "<string>",
    "firstViewedAt": "2023-11-07T05:31:56Z",
    "lastViewedAt": "2023-11-07T05:31:56Z",
    "redeemedAt": "2023-11-07T05:31:56Z",
    "redeemedInMediaBuyId": "<string>"
  }
]

Documentation Index

Fetch the complete documentation index at: https://docs.interchange.io/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key or access token

Query Parameters

status
enum<string>

Filter by status

Available options:
active,
redeemed,
expired,
revoked
operatorId
string

Filter by buyer operator

Required string length: 1 - 255
limit
integer
default:20

Page size (default 20, max 100)

Required range: x <= 100
offset
integer
default:0

Number of rows to skip

Required range: 0 <= x <= 9007199254740991

Response

List storefront proposals

id
integer
required

Proposal row id

Required range: x <= 9007199254740991
proposalCode
string
required

Short shareable handle. Sellers give this to buyers; buyers pass it to discover_products.

Example:

"PRP-XK4A29"

operatorId
string
required

Buyer brand binding

label
string
required
notes
string | null
required
status
enum<string>
required

Proposal lifecycle status. 'active': available to redeem. 'redeemed': buyer has applied it to a media buy. 'expired': past TTL. 'revoked': seller withdrew.

Available options:
active,
redeemed,
expired,
revoked
expiresAt
string<date-time>
required
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))$
proposalId
string
required

The protocol-level proposalId from the saved discovery snapshot

discoverySessionId
string
required

Discovery session id this proposal was captured from (for traceability)

createdAt
string<date-time>
required
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))$
createdBy
string
required
firstViewedAt
string<date-time> | null
required
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))$
lastViewedAt
string<date-time> | null
required
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))$
redeemedAt
string<date-time> | null
required
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))$
redeemedInMediaBuyId
string | null
required