> ## 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.

# Upload a feed file (HITL, multipart)

> Multipart form-data variant of POST /feed/preview. Send a CSV, JSON, XLS, or XLSX file as the `file` part alongside the metadata fields. Produces the same PREVIEW revision and signed baseline as the JSON preview endpoint.



## OpenAPI

````yaml /v2/storefront-api-v2.yaml post /inventory-sources/{sourceId}/feed/upload
openapi: 3.0.0
info:
  title: Scope3 Storefront API
  version: 2.0.0
  description: |-
    REST API for partners to manage storefronts, inventory sources, and billing.

    ## Authentication

    All endpoints require a Bearer token in the Authorization header:
    ```
    Authorization: Bearer your-api-key
    ```

    ## Base URL

    `https://api.interchange.io/api/v2/storefront`

    ## For AI Agents

    AI agents can use the MCP endpoint at `/mcp/v2/storefront` with three tools:
    - `initialize`: Start an MCP session
    - `api_call`: Make REST API calls
    - `ask_about_capability`: Learn about API features
servers:
  - url: https://api.interchange.io/api/v2/storefront
    description: Production server
security: []
tags:
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Asks
    description: >-
      What you are waiting on Scope3 for — support, product, and supply asks in
      one list
  - name: Storefront
    description: Manage storefront and inventory sources
  - name: Storefront Agents
    description: List and manage registered sales, signals, and outcomes agents
  - name: Storefront Activity
    description: Audit log of configuration and inventory changes on the storefront
  - name: Storefront Billing
    description: Payout bank details and billing configuration for storefronts
  - name: AI Usage
    description: Storefront AI token usage visibility by model
  - name: MCP
    description: Model Context Protocol endpoints
paths:
  /inventory-sources/{sourceId}/feed/upload:
    post:
      tags:
        - Storefront
      summary: Upload a feed file (HITL, multipart)
      description: >-
        Multipart form-data variant of POST /feed/preview. Send a CSV, JSON,
        XLS, or XLSX file as the `file` part alongside the metadata fields.
        Produces the same PREVIEW revision and signed baseline as the JSON
        preview endpoint.
      operationId: uploadInventoryFeed
      parameters:
        - in: path
          name: sourceId
          schema:
            description: Inventory source ID
            type: string
            minLength: 1
          required: true
          description: Inventory source ID
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FeedUploadBody'
      responses:
        '200':
          description: Upload a feed file (HITL, multipart)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedPreviewResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: >-
            Ambiguous module match — multiple active feed modules found for this
            source and contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    FeedUploadBody:
      description: >-
        Multipart form-data body for POST
        /inventory-sources/:sourceId/feed/upload. Send the feed file as the
        `file` part and the remaining fields as form text fields. For
        deterministic replay, provide idempotencyKey, revisionId, and observedAt
        together; otherwise omit all three.
      type: object
      properties:
        file:
          format: binary
          description: >-
            CSV, JSON, XLS, or XLSX file up to 10 MB. Provide as the `file`
            multipart part.
          type: string
        contractId:
          $ref: '#/components/schemas/FeedContractId'
        idempotencyKey:
          description: >-
            Deterministic replay idempotency key (UUID). Provide only together
            with revisionId and observedAt; omit all three fields for
            server-generated, non-retryable convenience values.
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        revisionId:
          description: >-
            Deterministic replay revision id (UUID). Provide only together with
            idempotencyKey and observedAt; omit all three fields for
            server-generated, non-retryable convenience values.
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        observedAt:
          description: >-
            ISO-8601 observation timestamp for deterministic replay. Provide
            only together with idempotencyKey and revisionId; omit all three
            fields to default to the current time.
          type: string
          format: date-time
          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))$
      required:
        - file
        - contractId
    FeedPreviewResponse:
      description: >-
        Response from POST /feed/preview and POST /feed/upload. Pass
        previewBaseline and revision to POST /feed/commit.
      type: object
      properties:
        feedId:
          description: >-
            Canonical inventory feed id shared by all transports (HITL,
            API_PUSH) for this source and contract.
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        sourceId:
          description: External source_id string for this feed.
          type: string
        revision:
          $ref: '#/components/schemas/FeedRevisionEnvelope'
        previewBaseline:
          $ref: '#/components/schemas/FeedPreviewBaseline'
      required:
        - feedId
        - sourceId
        - revision
        - previewBaseline
      additionalProperties: false
    ErrorResponse:
      description: Standard error response
      type: object
      properties:
        data:
          type: string
          nullable: true
          enum:
            - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
      additionalProperties: false
    FeedContractId:
      description: >-
        Feed contract identifier. `static-avails-feed:v1` for static avails
        CSV/JSON; `wholesale-avails-pricing:v1` for wholesale pricing grids.
      type: string
      enum:
        - static-avails-feed:v1
        - wholesale-avails-pricing:v1
    FeedRevisionEnvelope:
      x-scope3-semantic-validation:
        vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
        canonicalValidator: InventoryFeedRevisionSchema
        constraints:
          - FACT_IDS_UNIQUE_WITHIN_SOURCE_REVISION
          - FACT_SOURCES_MATCH_REVISION_SOURCE
          - FULL_REPLACEMENT_IS_NOT_PARTIALLY_VALID
          - COMMITTED_FULL_REPLACEMENT_IS_NOT_EMPTY
          - INVALID_REVISION_CANNOT_COMMIT
        required: true
      description: >-
        Inventory feed revision envelope returned by preview, upload, commit,
        and push endpoints. Matches the InventoryFeedRevisionSchema contract.
      type: object
      properties:
        schemaVersion:
          type: string
          enum:
            - 1.0.0
        revisionId:
          type: string
          minLength: 1
        sourceId:
          type: string
          minLength: 1
        profileId:
          type: string
          minLength: 1
        profileVersion:
          type: string
          minLength: 1
        deliverySemantics:
          type: string
          enum:
            - FULL_REPLACEMENT
            - PATCH_UPSERT
        snapshot:
          type: string
          minLength: 1
        cursor:
          type: string
          minLength: 1
        observedThrough:
          type: string
          format: date-time
          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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        coveredPeriod:
          x-scope3-semantic-validation:
            vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
            canonicalValidator: InventoryPeriodSchema
            constraints:
              - START_BEFORE_END
            required: true
          type: object
          properties:
            start:
              type: string
              format: date-time
              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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            end:
              type: string
              format: date-time
              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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
          required:
            - start
            - end
          additionalProperties: false
        idempotencyKey:
          type: string
          minLength: 1
        contentDigest:
          type: string
          pattern: ^sha256:[a-f0-9]{64}$
        catalogRevision:
          type: string
          minLength: 1
        provenance:
          x-scope3-semantic-validation:
            vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
            canonicalValidator: ProvenanceSchema
            constraints:
              - FILE_REQUIRES_FILE_NAME
              - ADAPTER_REQUIRES_ADAPTER_ID
            required: true
          type: object
          properties:
            actorType:
              type: string
              enum:
                - API
                - FILE
                - HUMAN
                - ADAPTER
            actorId:
              type: string
              minLength: 1
            adapterId:
              type: string
              minLength: 1
            fileName:
              type: string
              minLength: 1
            requestId:
              type: string
              minLength: 1
            submittedAt:
              type: string
              format: date-time
              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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            contentDigest:
              type: string
              pattern: ^sha256:[a-f0-9]{64}$
          required:
            - actorType
            - submittedAt
            - contentDigest
          additionalProperties: false
        correction:
          oneOf:
            - type: object
              properties:
                correctionId:
                  type: string
                  minLength: 1
                targetType:
                  type: string
                  enum:
                    - REVISION
                targetRevisionId:
                  type: string
                  minLength: 1
                mode:
                  type: string
                  enum:
                    - REPLACEMENT
                reason:
                  type: string
                  minLength: 1
              required:
                - correctionId
                - targetType
                - targetRevisionId
                - mode
                - reason
              additionalProperties: false
            - type: object
              properties:
                correctionId:
                  type: string
                  minLength: 1
                targetType:
                  type: string
                  enum:
                    - FACT
                targetFactId:
                  type: string
                  minLength: 1
                mode:
                  type: string
                  enum:
                    - REPLACEMENT
                    - PATCH
                reason:
                  type: string
                  minLength: 1
              required:
                - correctionId
                - targetType
                - targetFactId
                - mode
                - reason
              additionalProperties: false
          type: object
        facts:
          type: array
          items:
            x-scope3-semantic-validation:
              vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
              canonicalValidator: AvailabilityFactSchema
              constraints:
                - SCOPE_SOURCE_MATCHES_FACT_SOURCE
                - BOOKED_QUANTITY_UNIT_MATCHES_GROSS_UNIT
                - EMBEDDED_BOOKED_QUANTITY_DOES_NOT_EXCEED_GROSS_CAPACITY
                - GROSS_REQUIRES_BOOKED_QUANTITY_OR_TEMPORAL_FENCE
                - UNPROVEN_TEMPORAL_JOIN_IS_NOT_RESERVABLE
                - TEMPORAL_FENCE_MATCHES_ENCLOSING_FACT
                - PRODUCT_FORMAT_REQUIRES_PRODUCT_SCOPE
              required: true
            type: object
            properties:
              factId:
                type: string
                minLength: 1
              sourceId:
                type: string
                minLength: 1
              scope:
                x-scope3-semantic-validation:
                  vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                  canonicalValidator: InventoryScopeRefSchema
                  constraints:
                    - CANONICAL_COLLECTION_MAPPING_REQUIRED
                    - EXACTLY_ONE_CANONICAL_COLLECTION_ID
                  required: true
                anyOf:
                  - type: object
                    properties:
                      scopeType:
                        type: string
                        enum:
                          - component
                      sourceId:
                        type: string
                        minLength: 1
                      kind:
                        type: string
                        enum:
                          - placement
                          - ad_unit
                          - property
                      externalId:
                        type: string
                        minLength: 1
                    required:
                      - scopeType
                      - sourceId
                      - kind
                      - externalId
                    additionalProperties: false
                  - type: object
                    properties:
                      scopeType:
                        type: string
                        enum:
                          - component
                      sourceId:
                        type: string
                        minLength: 1
                      kind:
                        description: >-
                          Canonical AdCP content Collection only, such as a
                          series, publication, event series, or rotation.
                          Generic pools and seller groupings are not
                          Collections.
                        type: string
                        enum:
                          - collection
                      externalId:
                        type: string
                        minLength: 1
                      collectionSelector:
                        description: >-
                          Required mapping to exactly one Collection declared by
                          publisher_domain in adagents.json.
                        type: object
                        properties:
                          publisher_domain:
                            type: string
                            pattern: >-
                              ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                          collection_ids:
                            type: array
                            items:
                              type: string
                        required:
                          - publisher_domain
                          - collection_ids
                        additionalProperties: {}
                    required:
                      - scopeType
                      - sourceId
                      - kind
                      - externalId
                      - collectionSelector
                    additionalProperties: false
                  - type: object
                    properties:
                      scopeType:
                        type: string
                        enum:
                          - wholesale_product
                      sourceId:
                        type: string
                        minLength: 1
                      productId:
                        type: string
                        minLength: 1
                    required:
                      - scopeType
                      - sourceId
                      - productId
                    additionalProperties: false
              dimensions:
                default: {}
                type: object
                additionalProperties: {}
              period:
                x-scope3-semantic-validation:
                  vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                  canonicalValidator: InventoryPeriodSchema
                  constraints:
                    - START_BEFORE_END
                  required: true
                type: object
                properties:
                  start:
                    type: string
                    format: date-time
                    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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  end:
                    type: string
                    format: date-time
                    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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - start
                  - end
                additionalProperties: false
              observedAt:
                type: string
                format: date-time
                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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
              poolId:
                type: string
                minLength: 1
              availability:
                type: object
                properties:
                  basis:
                    type: string
                    enum:
                      - NET_SELLABLE
                      - GROSS
                  quantity:
                    type: object
                    properties:
                      unit:
                        description: >-
                          Profile-permitted quantity unit. The target profile
                          allowlist remains pending.
                        type: string
                        minLength: 1
                      amount:
                        type: number
                        minimum: 0
                    required:
                      - unit
                      - amount
                    additionalProperties: false
                  upstreamBooked:
                    type: object
                    properties:
                      unit:
                        description: >-
                          Profile-permitted quantity unit. The target profile
                          allowlist remains pending.
                        type: string
                        minLength: 1
                      amount:
                        type: number
                        minimum: 0
                    required:
                      - unit
                      - amount
                    additionalProperties: false
                  temporalJoinFence:
                    x-scope3-semantic-validation:
                      vocabulary: >-
                        urn:scope3:inventory-feed-contracts:semantic-validation:v1
                      canonicalValidator: TemporalJoinFenceSchema
                      constraints:
                        - OBSERVED_SKEW_DERIVED_FROM_TIMESTAMPS
                        - MONOTONIC_EVIDENCE_REMAINS_UNPROVEN
                        - STATUS_MATCHES_SELECTED_PROOF
                        - UNPROVEN_REQUIRES_DIAGNOSTIC
                      required: true
                    type: object
                    properties:
                      grossFactId:
                        type: string
                        minLength: 1
                      bookingFactId:
                        type: string
                        minLength: 1
                      sourceId:
                        type: string
                        minLength: 1
                      poolId:
                        type: string
                        minLength: 1
                      unit:
                        type: string
                        minLength: 1
                      period:
                        x-scope3-semantic-validation:
                          vocabulary: >-
                            urn:scope3:inventory-feed-contracts:semantic-validation:v1
                          canonicalValidator: InventoryPeriodSchema
                          constraints:
                            - START_BEFORE_END
                          required: true
                        type: object
                        properties:
                          start:
                            type: string
                            format: date-time
                            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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          end:
                            type: string
                            format: date-time
                            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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        required:
                          - start
                          - end
                        additionalProperties: false
                      strategy:
                        type: string
                        enum:
                          - SAME_SNAPSHOT
                          - MONOTONIC_WITHIN_SKEW
                      grossSnapshot:
                        type: string
                        minLength: 1
                      bookingSnapshot:
                        type: string
                        minLength: 1
                      grossObservedThrough:
                        type: string
                        format: date-time
                        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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      bookingObservedThrough:
                        type: string
                        format: date-time
                        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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      observedSkewSeconds:
                        type: number
                        minimum: 0
                      status:
                        type: string
                        enum:
                          - PROVEN
                          - UNPROVEN
                      diagnosticCode:
                        type: string
                        minLength: 1
                    required:
                      - grossFactId
                      - bookingFactId
                      - sourceId
                      - poolId
                      - unit
                      - period
                      - strategy
                      - grossSnapshot
                      - bookingSnapshot
                      - grossObservedThrough
                      - bookingObservedThrough
                      - observedSkewSeconds
                      - status
                    additionalProperties: false
                  reservable:
                    type: boolean
                required:
                  - basis
                  - quantity
                  - reservable
                additionalProperties: false
              pricingOptions:
                default: []
                type: array
                items:
                  anyOf:
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpm
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - vcpm
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpc
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpcv
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpv
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        max_bid:
                          type: boolean
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            view_threshold:
                              anyOf:
                                - type: number
                                - type: object
                                  properties:
                                    duration_seconds:
                                      type: number
                                      minimum: 1
                                  required:
                                    - duration_seconds
                                  additionalProperties: {}
                          required:
                            - view_threshold
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                        - parameters
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpp
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            demographic_system:
                              anyOf:
                                - type: string
                                  enum:
                                    - nielsen
                                - type: string
                                  enum:
                                    - barb
                                - type: string
                                  enum:
                                    - agf
                                - type: string
                                  enum:
                                    - oztam
                                - type: string
                                  enum:
                                    - mediametrie
                                - type: string
                                  enum:
                                    - custom
                            demographic:
                              type: string
                            min_points:
                              type: number
                              minimum: 0
                          required:
                            - demographic
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                        - parameters
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - cpa
                        event_type:
                          anyOf:
                            - type: string
                              enum:
                                - page_view
                            - type: string
                              enum:
                                - view_content
                            - type: string
                              enum:
                                - select_content
                            - type: string
                              enum:
                                - select_item
                            - type: string
                              enum:
                                - search
                            - type: string
                              enum:
                                - share
                            - type: string
                              enum:
                                - add_to_cart
                            - type: string
                              enum:
                                - remove_from_cart
                            - type: string
                              enum:
                                - viewed_cart
                            - type: string
                              enum:
                                - add_to_wishlist
                            - type: string
                              enum:
                                - initiate_checkout
                            - type: string
                              enum:
                                - add_payment_info
                            - type: string
                              enum:
                                - purchase
                            - type: string
                              enum:
                                - refund
                            - type: string
                              enum:
                                - lead
                            - type: string
                              enum:
                                - qualify_lead
                            - type: string
                              enum:
                                - close_convert_lead
                            - type: string
                              enum:
                                - disqualify_lead
                            - type: string
                              enum:
                                - complete_registration
                            - type: string
                              enum:
                                - subscribe
                            - type: string
                              enum:
                                - follow
                            - type: string
                              enum:
                                - content_view
                            - type: string
                              enum:
                                - watch_milestone
                            - type: string
                              enum:
                                - start_trial
                            - type: string
                              enum:
                                - app_install
                            - type: string
                              enum:
                                - app_launch
                            - type: string
                              enum:
                                - contact
                            - type: string
                              enum:
                                - schedule
                            - type: string
                              enum:
                                - donate
                            - type: string
                              enum:
                                - submit_application
                            - type: string
                              enum:
                                - custom
                        custom_event_name:
                          type: string
                        event_source_id:
                          type: string
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - event_type
                        - currency
                        - fixed_price
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - flat_rate
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            type:
                              type: string
                              enum:
                                - dooh
                            sov_percentage:
                              type: number
                              minimum: 0
                              maximum: 100
                            loop_duration_seconds:
                              type: number
                              minimum: 1
                            min_plays_per_hour:
                              type: number
                              minimum: 1
                            venue_package:
                              type: string
                            duration_hours:
                              type: number
                              minimum: 0
                            daypart:
                              type: string
                            estimated_impressions:
                              type: number
                              minimum: 0
                          required:
                            - type
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                      additionalProperties: {}
                    - type: object
                      properties:
                        pricing_option_id:
                          type: string
                        pricing_model:
                          type: string
                          enum:
                            - time
                        currency:
                          type: string
                          pattern: ^[A-Z]{3}$
                        fixed_price:
                          type: number
                          minimum: 0
                        floor_price:
                          type: number
                          minimum: 0
                        price_guidance:
                          type: object
                          properties:
                            p25:
                              type: number
                              minimum: 0
                            p50:
                              type: number
                              minimum: 0
                            p75:
                              type: number
                              minimum: 0
                            p90:
                              type: number
                              minimum: 0
                          additionalProperties: {}
                        parameters:
                          type: object
                          properties:
                            time_unit:
                              anyOf:
                                - type: string
                                  enum:
                                    - hour
                                - type: string
                                  enum:
                                    - day
                                - type: string
                                  enum:
                                    - week
                                - type: string
                                  enum:
                                    - month
                            min_duration:
                              type: number
                              minimum: 1
                            max_duration:
                              type: number
                              minimum: 1
                          required:
                            - time_unit
                          additionalProperties: {}
                        min_spend_per_package:
                          type: number
                          minimum: 0
                        price_breakdown:
                          type: object
                          properties:
                            list_price:
                              type: number
                            adjustments:
                              type: array
                              items:
                                type: object
                                additionalProperties: {}
                          required:
                            - list_price
                            - adjustments
                          additionalProperties: {}
                        eligible_adjustments:
                          type: array
                          items:
                            anyOf:
                              - type: string
                                enum:
                                  - fee
                              - type: string
                                enum:
                                  - discount
                              - type: string
                                enum:
                                  - commission
                              - type: string
                                enum:
                                  - settlement
                      required:
                        - pricing_option_id
                        - pricing_model
                        - currency
                        - parameters
                      additionalProperties: {}
              formatOptions:
                default: []
                type: array
                items:
                  anyOf:
                    - type: object
                      properties:
                        scope:
                          type: string
                          enum:
                            - publisher
                        publisher_domain:
                          type: string
                          pattern: >-
                            ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                        format_option_id:
                          type: string
                      required:
                        - scope
                        - publisher_domain
                        - format_option_id
                      additionalProperties: {}
                    - type: object
                      properties:
                        scope:
                          type: string
                          enum:
                            - product
                        format_option_id:
                          type: string
                        publisher_domain:
                          not: {}
                      required:
                        - scope
                        - format_option_id
                      additionalProperties: {}
              sourceMetadata:
                default: {}
                type: object
                additionalProperties: {}
              provenance:
                x-scope3-semantic-validation:
                  vocabulary: urn:scope3:inventory-feed-contracts:semantic-validation:v1
                  canonicalValidator: ProvenanceSchema
                  constraints:
                    - FILE_REQUIRES_FILE_NAME
                    - ADAPTER_REQUIRES_ADAPTER_ID
                  required: true
                type: object
                properties:
                  actorType:
                    type: string
                    enum:
                      - API
                      - FILE
                      - HUMAN
                      - ADAPTER
                  actorId:
                    type: string
                    minLength: 1
                  adapterId:
                    type: string
                    minLength: 1
                  fileName:
                    type: string
                    minLength: 1
                  requestId:
                    type: string
                    minLength: 1
                  submittedAt:
                    type: string
                    format: date-time
                    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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                  contentDigest:
                    type: string
                    pattern: ^sha256:[a-f0-9]{64}$
                required:
                  - actorType
                  - submittedAt
                  - contentDigest
                additionalProperties: false
            required:
              - factId
              - sourceId
              - scope
              - dimensions
              - period
              - observedAt
              - poolId
              - availability
              - pricingOptions
              - formatOptions
              - sourceMetadata
              - provenance
            additionalProperties: false
        diagnostics:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                minLength: 1
              severity:
                type: string
                enum:
                  - ERROR
                  - WARNING
                  - INFO
              scope:
                type: string
                enum:
                  - REVISION
                  - ROW
                  - FACT
              message:
                type: string
                minLength: 1
              rowIndex:
                type: integer
                minimum: 0
                maximum: 9007199254740991
              factId:
                type: string
                minLength: 1
              field:
                type: string
                minLength: 1
              details:
                type: object
                additionalProperties: {}
            required:
              - code
              - severity
              - scope
              - message
            additionalProperties: false
        validationStatus:
          type: string
          enum:
            - VALID
            - INVALID
            - PARTIALLY_VALID
        commitStatus:
          type: string
          enum:
            - PREVIEW
            - COMMITTED
            - REJECTED
      required:
        - schemaVersion
        - revisionId
        - sourceId
        - profileId
        - profileVersion
        - deliverySemantics
        - idempotencyKey
        - contentDigest
        - provenance
        - facts
        - diagnostics
        - validationStatus
        - commitStatus
      additionalProperties: false
    FeedPreviewBaseline:
      description: Signed preview baseline. Pass it back unchanged to POST /feed/commit.
      type: object
      properties:
        previewToken:
          type: string
          minLength: 1
        revisionId:
          type: string
          minLength: 1
        customerId:
          type: integer
          maximum: 9007199254740991
          minimum: 1
        sourceId:
          type: string
          minLength: 1
        profileId:
          type: string
          minLength: 1
        profileVersion:
          type: string
          minLength: 1
        payloadDigest:
          type: string
          pattern: ^sha256:[a-f0-9]{64}$
        activeRevisionId:
          nullable: true
          type: string
          minLength: 1
        activeCursor:
          nullable: true
          type: string
          minLength: 1
        activeSnapshot:
          nullable: true
          type: string
          minLength: 1
        createdAt:
          type: string
          format: date-time
          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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        expiresAt:
          type: string
          format: date-time
          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|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
        staleErrorCode:
          type: string
          enum:
            - STALE_PREVIEW_BASELINE
      required:
        - previewToken
        - revisionId
        - customerId
        - sourceId
        - profileId
        - profileVersion
        - payloadDigest
        - activeRevisionId
        - activeCursor
        - activeSnapshot
        - createdAt
        - expiresAt
        - staleErrorCode
      additionalProperties: false
    ApiError:
      description: Structured error object
      type: object
      properties:
        code:
          description: Machine-readable error code
          type: string
        message:
          description: Human-readable error message
          type: string
        field:
          description: Field path associated with the error
          type: string
        details:
          description: Additional error context
          type: object
          additionalProperties: {}
      required:
        - code
        - message
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````