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

# Refresh catalog

> Fetch the latest URL-backed catalog feed, create a new version when content changes, and optionally execute the active activation plan.



## OpenAPI

````yaml /v2/buyer-api-v2.yaml post /advertisers/{advertiserId}/catalogs/{catalogId}/refresh
openapi: 3.0.0
info:
  title: Scope3 Buyer API
  version: 2.0.0
  description: |-
    REST API for advertisers to manage advertisers, campaigns, and reporting.

    ## Authentication

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

    ## Base URL

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

    ## For AI Agents

    AI agents can use the MCP endpoint at `/mcp/v2/buyer` 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/buyer
    description: Production server
security: []
tags:
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Advertisers
    description: Manage advertisers
  - name: Product Discovery
    description: Discover and select products
  - name: Campaigns
    description: Manage advertising campaigns
  - name: Creatives
    description: Build, manage, and sync campaign creatives via AdCP Creative Protocol
  - name: Reporting
    description: Access performance metrics
  - name: Event Sources
    description: >-
      Manage event source configurations and log conversion/marketing events for
      attribution
  - name: Property Lists
    description: Validate property lists against AAO registry
  - name: Sales Agents
    description: View and connect sales agents
  - name: Measurement
    description: Measurement sources, records, context, and freshness
  - name: Syndication
    description: Syndicate resources to ADCP agents
  - name: Tasks
    description: Track async operation status
  - name: Buyer Billing
    description: >-
      Consolidated invoicing for buyers — invoices and pending invoice items
      issued by Scope3 across the buyer customer.
  - name: MCP
    description: Model Context Protocol endpoints for AI agents
paths:
  /advertisers/{advertiserId}/catalogs/{catalogId}/refresh:
    post:
      tags:
        - Advertisers
      summary: Refresh catalog
      description: >-
        Fetch the latest URL-backed catalog feed, create a new version when
        content changes, and optionally execute the active activation plan.
      operationId: refreshCatalog
      parameters:
        - in: path
          name: advertiserId
          schema:
            description: Advertiser ID
            type: string
            minLength: 1
          required: true
          description: Advertiser ID
        - in: path
          name: catalogId
          schema:
            description: >-
              Buyer-assigned catalog_id or platform catalog id returned by list
              catalogs
            type: string
            minLength: 1
          required: true
          description: >-
            Buyer-assigned catalog_id or platform catalog id returned by list
            catalogs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                executeActivation:
                  description: >-
                    When true, a successful refresh with an active transform
                    immediately saves/executes the latest activation plan,
                    creating creative-generation and syndication jobs.
                  default: false
                  type: boolean
                adcpAgentIds:
                  description: >-
                    Optional seller agents to evaluate/execute for activation
                    after refresh. If omitted, enabled catalog syndication
                    targets are used.
                  default: []
                  type: array
                  items:
                    type: string
                    minLength: 1
      responses:
        '200':
          description: Refresh catalog
          content:
            application/json:
              schema:
                type: object
                properties:
                  catalog:
                    type: object
                    properties:
                      catalog_id:
                        type: string
                      action:
                        type: string
                        enum:
                          - created
                          - updated
                          - unchanged
                          - failed
                          - deleted
                      platform_id:
                        type: string
                      catalog_version_id:
                        type: string
                      catalog_version_number:
                        type: integer
                        maximum: 9007199254740991
                        minimum: 1
                      content_hash:
                        type: string
                      item_count:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      items_approved:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      items_pending:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      items_rejected:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      item_changes:
                        type: object
                        properties:
                          added:
                            default: 0
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          updated:
                            default: 0
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          unchanged:
                            default: 0
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          removed:
                            default: 0
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                        required:
                          - added
                          - updated
                          - unchanged
                          - removed
                        additionalProperties: false
                      health_status:
                        type: string
                        enum:
                          - not_synced
                          - healthy
                          - stale
                          - warning
                          - failed
                      activation_plan_id:
                        type: string
                      item_issues:
                        type: array
                        items:
                          type: object
                          properties:
                            item_id:
                              type: string
                            field:
                              type: string
                            issue:
                              type: string
                            severity:
                              type: string
                              enum:
                                - error
                                - warning
                          required:
                            - issue
                          additionalProperties: false
                      last_synced_at:
                        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))$
                      next_fetch_at:
                        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))$
                      error:
                        type: string
                    required:
                      - catalog_id
                      - action
                    additionalProperties: false
                  refreshRun:
                    type: object
                    properties:
                      refreshRunId:
                        type: string
                      status:
                        type: string
                        enum:
                          - syncing
                          - synced
                          - unchanged
                          - failed
                      httpStatus:
                        nullable: true
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      sourceContentHash:
                        nullable: true
                        type: string
                      itemCount:
                        nullable: true
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      activationSkippedReason:
                        nullable: true
                        type: string
                      error:
                        nullable: true
                        type: string
                      startedAt:
                        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))$
                      completedAt:
                        nullable: true
                        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:
                      - refreshRunId
                      - status
                      - httpStatus
                      - sourceContentHash
                      - itemCount
                      - activationSkippedReason
                      - error
                      - startedAt
                      - completedAt
                    additionalProperties: false
                  activation:
                    nullable: true
                    type: object
                    properties:
                      plan:
                        type: object
                        properties:
                          planId:
                            nullable: true
                            type: string
                          catalogId:
                            type: string
                          platformCatalogId:
                            type: string
                          catalogVersionId:
                            nullable: true
                            type: string
                          transformId:
                            nullable: true
                            type: string
                          planHash:
                            type: string
                          itemCount:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          campaignGroups:
                            type: array
                            items:
                              type: object
                              properties:
                                key:
                                  type: string
                                name:
                                  type: string
                                fieldValues:
                                  type: object
                                  additionalProperties: {}
                                itemIds:
                                  type: array
                                  items:
                                    type: string
                                itemCount:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                                budget:
                                  nullable: true
                                  type: object
                                  properties:
                                    amount:
                                      type: number
                                      minimum: 0
                                    currency:
                                      type: string
                                      minLength: 3
                                      maxLength: 3
                                  required:
                                    - amount
                                    - currency
                                  additionalProperties: false
                              required:
                                - key
                                - name
                                - fieldValues
                                - itemIds
                                - itemCount
                                - budget
                              additionalProperties: false
                          creativeAssets:
                            type: array
                            items:
                              type: object
                              properties:
                                key:
                                  type: string
                                prompt:
                                  type: string
                                fieldValues:
                                  type: object
                                  additionalProperties: {}
                                itemIds:
                                  type: array
                                  items:
                                    type: string
                                itemCount:
                                  type: integer
                                  minimum: 0
                                  maximum: 9007199254740991
                              required:
                                - key
                                - prompt
                                - fieldValues
                                - itemIds
                                - itemCount
                              additionalProperties: false
                          syndicationTargets:
                            type: array
                            items:
                              type: object
                              properties:
                                adcpAgentId:
                                  type: string
                                shareStatus:
                                  type: string
                                  enum:
                                    - ready
                                    - unsupported
                                deliveryMode:
                                  type: string
                                  enum:
                                    - native_catalog
                                    - native_creative_catalog
                                    - assembled_creative
                                    - third_party_creative_agent
                                    - unsupported
                                usesTransformedCatalog:
                                  type: boolean
                                requiresCreativeAssembly:
                                  type: boolean
                                creativeAgentId:
                                  nullable: true
                                  type: string
                                reason:
                                  type: string
                              required:
                                - adcpAgentId
                                - shareStatus
                                - deliveryMode
                                - usesTransformedCatalog
                                - requiresCreativeAssembly
                                - creativeAgentId
                                - reason
                              additionalProperties: false
                          createdAt:
                            nullable: true
                            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:
                          - planId
                          - catalogId
                          - platformCatalogId
                          - catalogVersionId
                          - transformId
                          - planHash
                          - itemCount
                          - campaignGroups
                          - creativeAssets
                          - syndicationTargets
                          - createdAt
                        additionalProperties: false
                      execution:
                        type: object
                        properties:
                          executionId:
                            type: string
                          planId:
                            nullable: true
                            type: string
                          catalogId:
                            type: string
                          platformCatalogId:
                            type: string
                          catalogVersionId:
                            nullable: true
                            type: string
                          transformId:
                            nullable: true
                            type: string
                          status:
                            type: string
                            enum:
                              - pending
                              - completed
                              - failed
                          trigger:
                            type: string
                            enum:
                              - manual
                              - feed_refresh
                              - scheduled
                          steps:
                            type: array
                            items:
                              type: object
                              properties:
                                stepId:
                                  type: string
                                stepType:
                                  type: string
                                  enum:
                                    - campaign_activation_request
                                    - sync_catalogs
                                    - sync_creatives
                                    - creative_generation_request
                                    - third_party_creative_agent
                                    - unsupported
                                status:
                                  type: string
                                  enum:
                                    - pending
                                    - completed
                                    - failed
                                    - skipped
                                targetAdcpAgentId:
                                  nullable: true
                                  type: string
                                creativeAssetKey:
                                  nullable: true
                                  type: string
                                campaignGroupKey:
                                  nullable: true
                                  type: string
                                error:
                                  nullable: true
                                  type: string
                              required:
                                - stepId
                                - stepType
                                - status
                                - targetAdcpAgentId
                                - creativeAssetKey
                                - campaignGroupKey
                                - error
                              additionalProperties: false
                          creativeGenerationRequests:
                            type: array
                            items:
                              type: object
                              properties:
                                requestId:
                                  type: string
                                creativeAssetKey:
                                  type: string
                                prompt:
                                  type: string
                                targetAdcpAgentId:
                                  nullable: true
                                  type: string
                                creativeAgentId:
                                  nullable: true
                                  type: string
                                status:
                                  type: string
                                  enum:
                                    - pending
                                    - processing
                                    - completed
                                    - failed
                                    - skipped
                              required:
                                - requestId
                                - creativeAssetKey
                                - prompt
                                - targetAdcpAgentId
                                - creativeAgentId
                                - status
                              additionalProperties: false
                          startedAt:
                            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))$
                          completedAt:
                            nullable: true
                            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:
                          - executionId
                          - planId
                          - catalogId
                          - platformCatalogId
                          - catalogVersionId
                          - transformId
                          - status
                          - trigger
                          - steps
                          - creativeGenerationRequests
                          - startedAt
                          - completedAt
                        additionalProperties: false
                    required:
                      - plan
                      - execution
                    additionalProperties: false
                required:
                  - catalog
                  - refreshRun
                  - activation
                additionalProperties: false
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          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:
    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
    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

````