openapi: 3.1.0 info: title: Inflection Developer Contact Activity Lists and Members API 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 email templates. 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 `400 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' '400': 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: 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 securitySchemes: bearerAuth: type: http scheme: bearer description: Personal Access Token. READ scope for GET, WRITE scope for POST/PATCH/DELETE.