Operations 1
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
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
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:scope3-tasks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Scope3 Buyer Tasks 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: Tasks
description: Track async operation status
paths:
/tasks/{taskId}:
get:
operationId: getTask
summary: Get task status
description: Get the current status of an async task. AdCP polling fallback for when webhooks are unavailable.
tags:
- Tasks
security:
- bearerAuth: []
parameters:
- in: path
name: taskId
schema:
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
required: true
responses:
'200':
description: Get task status
content:
application/json:
schema:
$ref: '#/components/schemas/TaskResponse'
'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:
ErrorResponse:
description: Standard error response
type: object
properties:
data:
type:
- string
- 'null'
enum:
- null
error:
$ref: '#/components/schemas/ApiError'
required:
- data
- error
additionalProperties: false
TaskError:
description: AdCP-compatible error object
type: object
properties:
code:
description: Error code for programmatic handling
example: VALIDATION_ERROR
type: string
message:
description: Human-readable error message
example: Invalid budget value
type: string
field:
description: Field path associated with the error
example: packages[0].targeting
type: string
suggestion:
description: Suggested fix for the error
type: string
retryAfter:
description: Seconds to wait before retrying the operation
type: number
details:
description: Additional task-specific error details
type: object
additionalProperties: {}
recovery:
description: 'Agent recovery classification: transient (retry), correctable (fix and resend), terminal (requires human action)'
type: string
enum:
- transient
- correctable
- terminal
required:
- code
- message
additionalProperties: false
TaskResponse:
description: Response containing a single task
type: object
properties:
task:
$ref: '#/components/schemas/TaskOutput'
required:
- task
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
TaskOutput:
description: Async task resource representation
type: object
properties:
taskId:
description: Unique task identifier
example: 550e8400-e29b-41d4-a716-446655440000
type: string
format: uuid
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
taskType:
description: Type of async operation
example: audience_sync
type: string
enum:
- audience_sync
- media_buy_create
- creative_sync
status:
description: Current task status (AdCP states)
example: submitted
type: string
enum:
- submitted
- working
- completed
- failed
- input-required
resourceType:
description: Type of resource this task operates on
example: audience
type:
- string
- 'null'
resourceId:
description: Identifier of the resulting resource (set on completion)
example: aud_12345
type:
- string
- 'null'
error:
description: AdCP-compatible error object when status is "failed"
allOf:
- $ref: '#/components/schemas/TaskError'
response:
description: Original response payload from the downstream system
type:
- object
- 'null'
additionalProperties: {}
metadata:
description: Operation-specific context
type:
- object
- 'null'
additionalProperties: {}
retryAfterSeconds:
description: Suggested polling interval in seconds. Set based on task type to guide how frequently callers should poll.
example: 30
type:
- number
- 'null'
createdAt:
description: When the task was created (ISO 8601)
example: '2026-01-15T10:30:00.000Z'
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 task was last updated (ISO 8601)
example: '2026-01-20T14:45:00.000Z'
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:
- taskId
- taskType
- status
- resourceType
- resourceId
- error
- response
- metadata
- retryAfterSeconds
- createdAt
- updatedAt
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key or access token