openapi: 3.1.0
info:
title: Permutive Cohorts Segmentation API
version: '2.0'
description: Permutive is an agentic data collaboration and activation platform for premium publishers, advertisers and agencies. This OpenAPI description was DERIVED by API Evangelist from Permutive's public developer documentation (https://developer.permutive.com/) — the operation set, paths, HTTP methods, titles and descriptions are taken verbatim from the published API reference; request/response schemas are lightly modeled where the docs do not publish a machine-readable spec. It is a discovery aid, not the authoritative Permutive contract.
contact:
name: Permutive Developer Support
url: https://developer.permutive.com/
x-apievangelist-generated: '2026-07-20'
x-apievangelist-method: derived
x-apievangelist-source: https://developer.permutive.com/
servers:
- url: https://api.permutive.com
description: Permutive API host
security:
- ApiKeyAuth: []
tags:
- name: Segmentation
description: Cohort-based Segmentation (CCS) — evaluate a user's events into cohorts.
paths:
/ccs/v1/segmentation:
post:
tags:
- Segmentation
operationId: segmentUser
summary: Segment user
description: Accepts a list of events for a given user and combines them with any pre-existing state to determine the cohorts the user belongs to.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SegmentationRequest'
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/ServerError'
/ccs/v1/segmentation/stateless:
post:
tags:
- Segmentation
operationId: statelessSegmentation
summary: Stateless segmentation
description: Accepts a list of events for a given user and optionally some pre-existing state for the user, and returns the cohorts the user belongs to without persisting state.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SegmentationRequest'
responses:
'200':
$ref: '#/components/responses/OK'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/ServerError'
components:
responses:
Unauthorized:
description: Missing or invalid API key.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
OK:
description: Successful response
content:
application/json:
schema:
type: object
ServerError:
description: An unexpected error occurred on Permutive's side.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
BadRequest:
description: The request was malformed or failed validation.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
schemas:
SegmentationRequest:
type: object
properties:
user_id:
type: string
events:
type: array
items:
$ref: '#/components/schemas/Event'
state:
type: object
Problem:
type: object
description: Error payload.
properties:
type:
type: string
title:
type: string
status:
type: integer
detail:
type: string
Event:
type: object
properties:
user_id:
type: string
name:
type: string
properties:
type: object
time:
type: string
format: date-time
required:
- name
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
description: Permutive workspace API key supplied as a bearer token. See https://developer.permutive.com/api/authentication for the exact header and key-provisioning details.