Scope3 Notifications API

The Notifications API from Scope3 — 4 operation(s) for notifications.

Operations 4

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /notifications List my notifications · List notifications #
Ask an LLM
“Do I have any unread notifications about my campaigns?”
“Can I filter notifications to a single creative or campaign?”
Tell an agent
List my unread notifications.
Show notifications for campaign {campaignId}.
POST /notifications/read-all Mark all notifications as read · Mark all notifications as read #
Ask an LLM
“Can I clear all my unread notifications at once?”
“Is it possible to mark everything read for just one brand agent?”
Tell an agent
Mark all my notifications as read.
Mark every notification for brand agent {brandAgentId} as read.
POST /notifications/{notificationId}/read Mark one notification as read · Mark notification as read #
Ask an LLM
“How do I mark a single notification as read?”
“Can I flag just one alert as seen?”
Tell an agent
Mark notification {notificationId} as read.
Set notification {notificationId} to read.
POST /notifications/{notificationId}/acknowledge Acknowledge and dismiss a notification · Acknowledge notification #
Ask an LLM
“What's the difference between reading and acknowledging a notification?”
“Can I dismiss a notification from active views?”
Tell an agent
Acknowledge notification {notificationId}.
Dismiss notification {notificationId}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/scope3:scope3-notifications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

scope3-notifications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Scope3 Notifications API
  version: 2.0.0
  description: 'Operations tagged Notifications across 2 of this provider''s published API definitions: scope3-buyer-openapi-original.yml, scope3-storefront-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.interchange.io/api/v2/buyer
  description: Production server
- url: https://api.interchange.io/api/v2/storefront
  description: Production server
tags:
- name: Notifications
paths:
  /notifications:
    servers:
    - url: https://api.interchange.io/api/v2
      description: Production server
    get:
      operationId: listNotifications
      summary: List notifications
      description: List notifications for the authenticated user, newest first, with unread/acknowledged filtering and pagination. The response includes the total and unread counts.
      tags:
      - Notifications
      security:
      - bearerAuth: []
      parameters:
      - in: query
        name: brandAgentId
        schema:
          type: number
      - in: query
        name: campaignId
        schema:
          type: string
      - in: query
        name: creativeId
        schema:
          type: string
      - in: query
        name: status
        schema:
          type: string
          enum:
          - success
          - error
          - warning
          - info
      - in: query
        name: types
        schema:
          type: string
      - in: query
        name: unreadOnly
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - in: query
        name: limit
        schema:
          type: number
          minimum: 1
          maximum: 100
      - in: query
        name: offset
        schema:
          type: number
          minimum: 0
      responses:
        '200':
          description: List notifications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationListResponse'
        '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'
  /notifications/read-all:
    servers:
    - url: https://api.interchange.io/api/v2
      description: Production server
    post:
      operationId: readAllNotifications
      summary: Mark all notifications as read
      description: Mark all notifications as read for the authenticated user. Optionally scope to a single `brandAgentId`.
      tags:
      - Notifications
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                brandAgentId:
                  type: number
      responses:
        '200':
          description: Mark all notifications as read
        '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'
  /notifications/{notificationId}/read:
    servers:
    - url: https://api.interchange.io/api/v2
      description: Production server
    post:
      operationId: readNotification
      summary: Mark notification as read
      description: Mark a single notification as read.
      tags:
      - Notifications
      security:
      - bearerAuth: []
      parameters:
      - in: path
        name: notificationId
        schema:
          description: Notification id.
          type: string
          minLength: 1
        required: true
        description: Notification id.
      responses:
        '200':
          description: Mark notification as read
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationActionResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No notification with this id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /notifications/{notificationId}/acknowledge:
    servers:
    - url: https://api.interchange.io/api/v2
      description: Production server
    post:
      operationId: acknowledgeNotification
      summary: Acknowledge notification
      description: Acknowledge a single notification, dismissing it from active surfaces.
      tags:
      - Notifications
      security:
      - bearerAuth: []
      parameters:
      - in: path
        name: notificationId
        schema:
          description: Notification id.
          type: string
          minLength: 1
        required: true
        description: Notification id.
      responses:
        '200':
          description: Acknowledge notification
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationActionResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No notification with this id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    NotificationSummary:
      description: Compact notification view returned by list endpoints. Use the notification detail endpoint for the full `data` payload.
      type: object
      properties:
        id:
          description: Unique identifier for the notification
          type: string
        type:
          description: Notification event type
          type: string
          enum:
          - brand_agent.created
          - brand_agent.updated
          - brand_agent.deleted
          - campaign.healthy
          - campaign.unhealthy
          - campaign.created
          - campaign.updated
          - campaign.deleted
          - campaign.completed
          - creative.approved
          - creative.rejected
          - creative.changes_requested
          - creative.sync_started
          - creative.sync_completed
          - creative.sync_failed
          - creative.created
          - creative.updated
          - creative.deleted
          - strategy.created
          - strategy.updated
          - strategy.deleted
          - media_buy.created
          - media_buy.updated
          - media_buy.deleted
          - media_buy.forward_failed
          - media_buy.awaiting_source_moderation
          - media_buy.source_rejected
          - media_buy.stuck
          - media_buy_update_proposal.approved
          - media_buy_update_proposal.rejected
          - media_buy_update_proposal.expired
          - salesagent.available
          - salesagent.unavailable
          - salesagent.registered
          - salesagent.unregistered
          - salesagent.updated
          - salesagent.sync_action_required
          - signalsagent.registered
          - signalsagent.unregistered
          - signalsagent.updated
          - signalsagent.signal_activated
          - signalsagent.signals_fetched
          - outcomesagent.registered
          - outcomesagent.unregistered
          - outcomesagent.updated
          - syndication.completed
          - syndication.failed
          - audience.synced
          - audience.sync_failed
          - optimization.suggestion_received
          - optimization.suggestion_approved
          - optimization.suggestion_rejected
          - optimization.suggestion_applied
          - optimization.suggestion_failed
          - system.warning
          - system.error
          - learning_cycle.completed
          - learning_cycle.failed
          - hypothesis.status_changed
          - hypothesis.review_requested
          - hypothesis.proven
          - hypothesis.disproven
          - measurement.received
          - measurement.stale
          - opportunity.evaluated
          - opportunity.recommended
          - opportunity.flagged
          - opportunity.explore
          - storefront.composition_paused
          - storefront.products_not_traffickable
          - storefront_adapter_credential.action_required
          - storefront_adapter_connection.mapping_required
          - inventory_source.unhealthy
          - inventory_source.recovered
          - source.action_required
          - source.action_resolved
          - storefront.supply_nudge
          - storefront.liveness_degraded
          - storefront.liveness_recovered
          - provider_fleet.incident_opened
          - provider_fleet.incident_recovered
          - media_buy.approval_requested
          - creative.review_requested
          - ad_server.approval_requested
          - inventory_shortfall.review_requested
          - storefront.media_buy_forward_failed
          - storefront.media_buy_moderation_aging
          - murph_room.mentioned
          - ask.resolved
        status:
          description: Notification status
          type: string
          enum:
          - success
          - error
          - warning
          - info
        read:
          description: Whether the buyer has marked this read
          type: boolean
        acknowledged:
          description: Whether the notification has been acknowledged
          type: boolean
        messagePreview:
          description: Truncated notification message (max 200 chars). Null when the notification has no message string. Replaces the full passthrough `data` payload on summary rows.
          type:
          - string
          - 'null'
        actionUrl:
          description: App-relative URL to open when the notification is selected. Null when the notification has no safe action URL.
          type:
          - string
          - 'null'
        createdAt:
          description: When the notification was created (ISO 8601)
          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:
      - id
      - type
      - status
      - read
      - acknowledged
      - messagePreview
      - actionUrl
      - createdAt
      additionalProperties: false
    ErrorResponse:
      description: Standard error response
      type: object
      properties:
        data:
          type:
          - string
          - 'null'
          enum:
          - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
      - data
      - error
      additionalProperties: false
    NotificationActionResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
          - true
        notificationId:
          type: string
      required:
      - success
      - notificationId
      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
    NotificationListResponse:
      description: Paginated list of notification summaries
      type: object
      properties:
        notifications:
          description: Notifications projected to the summary shape. Use the notification detail endpoint for the full `data` payload.
          type: array
          items:
            $ref: '#/components/schemas/NotificationSummary'
        totalCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        unreadCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        hasMore:
          type: boolean
      required:
      - notifications
      - totalCount
      - unreadCount
      - hasMore
      additionalProperties: false
    StorefrontNotificationListResponse:
      description: Paginated list of notification summaries (storefront spec)
      type: object
      properties:
        notifications:
          description: Notifications projected to the summary shape. Use the notification detail endpoint for the full `data` payload.
          type: array
          items:
            $ref: '#/components/schemas/StorefrontNotificationSummary'
        totalCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        unreadCount:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        hasMore:
          type: boolean
      required:
      - notifications
      - totalCount
      - unreadCount
      - hasMore
      additionalProperties: false
    StorefrontNotificationSummary:
      description: Compact notification view returned by the storefront list endpoint. Identical to NotificationSummary, minus buyer-only event types that can never appear in a seller notification list.
      type: object
      properties:
        id:
          description: Unique identifier for the notification
          type: string
        type:
          description: Notification event type
          type: string
          enum:
          - brand_agent.created
          - brand_agent.updated
          - brand_agent.deleted
          - campaign.healthy
          - campaign.unhealthy
          - campaign.created
          - campaign.updated
          - campaign.deleted
          - campaign.completed
          - creative.approved
          - creative.rejected
          - creative.changes_requested
          - creative.sync_started
          - creative.sync_completed
          - creative.sync_failed
          - creative.created
          - creative.updated
          - creative.deleted
          - strategy.created
          - strategy.updated
          - strategy.deleted
          - media_buy.created
          - media_buy.updated
          - media_buy.deleted
          - media_buy_update_proposal.approved
          - media_buy_update_proposal.rejected
          - media_buy_update_proposal.expired
          - salesagent.available
          - salesagent.unavailable
          - salesagent.registered
          - salesagent.unregistered
          - salesagent.updated
          - salesagent.sync_action_required
          - signalsagent.registered
          - signalsagent.unregistered
          - signalsagent.updated
          - signalsagent.signal_activated
          - signalsagent.signals_fetched
          - outcomesagent.registered
          - outcomesagent.unregistered
          - outcomesagent.updated
          - syndication.completed
          - syndication.failed
          - audience.synced
          - audience.sync_failed
          - optimization.suggestion_received
          - optimization.suggestion_approved
          - optimization.suggestion_rejected
          - optimization.suggestion_applied
          - optimization.suggestion_failed
          - system.warning
          - system.error
          - learning_cycle.completed
          - learning_cycle.failed
          - hypothesis.status_changed
          - hypothesis.review_requested
          - hypothesis.proven
          - hypothesis.disproven
          - measurement.received
          - measurement.stale
          - opportunity.evaluated
          - opportunity.recommended
          - opportunity.flagged
          - opportunity.explore
          - storefront.composition_paused
          - storefront.products_not_traffickable
          - storefront_adapter_credential.action_required
          - storefront_adapter_connection.mapping_required
          - inventory_source.unhealthy
          - inventory_source.recovered
          - source.action_required
          - source.action_resolved
          - storefront.supply_nudge
          - storefront.liveness_degraded
          - storefront.liveness_recovered
          - provider_fleet.incident_opened
          - provider_fleet.incident_recovered
          - media_buy.approval_requested
          - creative.review_requested
          - ad_server.approval_requested
          - inventory_shortfall.review_requested
          - storefront.media_buy_forward_failed
          - storefront.media_buy_moderation_aging
          - murph_room.mentioned
          - ask.resolved
        status:
          description: Notification status
          type: string
          enum:
          - success
          - error
          - warning
          - info
        read:
          description: Whether the buyer has marked this read
          type: boolean
        acknowledged:
          description: Whether the notification has been acknowledged
          type: boolean
        messagePreview:
          description: Truncated notification message (max 200 chars). Null when the notification has no message string. Replaces the full passthrough `data` payload on summary rows.
          type:
          - string
          - 'null'
        actionUrl:
          description: App-relative URL to open when the notification is selected. Null when the notification has no safe action URL.
          type:
          - string
          - 'null'
        createdAt:
          description: When the notification was created (ISO 8601)
          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:
      - id
      - type
      - status
      - read
      - acknowledged
      - messagePreview
      - actionUrl
      - createdAt
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token
x-refined-from:
- scope3-buyer-openapi-original.yml
- scope3-storefront-openapi-original.yml