openapi: 3.1.0
info:
title: Inflection Developer API — Lists and Members
version: '1.0'
description: 'A REST API for reading and writing the people in your Inflection workspace: their profiles,
product and marketing activity, static lists, and emails.'
servers:
- url: https://api.inflection.io
description: Production
security:
- bearerAuth: []
tags:
- name: Lists and Members
paths:
/v1/lists:
post:
operationId: createList
summary: Create a list
tags:
- Lists and Members
description: Takes a `name` (and optional `folder`); a duplicate name returns `409 LIST_ALREADY_EXISTS`.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
folder:
type: string
responses:
'200':
description: List created.
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'409':
description: Duplicate name (`LIST_ALREADY_EXISTS`).
/v1/lists/{id}:
get:
operationId: getList
summary: Get a list
tags:
- Lists and Members
description: Missing list returns `404 NOT_FOUND`.
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: List found.
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
'404':
description: List not found.
patch:
operationId: updateList
summary: Update a list
tags:
- Lists and Members
description: 'Returns only `{ "staticListId", "success": true }`, a confirmation flag, not the updated
list object. Re-fetch the list if you need its new state.'
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
responses:
'200':
description: Confirmation flag only.
content:
application/json:
schema:
type: object
properties:
staticListId:
type: string
success:
type: boolean
delete:
operationId: deleteList
summary: Delete a list
tags:
- Lists and Members
description: Soft delete; returns `200` with a result body.
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: List deleted (soft delete).
/v1/lists/{id}/members:
get:
operationId: getListMembers
summary: Get list members
tags:
- Lists and Members
description: Member records use **camelCase** field names (`firstName`, `companyName`, `phoneNumber`),
unlike the snake_case that contact lookups return for the same person.
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: page_number
in: query
schema:
type: integer
default: 1
- name: page_size
in: query
schema:
type: integer
default: 20
maximum: 200
responses:
'200':
description: Paged list members.
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
post:
operationId: addListMembers
summary: Add list members
tags:
- Lists and Members
description: Add members by contact id. Unknown ids are skipped and reported in `errors` with a
still-successful `200` (partial success); the response reports how many were `added`.
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
contactIds:
type: array
items:
type: string
responses:
'200':
description: Members added (partial success reported in `errors`).
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
/v1/lists/{id}/members/{contactId}:
delete:
operationId: removeListMember
summary: Remove a list member
tags:
- Lists and Members
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: contactId
in: path
required: true
schema:
type: string
responses:
'200':
description: Member removed.
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Personal Access Token or OAuth 2.1 access token, sent as a bearer credential. READ
permission for GET, WRITE for POST/PATCH/DELETE.
schemas:
Envelope:
type: object
properties:
data:
description: 'Payload: object or array, shape depends on the endpoint.'
pagination:
type: object
description: Present only on paged list endpoints.
properties:
pageNumber:
type: integer
example: 1
pageSize:
type: integer
example: 20
totalElements:
type: integer
example: 151
totalPages:
type: integer
example: 8
errors:
type: array
items:
type: object
properties:
errorCode:
type: string
message:
type: string
detail:
type: string
meta:
type: object
properties:
status:
type: string
enum:
- SUCCESS
- FAILURE
timestamp:
type: string
format: date-time