> ## Documentation Index
> Fetch the complete documentation index at: https://docs.inboxapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Replay events

> Reads events in sequence order. A page can hold fewer than `limit` events when some are filtered out; continue from `lastSeq` while `hasMore` is true.



## OpenAPI

````yaml /v2/openapi.json get /events
openapi: 3.1.0
info:
  title: Inboxapp API
  version: 2.0.0
  description: >-
    The Inboxapp API gives you access to your team's conversations and the CRM
    state around them. Every platform uses the same resources, so your code asks
    what an account can do instead of which platform it is on.


    ## The data model


    ```txt

    Team

    ├── Members                people on your team

    ├── Account links          your accounts on each platform

    │   └── Threads            one conversation with one profile

    │       └── Messages

    ├── Contacts               your record of a person

    │   └── Profiles           their account on each platform

    ├── Tags                   labels on contacts

    └── Statuses               pipeline stages of contacts

    ```


    | Resource | What it is |

    | --- | --- |

    | **Platform** | A messaging platform available to your team, with what it
    supports |

    | **Account link** | One of your accounts on a platform. Messages are sent
    from one |

    | **Profile** | One person's account on one platform |

    | **Contact** | Your team's record of a person. Groups one or more of their
    profiles |

    | **Thread** | A conversation between one account link and one profile |

    | **Message** | A message in a thread, which you can send, edit, unsend and
    react to |

    | **Tag** | A label on a contact. A contact can have several |

    | **Status** | A pipeline stage. A contact has at most one |

    | **Member** | A person on your team, who can be assigned threads and
    contacts |


    ## Authentication


    Send your API token in the `Authorization` header: `Authorization: Bearer
    <token>`. The token decides the team, so no path or parameter names one.


    ## Profiles and contacts


    A **profile** holds what the platform says about a person: `username`,
    `displayName`, `bio`, follower counts. A **contact** holds what your team
    says about them: `statusId`, `tagIds`, `notes`, `valuation`, `assigneeId`. A
    contact groups one or more profiles.


    A thread is always with one profile, and its `contactId` points to the
    contact that profile belongs to.


    ```json

    {
      "id": "nq2r8v5ycx1t7m4hj6kd3wzb",
      "profiles": [
        {
          "id": "n7kxqm5d9iu2sgdf6jbw4h36",
          "platform": "twitter",
          "platformId": "1876543210987654321",
          "username": "sarahchen",
          "handle": "@sarahchen",
          "displayName": "Sarah Chen"
        }
      ],
      "statusId": "r3km7xj9wq5p2bvnhfdteoly",
      "tagIds": ["t9wq5p2bvnhfdteolyr3km7x"],
      "notes": "Asked for a demo of the reporting API.",
      "valuation": 12000,
      "assigneeId": null
    }

    ```


    Reads never create a contact. Someone your team has never talked to or
    imported has none: message them by sending to a `profile` target.


    ## IDs


    | Field | What it is | Use it for |

    | --- | --- | --- |

    | `id`, every `…Id` | An Inboxapp ID | Paths and references. Paths only take
    Inboxapp IDs |

    | `platformId` | The ID the platform gives the object: its user,
    conversation or message | Matching against your own data |


    A `platformId` always comes with a `platform`, and means nothing without it.
    To find a resource by its platform identity, filter its collection:


    ```txt

    GET /contacts?platform=twitter&platformId=1876543210987654321

    ```


    No match is an empty `data` array, never a `404`.


    ## Platforms and capabilities


    Platforms differ: one lets you edit a message, another doesn't. The API
    expresses that as **capabilities** instead of per-platform endpoints. `GET
    /platforms` lists the platforms available to your team, with their
    capabilities and limits.


    ```txt

    Platform capabilities              the most any account on the platform can
    do
      └── Account link capabilities    narrowed for this account
            └── Thread restrictions    disabled in this conversation
    ```


    Check both before you call:


    ```typescript

    function canEdit(accountLink: AccountLink, thread: Thread): boolean {
      return (
        accountLink.capabilities.includes("message:edit") &&
        !thread.restrictions.includes("message:edit")
      );
    }

    ```


    | Failure | Meaning |

    | --- | --- |

    | `422 capabilityNotSupported` | The account link can't do this |

    | `422 threadRestricted` | The platform disabled it in this conversation |

    | `422 mutationWindowClosed` | The platform's time window for it has passed
    |

    | `403 platformNotAvailable` | The resource is on a platform your team can't
    use |


    New platforms may be added within v2, so treat `platform` as an open string.
    Code that checks capabilities keeps working when they are. See [Platforms
    and capabilities](https://docs.inboxapp.com/v2/platforms) for what each
    platform supports.


    ## Platform data


    Fields every platform has are top-level. Fields only one platform has are in
    `platformData`, tagged by `_tag`:


    ```json

    {
      "platformData": { "_tag": "twitter", "encrypted": true }
    }

    ```


    Ignore tags you don't know.


    ## Responses


    Every documented field is present: a value that doesn't apply is `null`.
    Timestamps are ISO 8601 in UTC. Within v2, fields, enum values and error
    codes may be added, so ignore unknown fields and handle unknown enum values.


    ## Pagination


    Collections return `{ "data": [...], "nextCursor": "..." }`. Pass
    `nextCursor` back as `cursor`, with the same filters, to read the next page.
    It is `null` on the last page. `limit` defaults to 50, up to 100. See
    [Pagination](https://docs.inboxapp.com/v2/reference/pagination).


    ## Query parameters


    To pass several values, repeat the key:


    ```txt

    ?accountLinkId=a&accountLinkId=b

    ```


    Brackets (`ids[]=…`) and comma-separated values aren't accepted. See [Query
    parameters](https://docs.inboxapp.com/v2/reference/query-parameters).


    ## Expansion


    References are IDs by default. Use `expand` to embed the related resource
    next to its ID field, `contact` beside `contactId`, at most 4 per request:


    ```txt

    GET /threads?expand=contact&expand=profile

    ```


    ## Updates


    In `PATCH` bodies, omitted fields are left unchanged, and `null` clears a
    nullable field.


    ## Errors


    Every error has the same body:


    ```json

    {
      "code": "capabilityNotSupported",
      "message": "This account can't perform this operation.",
      "details": { "capability": "message:edit" },
      "requestId": "…"
    }

    ```


    Branch on `code`, the contract. `message` can be shown to a person and may
    change. `details` is `null` or the object documented for that code. Share
    `requestId`, also in the `X-Request-Id` header, when you contact support.
    See [Error codes](https://docs.inboxapp.com/v2/reference/errors).


    ## Sending safely


    `POST /messages` takes an optional `Idempotency-Key` header. Retrying with
    the same key never sends twice: a replay returns the original result.
    Without a key, a retry can send twice.


    ## Rate limits


    Each team can make 300 requests per minute, 10,000 per hour and 100,000 per
    day. Every response carries `X-RateLimit-Limit`, `X-RateLimit-Remaining` and
    `X-RateLimit-Reset`. Past a limit, requests fail with `429 rateLimited` and
    a `Retry-After` header. See [Rate
    limits](https://docs.inboxapp.com/v2/reference/rate-limits).
  summary: Read and act on your team's conversations across messaging platforms.
servers:
  - url: https://inboxapp.com/api/v2
security: []
tags:
  - name: Platforms
    description: >-
      The messaging platforms available to the team, with what each one
      supports.
  - name: Team
    description: >-
      The team the API token belongs to, and its members: the Inboxapp users who
      work in it.
  - name: Account Links
    description: >-
      Platform accounts the team connected to Inboxapp. Every thread belongs to
      one, and messages are sent from one.
  - name: Contacts
    description: >-
      The team's record of a person, holding its CRM state: status, tags, notes,
      valuation and default assignee. A contact groups one or more profiles, a
      person's accounts on the platforms.
  - name: Threads
    description: Conversations between one of the team's account links and one profile.
  - name: Messages
    description: >-
      Messages in a thread, and sending, editing, unsending and reacting to them
      on the platform.
  - name: Tags
    description: Labels the team puts on contacts.
  - name: Statuses
    description: >-
      The pipeline stages a contact can be in, such as a deal stage. A contact
      has at most one.
  - name: Colors
    description: The colors of Inboxapp's palette, for tags and statuses.
  - name: Events
    description: >-
      Changes in the team, as delivered to v2 webhooks. Each event names the
      object that changed and carries only the values of the change; read the
      object for its current state. Events are kept for 7 days, up to 25,000 per
      team.
paths:
  /events:
    get:
      tags:
        - Events
      summary: Replay events
      description: >-
        Reads events in sequence order. A page can hold fewer than `limit`
        events when some are filtered out; continue from `lastSeq` while
        `hasMore` is true.
      operationId: events.list
      parameters:
        - name: afterSeq
          in: query
          schema:
            type: integer
            minimum: 0
            description: >-
              Exclusive. A webhook's `seq` resumes right after it. Omit to start
              at the oldest retained event.
          required: false
        - name: type
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - thread.created
                - thread.deleted
                - thread.assigned
                - thread.unassigned
                - thread.archived
                - thread.unarchived
                - thread.typing
                - message.sent
                - message.received
                - message.edited
                - message.deleted
                - message.reactionAdded
                - message.reactionRemoved
                - contact.statusChanged
                - contact.tagsChanged
                - contact.notesChanged
                - contact.valuationChanged
                - contact.assigneeChanged
                - tag.created
                - tag.updated
                - tag.deleted
                - status.created
                - status.updated
                - status.deleted
                - campaign.created
                - campaign.started
                - campaign.paused
                - campaign.resumed
                - campaign.completed
                - target.contacted
                - target.followUpSent
                - target.replied
            description: Only these event types. Repeat the key to match any of several.
          required: false
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            description: Events to read, from 1 to 1000. Defaults to 100.
          required: false
      responses:
        '200':
          description: EventPage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventPage'
        '400':
          description: InvalidRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequest'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '429':
          description: RateLimited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimited'
        '500':
          description: Internal
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Internal'
      security:
        - bearerAuth: []
components:
  schemas:
    EventPage:
      type: object
      properties:
        data:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/ThreadCreatedEvent'
              - $ref: '#/components/schemas/ThreadDeletedEvent'
              - $ref: '#/components/schemas/ThreadAssignedEvent'
              - $ref: '#/components/schemas/ThreadUnassignedEvent'
              - $ref: '#/components/schemas/ThreadArchivedEvent'
              - $ref: '#/components/schemas/ThreadUnarchivedEvent'
              - $ref: '#/components/schemas/ThreadTypingEvent'
              - $ref: '#/components/schemas/MessageSentEvent'
              - $ref: '#/components/schemas/MessageReceivedEvent'
              - $ref: '#/components/schemas/MessageEditedEvent'
              - $ref: '#/components/schemas/MessageDeletedEvent'
              - $ref: '#/components/schemas/MessageReactionAddedEvent'
              - $ref: '#/components/schemas/MessageReactionRemovedEvent'
              - $ref: '#/components/schemas/ContactStatusChangedEvent'
              - $ref: '#/components/schemas/ContactTagsChangedEvent'
              - $ref: '#/components/schemas/ContactNotesChangedEvent'
              - $ref: '#/components/schemas/ContactValuationChangedEvent'
              - $ref: '#/components/schemas/ContactAssigneeChangedEvent'
              - $ref: '#/components/schemas/TagCreatedEvent'
              - $ref: '#/components/schemas/TagUpdatedEvent'
              - $ref: '#/components/schemas/TagDeletedEvent'
              - $ref: '#/components/schemas/StatusCreatedEvent'
              - $ref: '#/components/schemas/StatusUpdatedEvent'
              - $ref: '#/components/schemas/StatusDeletedEvent'
              - $ref: '#/components/schemas/CampaignCreatedEvent'
              - $ref: '#/components/schemas/CampaignStartedEvent'
              - $ref: '#/components/schemas/CampaignPausedEvent'
              - $ref: '#/components/schemas/CampaignResumedEvent'
              - $ref: '#/components/schemas/CampaignCompletedEvent'
              - $ref: '#/components/schemas/TargetContactedEvent'
              - $ref: '#/components/schemas/TargetFollowUpSentEvent'
              - $ref: '#/components/schemas/TargetRepliedEvent'
        lastSeq:
          anyOf:
            - anyOf:
                - type: number
                - type: string
                  enum:
                    - Infinity
                    - '-Infinity'
                    - NaN
            - type: 'null'
          description: >-
            The last sequence number read, including events this page leaves
            out. Null when nothing was read. Pass it as `afterSeq` to continue.
        hasMore:
          type: boolean
      required:
        - data
        - lastSeq
        - hasMore
      additionalProperties: false
    InvalidRequest:
      type: object
      properties:
        code:
          type: string
          enum:
            - invalidRequest
        message:
          type: string
        details:
          type: object
          properties:
            issues:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: array
                    items:
                      anyOf:
                        - type: string
                        - anyOf:
                            - type: number
                            - type: string
                              enum:
                                - Infinity
                                - '-Infinity'
                                - NaN
                  message:
                    type: string
                required:
                  - path
                  - message
                additionalProperties: false
          required:
            - issues
          additionalProperties: false
        requestId:
          type: string
      required:
        - code
        - message
        - details
        - requestId
      additionalProperties: false
    Unauthorized:
      type: object
      properties:
        code:
          type: string
          enum:
            - unauthorized
        message:
          type: string
        details:
          type: 'null'
        requestId:
          type: string
      required:
        - code
        - message
        - details
        - requestId
      additionalProperties: false
    RateLimited:
      type: object
      properties:
        code:
          type: string
          enum:
            - rateLimited
        message:
          type: string
        details:
          type: object
          properties:
            window:
              type: string
              enum:
                - minute
                - hour
                - day
            limit:
              type: integer
            resetAt:
              type: string
              examples:
                - '2026-09-14T10:32:00.000Z'
              format: date-time
          required:
            - window
            - limit
            - resetAt
          additionalProperties: false
        requestId:
          type: string
      required:
        - code
        - message
        - details
        - requestId
      additionalProperties: false
    Internal:
      type: object
      properties:
        code:
          type: string
          enum:
            - internal
        message:
          type: string
        details:
          type: 'null'
        requestId:
          type: string
      required:
        - code
        - message
        - details
        - requestId
      additionalProperties: false
    ThreadCreatedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - thread.created
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - thread
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ThreadDeletedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - thread.deleted
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - thread
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            accountLinkId:
              type: string
            platform:
              $ref: '#/components/schemas/Platform'
          required:
            - accountLinkId
            - platform
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ThreadAssignedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - thread.assigned
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - thread
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            assigneeId:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - assigneeId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ThreadUnassignedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - thread.unassigned
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - thread
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            assigneeId:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - assigneeId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ThreadArchivedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - thread.archived
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - thread
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ThreadUnarchivedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - thread.unarchived
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - thread
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ThreadTypingEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - thread.typing
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - thread
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    MessageSentEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - message.sent
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - message
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
          required:
            - threadId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    MessageReceivedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - message.received
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - message
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
          required:
            - threadId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    MessageEditedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - message.edited
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - message
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
          required:
            - threadId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    MessageDeletedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - message.deleted
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - message
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
            scope:
              type: string
              enum:
                - self
                - all
          required:
            - threadId
            - scope
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    MessageReactionAddedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - message.reactionAdded
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - message
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
            emoji:
              type: string
            authorPlatformId:
              type: string
          required:
            - threadId
            - emoji
            - authorPlatformId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    MessageReactionRemovedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - message.reactionRemoved
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - message
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
            emoji:
              type: string
            authorPlatformId:
              type: string
          required:
            - threadId
            - emoji
            - authorPlatformId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ContactStatusChangedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - contact.statusChanged
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - contact
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            statusId:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - statusId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ContactTagsChangedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - contact.tagsChanged
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - contact
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            tagIds:
              type: array
              items:
                type: string
          required:
            - tagIds
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ContactNotesChangedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - contact.notesChanged
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - contact
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            notes:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - notes
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ContactValuationChangedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - contact.valuationChanged
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - contact
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            valuation:
              anyOf:
                - anyOf:
                    - type: number
                    - type: string
                      enum:
                        - Infinity
                        - '-Infinity'
                        - NaN
                - type: 'null'
          required:
            - valuation
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    ContactAssigneeChangedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - contact.assigneeChanged
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - contact
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            assigneeId:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - assigneeId
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    TagCreatedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - tag.created
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - tag
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    TagUpdatedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - tag.updated
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - tag
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    TagDeletedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - tag.deleted
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - tag
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    StatusCreatedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - status.created
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - status
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    StatusUpdatedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - status.updated
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - status
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    StatusDeletedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - status.deleted
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - status
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    CampaignCreatedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - campaign.created
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    CampaignStartedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - campaign.started
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    CampaignPausedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - campaign.paused
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    CampaignResumedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - campaign.resumed
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    CampaignCompletedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - campaign.completed
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          not:
            type: 'null'
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    TargetContactedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - target.contacted
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
            messageId:
              type: string
            contactId:
              anyOf:
                - type: string
                - type: 'null'
            stepNumber:
              anyOf:
                - anyOf:
                    - type: number
                    - type: string
                      enum:
                        - Infinity
                        - '-Infinity'
                        - NaN
                - type: 'null'
          required:
            - threadId
            - messageId
            - contactId
            - stepNumber
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    TargetFollowUpSentEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - target.followUpSent
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
            messageId:
              type: string
            contactId:
              anyOf:
                - type: string
                - type: 'null'
            stepNumber:
              anyOf:
                - anyOf:
                    - type: number
                    - type: string
                      enum:
                        - Infinity
                        - '-Infinity'
                        - NaN
                - type: 'null'
          required:
            - threadId
            - messageId
            - contactId
            - stepNumber
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    TargetRepliedEvent:
      type: object
      properties:
        id:
          type: string
        seq:
          anyOf:
            - type: number
            - type: string
              enum:
                - Infinity
                - '-Infinity'
                - NaN
        type:
          type: string
          enum:
            - target.replied
        apiVersion:
          type: string
          enum:
            - '2'
        createdAt:
          type: string
          examples:
            - '2026-09-14T10:32:00.000Z'
          format: date-time
        object:
          type: object
          properties:
            type:
              type: string
              enum:
                - campaign
            id:
              type: string
            url:
              type: string
              description: The object's path under the API; 404 once it's deleted.
          required:
            - type
            - id
            - url
          additionalProperties: false
        data:
          type: object
          properties:
            threadId:
              type: string
            messageId:
              type: string
            contactId:
              anyOf:
                - type: string
                - type: 'null'
            stepNumber:
              anyOf:
                - anyOf:
                    - type: number
                    - type: string
                      enum:
                        - Infinity
                        - '-Infinity'
                        - NaN
                - type: 'null'
          required:
            - threadId
            - messageId
            - contactId
            - stepNumber
          additionalProperties: false
      required:
        - id
        - seq
        - type
        - apiVersion
        - createdAt
        - object
        - data
      additionalProperties: false
    Platform:
      type: string
      description: >-
        The platform. Every team can use twitter; a team may have others
        enabled.
      examples:
        - twitter
  securitySchemes:
    bearerAuth:
      type: http
      scheme: Bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.