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/past-dev:past-dev-audiences-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: 3.2.0
info:
title: Past Dev Audiences API
version: 1.0.0
contact:
name: past.dev
url: https://past.dev/call
email: support@past.dev
description: 'Operations tagged audiences across 2 of this provider''s published API definitions: past-dev-openapi.json, past-dev.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.past.dev
description: Production
security:
- bearerAuth: []
tags:
- name: Audiences
description: Create and manage the audiences that scope data points.
paths:
/api/v1/audiences:
get:
operationId: listAudiences
tags:
- Audiences
summary: List audiences
description: 'List the project''s audiences: the default project audience first, then the named audiences by creation time.'
responses:
'200':
description: The project's audiences.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/AudienceList'
'400':
description: The request is malformed or violates a field constraint. Match behavior on the response code field.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'missing-api-key: no bearer. malformed-api-key: the header or the key has the wrong shape, or an agent token was sent to a route that accepts keys only. unauthorized: the key is unknown, expired, revoked, or of the kind this route refuses, or the agent token is invalid or expired.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'project-archived: the project of the key, or the project an agent token names, is archived. Unarchive it in the console to resume. insufficient-scope: the agent token does not carry the scope of the route.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Any other failure uses the same JSON error envelope.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.past.dev
description: Production
/api/v1/audiences/{slug}:
get:
operationId: getAudience
tags:
- Audiences
summary: Read one audience
description: Return one audience by slug, with its member count, memory count and definition. The slug project returns the default audience.
parameters:
- name: slug
in: path
required: true
schema:
type: string
minLength: 2
maxLength: 40
description: 'The slug: 2 to 40 lowercase letters, digits and dashes, with a letter or digit at each end.'
responses:
'200':
description: The requested audience.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
'400':
description: The request is malformed or violates a field constraint. Match behavior on the response code field.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'missing-api-key: no bearer. malformed-api-key: the header or the key has the wrong shape, or an agent token was sent to a route that accepts keys only. unauthorized: the key is unknown, expired, revoked, or of the kind this route refuses, or the agent token is invalid or expired.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'project-archived: the project of the key, or the project an agent token names, is archived. Unarchive it in the console to resume. insufficient-scope: the agent token does not carry the scope of the route.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No audience carries this slug in the selected project.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Any other failure uses the same JSON error envelope.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
put:
operationId: putAudience
tags:
- Audiences
summary: Create or replace an audience
description: Create an audience by slug, or replace its definition. A fixed audience lists identity ids; a rule audience matches identities by their traits.
parameters:
- name: slug
in: path
required: true
schema:
type: string
minLength: 2
maxLength: 40
description: 'The slug: 2 to 40 lowercase letters, digits and dashes, with a letter or digit at each end.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutAudienceRequest'
responses:
'200':
description: The audience was replaced.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
'201':
description: The audience was created.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
'400':
description: The request is malformed or violates a field constraint. Match behavior on the response code field.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'missing-api-key: no bearer. malformed-api-key: the header or the key has the wrong shape, or an agent token was sent to a route that accepts keys only. unauthorized: the key is unknown, expired, revoked, or of the kind this route refuses, or the agent token is invalid or expired.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'project-archived: the project of the key, or the project an agent token names, is archived. Unarchive it in the console to resume. insufficient-scope: the agent token does not carry the scope of the route.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Two creates raced on the same slug. Send the request again.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Any other failure uses the same JSON error envelope.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
operationId: deleteAudience
tags:
- Audiences
summary: Delete an audience
description: Delete one audience by slug. The memory scoped to it stays and reaches nobody, and the slug is free again. Returns no body.
parameters:
- name: slug
in: path
required: true
schema:
type: string
minLength: 2
maxLength: 40
description: 'The slug: 2 to 40 lowercase letters, digits and dashes, with a letter or digit at each end.'
responses:
'204':
description: The audience was deleted. No response body.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
'400':
description: The request is malformed or violates a field constraint. Match behavior on the response code field.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'missing-api-key: no bearer. malformed-api-key: the header or the key has the wrong shape, or an agent token was sent to a route that accepts keys only. unauthorized: the key is unknown, expired, revoked, or of the kind this route refuses, or the agent token is invalid or expired.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'project-archived: the project of the key, or the project an agent token names, is archived. Unarchive it in the console to resume. insufficient-scope: the agent token does not carry the scope of the route.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No audience carries this slug in the selected project.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Any other failure uses the same JSON error envelope.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.past.dev
description: Production
/api/v1/audiences/{slug}/recompute:
post:
operationId: recomputeAudience
tags:
- Audiences
summary: Recompute an audience
description: Recompute the members of one audience from its definition and return the refreshed record.
parameters:
- name: slug
in: path
required: true
schema:
type: string
minLength: 2
maxLength: 40
description: 'The slug: 2 to 40 lowercase letters, digits and dashes, with a letter or digit at each end.'
responses:
'200':
description: The refreshed audience.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Audience'
'400':
description: The request is malformed or violates a field constraint. Match behavior on the response code field.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: 'missing-api-key: no bearer. malformed-api-key: the header or the key has the wrong shape, or an agent token was sent to a route that accepts keys only. unauthorized: the key is unknown, expired, revoked, or of the kind this route refuses, or the agent token is invalid or expired.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: 'project-archived: the project of the key, or the project an agent token names, is archived. Unarchive it in the console to resume. insufficient-scope: the agent token does not carry the scope of the route.'
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No audience carries this slug in the selected project.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
default:
description: Any other failure uses the same JSON error envelope.
headers:
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.past.dev
description: Production
components:
schemas:
Audience:
type: object
required:
- slug
- name
- kind
- memberCount
- memoryCount
- reachesNobody
- recomputedAt
- createdAt
- identities
- rule
additionalProperties: false
properties:
slug:
type: string
name:
type: string
kind:
type: string
enum:
- fixed
- rule
- default
memberCount:
type: integer
description: The identities the audience reaches now.
memoryCount:
type: integer
description: The memories scoped to this audience.
reachesNobody:
type: boolean
description: True for a rule audience that matches no identity.
recomputedAt:
type:
- string
- 'null'
format: date-time
createdAt:
type: string
format: date-time
identities:
type:
- array
- 'null'
items:
type: string
description: The ids of a fixed audience, sorted. Null for the other kinds.
rule:
oneOf:
- $ref: '#/components/schemas/AudienceRule'
- type: 'null'
description: The rule of a rule audience. Null for the other kinds.
PutAudienceRequest:
type: object
required:
- kind
additionalProperties: false
properties:
kind:
type: string
enum:
- fixed
- rule
name:
type: string
minLength: 1
maxLength: 200
description: Defaults to the slug on create.
identities:
type: array
items:
type: string
maxLength: 200
description: Required for a fixed audience. An empty list reaches nobody. An id with no record is created.
rule:
$ref: '#/components/schemas/AudienceRule'
AudienceList:
type: object
required:
- audiences
additionalProperties: false
properties:
audiences:
type: array
items:
$ref: '#/components/schemas/Audience'
AudienceCondition:
type: object
required:
- trait
- operator
additionalProperties: false
properties:
trait:
type: string
minLength: 1
maxLength: 200
operator:
type: string
enum:
- is
- is_not
- is_one_of
- is_not_one_of
- exists
- does_not_exist
values:
type: array
maxItems: 50
items:
type: string
description: One value for is and is_not, 1 to 50 for is_one_of and is_not_one_of, none for exists and does_not_exist.
Error:
type: object
required:
- code
- status
properties:
code:
type: string
description: Stable kebab-case identifier.
status:
type: integer
description: HTTP status repeated in the body.
debugMessage:
type: string
data: {}
AudienceRule:
type: object
required:
- match
- conditions
additionalProperties: false
properties:
match:
type: string
enum:
- all
- any
conditions:
type: array
minItems: 1
maxItems: 20
items:
$ref: '#/components/schemas/AudienceCondition'
headers:
RequestId:
description: Server-generated id of this call, beginning with req_. Present on every /api/v1 response. The console's Requests screen lists the call under it.
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Project API key beginning with past_sk_.
managementKeyAuth:
type: http
scheme: bearer
description: Management key beginning with past_mk_. One per organization, created from Settings in the console.
agentTokenAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'Agent access token for one person, issued by https://sso.past.dev after the person approves the agent. https://api.past.dev/auth.md gives the procedure. The operation names the scope it asks for: memory:read or memory:write. Send X-Past-Project with the project slug; without it, the only live project of the organization is used, and an organization with two or more returns 400 project-required. Managed service only.'
x-refined-from:
- past-dev-openapi.json
- past-dev.json