Skip to main content
GET
/
proposals
/
{id}
Get storefront proposal
curl --request GET \
  --url https://api.interchange.io/api/v2/storefront/proposals/{id} \
  --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>",
  "snapshot": {
    "products": [
      {
        "productId": "prod_123",
        "name": "Premium CTV Inventory - Sports",
        "channel": "ctv",
        "formatTypes": [
          "video",
          "15s",
          "30s"
        ],
        "cpm": 12.5,
        "salesAgentId": "<string>",
        "salesAgentName": "<string>",
        "storefrontId": "<string>",
        "storefrontName": "<string>",
        "supportedCampaignTypes": [],
        "description": "<string>",
        "deliveryType": "guaranteed",
        "briefRelevance": "<string>",
        "productCard": {
          "formatId": {
            "agentUrl": "<string>",
            "id": "<string>"
          },
          "manifest": {}
        },
        "productCardDetailed": {
          "formatId": {
            "agentUrl": "<string>",
            "id": "<string>"
          },
          "manifest": {}
        },
        "pricingOptions": [
          {
            "pricingOptionId": "<string>",
            "pricingModel": "<string>",
            "isFixed": true,
            "rate": 123,
            "floorPrice": 123,
            "fixedPrice": 123,
            "currency": "<string>",
            "priceGuidance": {
              "floor": 123,
              "p25": 123,
              "p50": 123,
              "p75": 123,
              "p90": 123
            }
          }
        ],
        "estimatedExposures": 0,
        "forecast": {},
        "bookability": "<string>",
        "publisherProperties": [
          {
            "publisherDomain": "<string>",
            "propertyType": "<string>",
            "name": "<string>",
            "selectionType": "<string>",
            "identifiers": [
              {}
            ]
          }
        ],
        "isSandbox": true,
        "formatOptions": [
          {}
        ]
      }
    ],
    "proposals": [
      {
        "proposalId": "<string>",
        "name": "<string>",
        "allocations": [
          {
            "productId": "<string>",
            "allocationPercentage": 50,
            "pricingOptionId": "<string>",
            "rationale": "<string>",
            "sequence": 0,
            "tags": [
              "<string>"
            ]
          }
        ],
        "description": "<string>",
        "briefAlignment": "<string>",
        "salesAgentId": "<string>",
        "salesAgentName": "<string>",
        "storefrontId": "<string>",
        "storefrontName": "<string>",
        "supportedCampaignTypes": [],
        "expiresAt": "<string>",
        "totalBudgetGuidance": {
          "min": 123,
          "recommended": 123,
          "max": 123,
          "currency": "<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>"
}

Authorizations

Authorization
string
header
required

API key or access token

Path Parameters

id
integer
required

Proposal row id

Required range: x <= 9007199254740991

Response

Get storefront proposal

A persisted storefront proposal

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)

snapshot
object
required

The frozen products + proposals returned to the buyer on redemption

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