Scope3 Audit Logs API
The Audit Logs API from Scope3 — 1 operation(s) for audit logs.
The Audit Logs API from Scope3 — 1 operation(s) for audit logs.
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-audit-logs-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 Buyer Audit Logs 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
tags:
- name: Audit Logs
paths:
/audit-logs:
get:
operationId: listBuyerAuditLogs
summary: List buyer audit logs
description: Paginated audit log feed for buyer activity. Filters by time window, advertiser, campaign, and resource type.
tags:
- Audit Logs
security:
- bearerAuth: []
parameters:
- in: query
name: startDate
schema:
description: ISO timestamp; only include audit logs at or after this time
example: '2026-03-01T00:00:00Z'
type: string
description: ISO timestamp; only include audit logs at or after this time
- in: query
name: endDate
schema:
description: ISO timestamp; only include audit logs at or before this time
example: '2026-04-01T00:00:00Z'
type: string
description: ISO timestamp; only include audit logs at or before this time
- in: query
name: advertiserId
schema:
description: Filter to audit logs scoped to a single advertiser
example: 42
type: integer
maximum: 9007199254740991
minimum: 1
description: Filter to audit logs scoped to a single advertiser
- in: query
name: campaignId
schema:
description: Filter to a campaign and all of its activity (media buys, creatives, etc.)
example: camp_abc123
type: string
description: Filter to a campaign and all of its activity (media buys, creatives, etc.)
- in: query
name: resourceTypes
schema:
description: Filter to a subset of buyer resource types. Defaults to all buyer resource types.
anyOf:
- type: array
items:
type: string
enum:
- ADVERTISER
- CAMPAIGN
- CREATIVE
- MEDIA_BUY
- PRODUCT
- PACKAGE
- type: string
description: Filter to a subset of buyer resource types. Defaults to all buyer resource types.
- in: query
name: actorOrigin
schema:
description: 'Filter to actions initiated a particular way: "agent" surfaces only changes Murph made on a user''s behalf, "human" only direct user changes.'
example: agent
type: string
enum:
- human
- agent
- autonomous
- system
description: 'Filter to actions initiated a particular way: "agent" surfaces only changes Murph made on a user''s behalf, "human" only direct user changes.'
- in: query
name: actorUserId
schema:
description: Filter to actions taken by a specific user (by user id)
example: 10
type: integer
maximum: 9007199254740991
minimum: 1
description: Filter to actions taken by a specific user (by user id)
- in: query
name: actorUserEmail
schema:
description: Filter to actions taken by a specific user (by email)
example: jane@acme.com
type: string
description: Filter to actions taken by a specific user (by email)
- in: query
name: resourceId
schema:
description: Filter to a single resource by its external id (e.g. an advertiser, creative, or media buy id)
example: creative_abc123
type: string
description: Filter to a single resource by its external id (e.g. an advertiser, creative, or media buy id)
- in: query
name: actions
schema:
description: Narrow to a subset of meaningful actions (e.g. only DELETE/ARCHIVE). Defaults to all meaningful actions.
anyOf:
- type: array
items:
type: string
enum:
- CREATE
- UPDATE
- DELETE
- ARCHIVE
- EXECUTE
- ACTIVATE
- DEACTIVATE
- type: string
description: Narrow to a subset of meaningful actions (e.g. only DELETE/ARCHIVE). Defaults to all meaningful actions.
- in: query
name: outcome
schema:
description: Filter by whether the action took effect. Omit to see only changes that succeeded (the default feed). Pass "denied" to see blocked attempts or "failed" for errored ones — these attempt views are not limited to the default resource types.
example: denied
type: string
enum:
- succeeded
- denied
- failed
description: Filter by whether the action took effect. Omit to see only changes that succeeded (the default feed). Pass "denied" to see blocked attempts or "failed" for errored ones — these attempt views are not limited to the default resource types.
- in: query
name: take
schema:
description: Number of results to return (max 500)
example: 50
default: 50
type: integer
maximum: 500
minimum: 1
description: Number of results to return (max 500)
- in: query
name: skip
schema:
description: Number of results to skip for pagination
example: 0
default: 0
type: integer
minimum: 0
maximum: 9007199254740991
description: Number of results to skip for pagination
responses:
'200':
description: List buyer audit logs
content:
application/json:
schema:
$ref: '#/components/schemas/ListBuyerActivityResponse'
'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'
components:
schemas:
BuyerAuditLog:
description: Audit log row surfaced to the buyer activity feed
type: object
properties:
id:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
timestamp:
type: string
createdAt:
type: string
action:
type: string
resourceType:
type: string
resourceId:
type:
- string
- 'null'
resourceName:
type:
- string
- 'null'
parentType:
type:
- string
- 'null'
advertiserId:
type:
- integer
- 'null'
minimum: -9007199254740991
maximum: 9007199254740991
userId:
type:
- integer
- 'null'
minimum: -9007199254740991
maximum: 9007199254740991
userEmail:
type:
- string
- 'null'
userName:
type:
- string
- 'null'
serviceTokenId:
type:
- integer
- 'null'
minimum: -9007199254740991
maximum: 9007199254740991
serviceTokenName:
type:
- string
- 'null'
actorOrigin:
description: 'How the action was initiated: "human" (direct), "agent" (the Murph agent on a human''s behalf), "autonomous" (no human in the loop), or "system" (platform/service-token). Null for legacy rows recorded before origin tracking.'
example: agent
type:
- string
- 'null'
outcome:
description: 'Whether the action took effect: "succeeded", "denied" (blocked by a permission/ToS gate), or "failed" (errored mid-execution). Null for legacy rows recorded before outcome tracking.'
example: succeeded
type:
- string
- 'null'
parameters:
type:
- object
- 'null'
additionalProperties: {}
changes:
type:
- object
- 'null'
additionalProperties: {}
description:
type: string
required:
- id
- timestamp
- createdAt
- action
- resourceType
- resourceId
- resourceName
- parentType
- advertiserId
- userId
- userEmail
- userName
- serviceTokenId
- serviceTokenName
- actorOrigin
- outcome
- parameters
- changes
- description
additionalProperties: false
ListBuyerActivityResponse:
description: Paginated list of buyer activity audit logs
type: object
properties:
logs:
type: array
items:
$ref: '#/components/schemas/BuyerAuditLog'
total:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- logs
- total
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
ErrorResponse:
description: Standard error response
type: object
properties:
data:
type:
- string
- 'null'
enum:
- null
error:
$ref: '#/components/schemas/ApiError'
required:
- data
- error
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key or access token