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

# Update account reporting bucket

> Set or clear the offline `reporting_bucket` configuration on a linked partner account, then notify the seller via `sync_accounts`. Pass `reporting_bucket: null` to clear the bucket.



## OpenAPI

````yaml /v2/buyer-api-v2.yaml put /advertisers/{advertiserId}/accounts/{linkId}/reporting-bucket
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: Signup
    description: Request reviewed access to Interchange
  - 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: 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}/accounts/{linkId}/reporting-bucket:
    put:
      tags:
        - Advertisers
      summary: Update account reporting bucket
      description: >-
        Set or clear the offline `reporting_bucket` configuration on a linked
        partner account, then notify the seller via `sync_accounts`. Pass
        `reporting_bucket: null` to clear the bucket.
      operationId: updateAccountReportingBucket
      parameters:
        - in: path
          name: advertiserId
          schema:
            description: Unique identifier for the advertiser
            example: '12345'
            type: string
            minLength: 1
          required: true
          description: Unique identifier for the advertiser
        - in: path
          name: linkId
          schema:
            description: >-
              Identifier of the advertiser-account link row (numeric primary
              key)
            example: '42'
            type: string
            pattern: ^\d{1,15}$
          required: true
          description: Identifier of the advertiser-account link row (numeric primary key)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateReportingBucketBody'
      responses:
        '200':
          description: Update account reporting bucket
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponse'
        '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:
    UpdateReportingBucketBody:
      description: >-
        Request body for updating the offline reporting bucket on a linked
        partner account
      type: object
      properties:
        reporting_bucket:
          description: >-
            Reporting bucket configuration to set on the linked account, or null
            to clear it.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ReportingBucket'
      required:
        - reporting_bucket
    AccountResponse:
      description: Response containing a single linked account
      type: object
      properties:
        account:
          $ref: '#/components/schemas/AccountOutput'
      required:
        - account
      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
    ReportingBucket:
      description: >-
        Customer-owned object storage bucket where sales agents can write
        offline delivery reports
      type: object
      properties:
        protocol:
          description: Object storage protocol
          example: s3
          type: string
          enum:
            - s3
            - gcs
            - azure_blob
        bucket:
          description: >-
            Bucket name. Lowercase alphanumerics, dots and hyphens; must start
            and end with an alphanumeric; 3-63 chars.
          example: my-org.adcp.reports
          type: string
          minLength: 3
          maxLength: 63
          pattern: ^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$
        prefix:
          description: Object key prefix within the bucket
          example: reports/
          type: string
          maxLength: 512
          pattern: ^[a-zA-Z0-9/_.-]+$
        region:
          description: Storage region identifier (lowercase alphanumerics and hyphens)
          example: us-east-1
          type: string
          maxLength: 64
          pattern: ^[a-z0-9-]+$
        format:
          description: Report file format
          default: jsonl
          type: string
          enum:
            - jsonl
            - csv
            - parquet
            - avro
            - orc
        compression:
          description: Compression applied to report files
          default: gzip
          type: string
          enum:
            - gzip
            - none
        file_retention_days:
          description: Number of days the customer retains report files in the bucket
          example: 30
          type: integer
          minimum: 1
          maximum: 9007199254740991
        setup_instructions:
          description: >-
            Optional URL pointing to setup instructions for granting the agent
            access to the bucket
          example: https://example.com/adcp/bucket-setup
          type: string
          format: uri
      required:
        - protocol
        - bucket
        - file_retention_days
    AccountOutput:
      description: Linked account resource on a partner platform
      type: object
      properties:
        linkId:
          description: Unique identifier for the advertiser-account link
          example: '42'
          type: string
        accountId:
          description: Partner account identifier
          example: acc_acme_pinnacle
          type: string
        credentialId:
          description: >-
            Credential row that owns this linked account. Include this value
            when updating linked accounts so duplicate account IDs across mapped
            connections remain unambiguous.
          example: '42'
          nullable: true
          type: string
        name:
          description: Human-readable account name from the partner
          example: Acme c/o Pinnacle
          nullable: true
          type: string
        advertiser:
          description: Advertiser name as recorded by the partner platform
          example: Acme Corp
          nullable: true
          type: string
        billingProxy:
          description: Billing proxy entity (e.g. agency buying on behalf of advertiser)
          example: Pinnacle Media
          nullable: true
          type: string
        house:
          description: Domain or house identifier for the account
          example: acme-corp.com
          nullable: true
          type: string
        billing:
          description: Billing arrangement type
          example: advertiser
          nullable: true
          type: string
        sources:
          description: >-
            Storefront sources that surface this account to the buyer. A single
            linked account may be reachable through multiple sources when the
            underlying agent is shared across storefronts. Empty when the
            underlying agent is no longer linked to any active storefront
            source.
          type: array
          items:
            $ref: '#/components/schemas/BuyerCredentialSourceRef'
        advertiserId:
          description: Advertiser that owns this account link
          example: '12345'
          type: string
        status:
          description: Current account status
          type: string
          enum:
            - active
            - pending_approval
            - payment_required
            - suspended
            - closed
            - unreachable
        unreachableAt:
          description: >-
            When set, the mapping is preserved but its platform account is no
            longer reachable through any active connection — the connection that
            surfaced it was unlinked. Relink the provider (or re-map the
            account) to restore it. Unreachable mappings never resolve at buy
            time.
          example: '2025-01-22T09:00:00Z'
          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))$
        createdAt:
          description: When the account was created (ISO 8601)
          example: '2025-01-15T10:30:00Z'
          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))$
        updatedAt:
          description: When the account was last updated (ISO 8601)
          example: '2025-01-20T14:45:00Z'
          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:
        - linkId
        - accountId
        - sources
        - advertiserId
        - status
        - createdAt
        - updatedAt
      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
    BuyerCredentialSourceRef:
      description: >-
        A storefront/source pair that a single credential row gives the buyer
        access to
      type: object
      properties:
        storefrontId:
          description: Storefront ID this credential covers
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        storefrontName:
          description: Storefront display name
          type: string
        sourceId:
          description: Inventory source ID within the storefront
          type: string
        sourceName:
          description: Inventory source display name
          type: string
      required:
        - storefrontId
        - storefrontName
        - sourceId
        - sourceName
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````