Scope3 Notifications API
The Notifications API from Scope3 — 4 operation(s) for notifications.
The Notifications API from Scope3 — 4 operation(s) for notifications.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/scope3-notifications-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
NotificationActionResponse:
type: object
properties:
success:
type: boolean
enum:
- true
notificationId:
type: string
required:
- success
- notificationId
additionalProperties: false
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
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
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
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
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
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