{
  "openapi": "3.1.0",
  "info": {
    "title": "ReachHunt API",
    "version": "1.0.0",
    "description": "The ReachHunt API gives your own apps and scripts programmatic access to your workspace: accounts, campaigns, lead lists, conversations, messages, tags and statuses.\n\nSend your API key in the `Authorization` header: `Authorization: Bearer YOUR_API_KEY`. The key decides the workspace, so no path or parameter names one.\n\nEvery response has the same envelope: `{ \"status\": true, \"data\": ..., \"error\": null }`."
  },
  "servers": [
    {
      "url": "https://api.reachhunt.ai/api/v1",
      "description": "Production"
    }
  ],
  "security": [],
  "tags": [
    {
      "name": "Workspaces",
      "description": "Your workspace and the people in it."
    },
    {
      "name": "Accounts",
      "description": "The X and LinkedIn accounts you connected."
    },
    {
      "name": "Analytics",
      "description": "Activity over time."
    },
    {
      "name": "Credits",
      "description": "AI credits and how they were used."
    },
    {
      "name": "Campaigns",
      "description": "Outreach that messages your leads step by step."
    },
    {
      "name": "Agents",
      "description": "AI agents that reply to your leads."
    },
    {
      "name": "Tags",
      "description": "Labels you put on conversations."
    },
    {
      "name": "Statuses",
      "description": "Pipeline stages you put conversations in."
    },
    {
      "name": "Leads",
      "description": "The people in your lead lists."
    },
    {
      "name": "Lead lists",
      "description": "Lists of people you collect to message."
    },
    {
      "name": "Conversations",
      "description": "The conversations in your inbox."
    },
    {
      "name": "Messages",
      "description": "The messages in a conversation."
    },
    {
      "name": "Conversation details",
      "description": "Your team's record of the person in a conversation."
    },
    {
      "name": "Internal notes",
      "description": "Notes only your team sees."
    },
    {
      "name": "Scheduled messages",
      "description": "Messages set to send later."
    },
    {
      "name": "Templates",
      "description": "Saved messages you can reuse."
    },
    {
      "name": "Webhook events",
      "description": "What each event sends."
    }
  ],
  "paths": {
    "/workspace/list": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "workspaces.list",
        "summary": "List workspaces",
        "description": "Returns the workspaces you can reach, with counts. `activeId` is the workspace the API key belongs to.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "workspaces",
                        "activeId"
                      ],
                      "properties": {
                        "workspaces": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/WorkspaceSummary"
                          }
                        },
                        "activeId": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The workspace the request acts in.",
                          "examples": [
                            "16a8d98f-70b1-45c7-aba0-c638be37a1f2"
                          ]
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "workspaces": [
                      {
                        "workspaceId": "16a8d98f-70b1-45c7-aba0-c638be37a1f2",
                        "name": "Acme Growth",
                        "logoUrl": null,
                        "ownerName": "Dana Whitfield",
                        "role": "owner",
                        "permissions": null,
                        "accounts": 3,
                        "campaigns": 5,
                        "leadLists": 8,
                        "members": 2
                      }
                    ],
                    "activeId": "16a8d98f-70b1-45c7-aba0-c638be37a1f2"
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/workspace/info/{workspaceId}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "workspaces.get",
        "summary": "Get workspace",
        "description": "Returns one workspace with its plan.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "description": "The workspace ID. Use `activeId` from List workspaces.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "workspace"
                      ],
                      "properties": {
                        "workspace": {
                          "$ref": "#/components/schemas/Workspace"
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "workspace": {
                      "workspaceId": "16a8d98f-70b1-45c7-aba0-c638be37a1f2",
                      "name": "Acme Growth",
                      "logoUrl": null,
                      "ownerName": "Dana Whitfield",
                      "role": "owner",
                      "permissions": null,
                      "subscription": {
                        "plan": "growth",
                        "accounts": 5,
                        "cycle": "monthly",
                        "startedAt": "2026-10-01T00:00:00.000Z",
                        "expiresAt": "2026-11-01T00:00:00.000Z",
                        "autoRenew": true,
                        "renewsAt": "2026-11-01T00:00:00.000Z"
                      },
                      "lock": null
                    }
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/workspace/members": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "workspaces.listMembers",
        "summary": "List members",
        "description": "Returns the people in the workspace, invited ones included. Not paged.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "members",
                        "selfId",
                        "role"
                      ],
                      "properties": {
                        "members": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Member"
                          }
                        },
                        "selfId": {
                          "type": "string",
                          "description": "Your own member ID. With an API key it is the owner, who is listed in `members` too.",
                          "examples": [
                            "u-owner-0001"
                          ]
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "owner",
                            "admin",
                            "member"
                          ],
                          "description": "Your role in the workspace. Always `owner` with an API key.",
                          "examples": [
                            "owner"
                          ]
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "members": [
                      {
                        "id": "u-owner-0001",
                        "name": "Dana Whitfield",
                        "email": "dana@acme.com",
                        "role": "owner",
                        "status": "accepted",
                        "joinedAt": "2026-09-01T09:00:00.000Z",
                        "avatarUrl": null,
                        "permissions": {
                          "dashboard": "full",
                          "campaigns": "full",
                          "blacklist": "full",
                          "templates": "full",
                          "leads": "full",
                          "inbox": "full",
                          "pipeline": "full",
                          "agents": "full",
                          "accounts": "full",
                          "members": "full",
                          "developer": "full",
                          "billing": "full"
                        }
                      },
                      {
                        "id": "r3km7xj9-wq5p-2bvn-hfdt-eoly00000001",
                        "name": "Sam Lee",
                        "email": "sam@acme.com",
                        "role": "member",
                        "status": "accepted",
                        "joinedAt": "2026-09-02T10:00:00.000Z",
                        "avatarUrl": null,
                        "permissions": {
                          "dashboard": "full",
                          "campaigns": "full",
                          "blacklist": "full",
                          "templates": "full",
                          "leads": "full",
                          "inbox": "limited",
                          "pipeline": "full",
                          "agents": "none",
                          "accounts": "none",
                          "members": "none",
                          "developer": "none",
                          "billing": "none"
                        }
                      }
                    ],
                    "selfId": "u-owner-0001",
                    "role": "owner"
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/accounts": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "operationId": "accounts.list",
        "summary": "List accounts",
        "description": "Returns the X and LinkedIn accounts connected to your workspace, newest first. Not paged.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "description": "Only accounts on this network.",
            "schema": {
              "type": "string",
              "enum": [
                "x",
                "linkedin"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Account"
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": [
                    {
                      "id": "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f",
                      "workspaceId": "9a1d2c3b-4e5f-4a6b-8c7d-0e1f2a3b4c5d",
                      "platform": "x",
                      "platformId": "1566123362161725440",
                      "handle": "acmecorp",
                      "status": "connected",
                      "needsReauth": false,
                      "profile": {
                        "username": "acmecorp",
                        "name": "Acme Corp",
                        "avatar": "https://example.com/avatars/acme.jpg",
                        "url": "https://x.com/acmecorp",
                        "followers": 5400,
                        "following": 210
                      },
                      "connectedAt": "2026-09-01T09:00:00.000Z",
                      "throttledUntil": null,
                      "tokenExpiresAt": null,
                      "warmup": {
                        "active": true,
                        "speed": "slow",
                        "totalDays": 28,
                        "day": 6,
                        "progressPercent": 21,
                        "startedAt": "2026-10-12T09:00:00.000Z"
                      }
                    }
                  ],
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/accounts/{accountId}/limits": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "operationId": "accounts.getLimits",
        "summary": "Get account limits",
        "description": "Returns the sending limits of one account, what it used, and how far its warm-up is. LinkedIn and X accounts return different fields.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "description": "The account ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/LinkedInLimits"
                        },
                        {
                          "$ref": "#/components/schemas/XLimits"
                        }
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "accountId": "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f",
                    "handle": "jane-doe",
                    "platform": "linkedin",
                    "settings": {
                      "weeklyConnectionRequests": 100,
                      "weeklyInmails": 30,
                      "weeklyDirectMessages": 300,
                      "warmup": true,
                      "warmupSpeed": "slow"
                    },
                    "effective": {
                      "connection_request": {
                        "weekly": 80,
                        "dailyAllowance": 16,
                        "usedToday": 4,
                        "usedWeek": 31,
                        "remainingToday": 12,
                        "remainingWeek": 49
                      }
                    },
                    "warmup": {
                      "active": true,
                      "speed": "slow",
                      "totalDays": 28,
                      "day": 6,
                      "progressPercent": 21,
                      "startedAt": "2026-10-12T09:00:00.000Z"
                    },
                    "throttle": null,
                    "acceptance": {
                      "invited": 120,
                      "accepted": 42,
                      "ratePercent": 35,
                      "limitPercent": 100
                    }
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.list",
        "summary": "List conversations",
        "description": "Returns the one-to-one conversations in your workspace, across every connected account or for one. Open conversations are returned unless you change `scope`. Paged with a cursor.",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "required": false,
            "description": "Only conversations of this connected account. Leave it out for all accounts.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Text to look for in the person's name, in their handle, and in the last message.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "description": "Which conversations to return.\n\n- `all`: open conversations.\n- `unread`: open conversations with unread messages.\n- `needs_reply`: open conversations where the other person wrote last.\n- `pending`: open conversations where you wrote last.\n- `closed`: closed conversations.\n- `any`: open and closed. Defaults to `all`.",
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "unread",
                "needs_reply",
                "pending",
                "closed",
                "any"
              ]
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Order by the time of the last message. Defaults to `newest`.",
            "schema": {
              "type": "string",
              "enum": [
                "newest",
                "oldest"
              ]
            }
          },
          {
            "name": "tagId",
            "in": "query",
            "required": false,
            "description": "Only conversations with this tag. Repeat the parameter to match several tags.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "statusId",
            "in": "query",
            "required": false,
            "description": "Only conversations in this status. Repeat the parameter to match several statuses.",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to `50`.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "`nextCursor` from the previous page. A cursor only works with the filters it was issued for.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "items",
                        "total",
                        "nextCursor",
                        "syncedAt",
                        "sources",
                        "isStale"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Conversation"
                          }
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many conversations match, across all pages.",
                          "examples": [
                            128
                          ]
                        },
                        "nextCursor": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Pass it as `cursor` to read the next page. `null` on the last page.",
                          "examples": [
                            "eyJvIjoiMTc5NjQ4MDAwMDAwMCJ9"
                          ]
                        },
                        "syncedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time",
                          "description": "When the conversations were last refreshed from X and LinkedIn, in ISO 8601 UTC. `null` until a refresh has finished.",
                          "examples": [
                            "2026-10-17T14:06:00.000Z"
                          ]
                        },
                        "sources": {
                          "type": "array",
                          "description": "Where each account is in loading its conversations.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "accountId": {
                                "type": "string"
                              },
                              "platform": {
                                "$ref": "#/components/schemas/Platform"
                              },
                              "walk": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "How far the account's history has been loaded."
                              }
                            }
                          }
                        },
                        "isStale": {
                          "type": "boolean",
                          "description": "Always `false`. Kept for older clients."
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "items": [
                      {
                        "conversationId": "1876543210987654321:1900000000000000001",
                        "accountId": "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f",
                        "platform": "x",
                        "type": "one_to_one",
                        "participantCount": 2,
                        "participants": [
                          {
                            "platform": "x",
                            "platformId": "1876543210987654321",
                            "userName": "janedoe",
                            "name": "Jane Doe",
                            "url": "https://x.com/janedoe",
                            "profilePicture": "https://example.com/avatars/janedoe.jpg",
                            "headline": null,
                            "canDm": true,
                            "isVerified": false,
                            "followers": 1280,
                            "following": 340,
                            "location": "Berlin",
                            "description": "Growth, partnerships and outbound."
                          }
                        ],
                        "peerUnavailable": false,
                        "tags": [
                          {
                            "id": "7c1f0c52-6d1a-4a49-9a63-2b3c4d5e6f70",
                            "label": "Hot lead",
                            "color": "#e24c5d"
                          }
                        ],
                        "statusId": "b8d1f6f4-3a52-4f3a-8f0b-0c2f6a9d1e11",
                        "valuation": 1500,
                        "assigneeId": null,
                        "readUpTo": "1900000000000000100",
                        "peerReadUpTo": "1900000000000000100",
                        "hasUnread": true,
                        "unreadCount": 1,
                        "isClosed": false,
                        "isDraft": false,
                        "sendTyping": null,
                        "lastMessage": {
                          "text": "Thanks, sounds good. Send the details over.",
                          "fromMe": false,
                          "seqId": "1900000000000000123",
                          "createdAt": "2026-10-17T14:05:00.000Z",
                          "attachmentCount": 0,
                          "attachmentType": null,
                          "seen": null
                        }
                      }
                    ],
                    "total": 128,
                    "nextCursor": "eyJvIjoiMTc5NjQ4MDAwMDAwMCJ9",
                    "syncedAt": "2026-10-17T14:06:00.000Z",
                    "sources": [
                      {
                        "accountId": "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f",
                        "platform": "x",
                        "walk": "done"
                      }
                    ],
                    "isStale": false
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    },
    "/leads": {
      "get": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leads.list",
        "summary": "List lead lists",
        "description": "Returns the lead lists in your workspace, newest first. The read-only system lists come back in `systemLists` on the first page.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Text to look for in the list name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Only lists whose import is in this state. Defaults to `all`.",
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "pending",
                "syncing",
                "completed",
                "paused",
                "stopped",
                "failed"
              ]
            }
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "description": "Only lists on this network. Defaults to `all`.",
            "schema": {
              "type": "string",
              "enum": [
                "all",
                "x",
                "linkedin"
              ]
            }
          },
          {
            "name": "favorite",
            "in": "query",
            "required": false,
            "description": "Set to `true` to return only favorite lists.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "The page to return, starting at 1. A page past the end returns the last page. Defaults to `1`.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to `50`.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "items",
                        "page",
                        "limit",
                        "total",
                        "totalPages",
                        "systemLists"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/LeadList"
                          }
                        },
                        "page": {
                          "type": "integer",
                          "description": "The page returned.",
                          "examples": [
                            1
                          ]
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used.",
                          "examples": [
                            50
                          ]
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many lists match, across all pages.",
                          "examples": [
                            3
                          ]
                        },
                        "totalPages": {
                          "type": "integer",
                          "description": "How many pages there are.",
                          "examples": [
                            1
                          ]
                        },
                        "systemLists": {
                          "type": "array",
                          "description": "Read-only system lists. Only returned on the first page; empty on the others.",
                          "items": {
                            "$ref": "#/components/schemas/SystemLeadList"
                          }
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "items": [
                      {
                        "id": "3f1c2a9e-7b4d-4e2a-9c1f-5d8e6a7b9c0d",
                        "name": "SaaS founders",
                        "status": "completed",
                        "platform": "linkedin",
                        "profiles": 812,
                        "reachable": 640,
                        "totalCount": 1200,
                        "syncError": null,
                        "favorite": false,
                        "createdAt": "2026-10-05T08:12:00.000Z",
                        "syncBatch": 1
                      }
                    ],
                    "page": 1,
                    "limit": 50,
                    "total": 1,
                    "totalPages": 1,
                    "systemLists": [
                      {
                        "id": "x-database",
                        "name": "X Database",
                        "description": "Search our prospect database of public profiles on X.",
                        "platform": "x",
                        "readOnly": true,
                        "key": "x_database",
                        "profiles": 0,
                        "reachable": null
                      }
                    ]
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.create",
        "summary": "Create lead list",
        "description": "Creates an empty lead list. Fill it with Add leads or Start import.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The list name."
                  },
                  "platform": {
                    "type": "string",
                    "enum": [
                      "x",
                      "linkedin"
                    ]
                  }
                },
                "required": [
                  "name",
                  "platform"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "lead": {
                          "$ref": "#/components/schemas/LeadListWithJobs"
                        }
                      },
                      "required": [
                        "lead"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.delete",
        "summary": "Delete lead lists",
        "description": "Deletes lead lists and the people in them.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The lead list IDs."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "type": "integer",
                          "description": "How many were deleted."
                        }
                      },
                      "required": [
                        "deleted"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/tags": {
      "get": {
        "tags": [
          "Tags"
        ],
        "operationId": "tags.list",
        "summary": "List tags",
        "description": "Returns every tag in your workspace, in the order they were created. Not paged.",
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "tags"
                      ],
                      "properties": {
                        "tags": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Tag"
                          }
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "tags": [
                      {
                        "id": "7c1f0c52-6d1a-4a49-9a63-2b3c4d5e6f70",
                        "label": "Hot lead",
                        "color": "#e24c5d"
                      },
                      {
                        "id": "0e5a3d6b-91c2-4d0f-8a77-6b1d2c3e4f50",
                        "label": "Follow up",
                        "color": "#ff954b"
                      }
                    ]
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Tags"
        ],
        "operationId": "tags.create",
        "summary": "Create tag",
        "description": "Creates a tag. Pass `accountId` and `conversationId` to put it on a conversation too.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "The name, up to 24 characters."
                  },
                  "color": {
                    "type": "string",
                    "description": "A hex color like `#8b5cf6`, or a preset name."
                  },
                  "accountId": {
                    "type": "string",
                    "description": "Optional. The account of the conversation to put it on."
                  },
                  "conversationId": {
                    "type": "string",
                    "description": "Optional. The conversation to put it on."
                  }
                },
                "required": [
                  "label",
                  "color"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "tag": {
                          "$ref": "#/components/schemas/Tag"
                        },
                        "applied": {
                          "type": "boolean",
                          "description": "Whether it was put on the conversation."
                        }
                      },
                      "required": [
                        "tag",
                        "applied"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/statuses": {
      "get": {
        "tags": [
          "Statuses"
        ],
        "operationId": "statuses.list",
        "summary": "List statuses",
        "description": "Returns every status in your workspace, in the order they were created. Not paged.",
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "statuses"
                      ],
                      "properties": {
                        "statuses": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Status"
                          }
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                },
                "example": {
                  "status": true,
                  "data": {
                    "statuses": [
                      {
                        "id": "b8d1f6f4-3a52-4f3a-8f0b-0c2f6a9d1e11",
                        "label": "Interested",
                        "color": "#4ede88",
                        "createdAt": "2026-10-01T09:30:00.000Z"
                      },
                      {
                        "id": "5a9c7e21-4b83-4a6d-9d02-1f3e5b7c9d0a",
                        "label": "Not interested",
                        "color": "#8b98a9",
                        "createdAt": "2026-10-01T09:30:00.000Z"
                      }
                    ]
                  },
                  "error": null
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Statuses"
        ],
        "operationId": "statuses.create",
        "summary": "Create status",
        "description": "Creates a status. Pass `accountId` and `conversationId` to put it on a conversation too.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "The name, up to 24 characters."
                  },
                  "color": {
                    "type": "string",
                    "description": "A hex color like `#8b5cf6`, or a preset name."
                  },
                  "accountId": {
                    "type": "string",
                    "description": "Optional. The account of the conversation to put it on."
                  },
                  "conversationId": {
                    "type": "string",
                    "description": "Optional. The conversation to put it on."
                  }
                },
                "required": [
                  "label",
                  "color"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "$ref": "#/components/schemas/Status"
                        },
                        "applied": {
                          "type": "boolean",
                          "description": "Whether it was put on the conversation."
                        }
                      },
                      "required": [
                        "status",
                        "applied"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/workspace/assignees": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "workspaces.listAssignees",
        "summary": "List assignees",
        "description": "Returns the people a conversation can be assigned to.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "assignees": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The ID."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name."
                              },
                              "avatarUrl": {
                                "type": "string",
                                "description": "Link to the photo."
                              }
                            },
                            "required": [
                              "id",
                              "name",
                              "avatarUrl"
                            ]
                          }
                        }
                      },
                      "required": [
                        "assignees"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/accounts/limits/summary": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "operationId": "accounts.limitsSummary",
        "summary": "Get limits summary",
        "description": "Returns the sending limits and pace of every connected account, and what they can send together.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "mode": {
                          "type": "string",
                          "description": "How sending limits are applied."
                        },
                        "accounts": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "accountId": {
                                "type": "string",
                                "description": "The connected account."
                              },
                              "handle": {
                                "type": "string",
                                "description": "The username, without a prefix."
                              },
                              "platform": {
                                "type": "string",
                                "description": "The network: `x` or `linkedin`."
                              },
                              "status": {
                                "type": "string",
                                "description": "The current state."
                              },
                              "warmup": {
                                "type": "object",
                                "properties": {
                                  "active": {
                                    "type": "boolean"
                                  },
                                  "speed": {
                                    "type": "string"
                                  },
                                  "totalDays": {
                                    "type": "integer"
                                  },
                                  "day": {
                                    "type": "integer"
                                  },
                                  "startedAt": {
                                    "type": "string",
                                    "format": "date-time",
                                    "description": "When it started, in ISO 8601 UTC."
                                  },
                                  "progressPercent": {
                                    "type": "integer",
                                    "description": "How far it is, from 0 to 100."
                                  }
                                },
                                "required": [
                                  "active",
                                  "speed",
                                  "totalDays",
                                  "day",
                                  "startedAt",
                                  "progressPercent"
                                ],
                                "description": "Where the warm-up stands."
                              },
                              "throttle": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "description": "Set when sending is paused to keep the account safe. `null` otherwise."
                              },
                              "rate": {
                                "type": "object",
                                "properties": {
                                  "maxPerHour": {
                                    "type": "integer"
                                  },
                                  "startPerHour": {
                                    "type": "integer"
                                  },
                                  "warmupCeiling": {
                                    "type": "integer"
                                  },
                                  "cap": {
                                    "type": [
                                      "integer",
                                      "null"
                                    ]
                                  },
                                  "capUntil": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "capReason": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "ceiling": {
                                    "type": "integer"
                                  },
                                  "usedHour": {
                                    "type": "integer"
                                  },
                                  "remainingHour": {
                                    "type": "integer"
                                  },
                                  "nextSlotAt": {
                                    "type": [
                                      "string",
                                      "null"
                                    ],
                                    "format": "date-time"
                                  },
                                  "reachesMaxAt": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "usedToday": {
                                    "type": "integer"
                                  },
                                  "dailyBackstop": {
                                    "type": "integer"
                                  }
                                },
                                "required": [
                                  "maxPerHour",
                                  "startPerHour",
                                  "warmupCeiling",
                                  "cap",
                                  "capUntil",
                                  "capReason",
                                  "ceiling",
                                  "usedHour",
                                  "remainingHour",
                                  "nextSlotAt",
                                  "reachesMaxAt",
                                  "usedToday",
                                  "dailyBackstop"
                                ],
                                "description": "Hourly sending pace."
                              },
                              "hold": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "description": "Set when sending is on hold. `null` otherwise."
                              }
                            },
                            "required": [
                              "accountId",
                              "handle",
                              "platform",
                              "status",
                              "warmup",
                              "throttle",
                              "rate",
                              "hold"
                            ]
                          }
                        },
                        "capacity": {
                          "type": "object",
                          "properties": {
                            "accounts": {
                              "type": "integer"
                            },
                            "connectionRequestsToday": {
                              "type": "integer"
                            },
                            "connectionRequestsPerWeek": {
                              "type": "integer"
                            },
                            "directMessagesToday": {
                              "type": "integer"
                            },
                            "x": {
                              "type": "object",
                              "properties": {
                                "accounts": {
                                  "type": "integer"
                                },
                                "sendsPerHour": {
                                  "type": "integer"
                                },
                                "remainingThisHour": {
                                  "type": "integer"
                                }
                              },
                              "required": [
                                "accounts",
                                "sendsPerHour",
                                "remainingThisHour"
                              ]
                            }
                          },
                          "required": [
                            "accounts",
                            "connectionRequestsToday",
                            "connectionRequestsPerWeek",
                            "directMessagesToday",
                            "x"
                          ],
                          "description": "What your accounts can send."
                        }
                      },
                      "required": [
                        "mode",
                        "accounts",
                        "capacity"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/dashboard/summary": {
      "get": {
        "tags": [
          "Analytics"
        ],
        "operationId": "analytics.summary",
        "summary": "Get activity summary",
        "description": "Returns messages sent, people contacted and replies over a time range, with one point per bucket, and the latest conversations.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "range",
            "in": "query",
            "required": false,
            "description": "The time range. Defaults to `7d`.",
            "schema": {
              "type": "string",
              "enum": [
                "24h",
                "7d",
                "30d"
              ]
            }
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "Time zone for the buckets, such as `Asia/Kolkata`. Defaults to UTC.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "range": {
                          "type": "string",
                          "description": "The time range covered."
                        },
                        "messagesSent": {
                          "type": "integer",
                          "description": "Messages sent from ReachHunt."
                        },
                        "contacted": {
                          "type": "integer",
                          "description": "People messaged at least once."
                        },
                        "replies": {
                          "type": "integer",
                          "description": "People who replied."
                        },
                        "linkedin": {
                          "type": "object",
                          "properties": {
                            "invites": {
                              "type": "integer"
                            },
                            "accepted": {
                              "type": "integer",
                              "description": "Connection requests accepted."
                            },
                            "messageRequests": {
                              "type": "integer"
                            },
                            "directMessages": {
                              "type": "integer"
                            },
                            "inmails": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "invites",
                            "accepted",
                            "messageRequests",
                            "directMessages",
                            "inmails"
                          ]
                        },
                        "points": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "at": {
                                "type": "string"
                              },
                              "messages": {
                                "type": "integer"
                              },
                              "contacted": {
                                "type": "integer",
                                "description": "People messaged at least once."
                              },
                              "replies": {
                                "type": "integer",
                                "description": "People who replied."
                              },
                              "invites": {
                                "type": "integer"
                              },
                              "accepted": {
                                "type": "integer",
                                "description": "Connection requests accepted."
                              },
                              "requests": {
                                "type": "integer"
                              },
                              "dms": {
                                "type": "integer"
                              },
                              "inmails": {
                                "type": "integer"
                              }
                            },
                            "required": [
                              "at",
                              "messages",
                              "contacted",
                              "replies",
                              "invites",
                              "accepted",
                              "requests",
                              "dms",
                              "inmails"
                            ],
                            "description": "One entry per time bucket."
                          },
                          "description": "One entry per time bucket."
                        },
                        "recentChats": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "conversationId": {
                                "type": "string",
                                "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`."
                              },
                              "platform": {
                                "type": "string",
                                "description": "The network: `x` or `linkedin`."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name."
                              },
                              "handle": {
                                "type": "string",
                                "description": "The username, without a prefix."
                              },
                              "avatarUrl": {
                                "type": "string",
                                "description": "Link to the photo."
                              },
                              "verified": {
                                "type": "string"
                              },
                              "isPremium": {
                                "type": [
                                  "boolean",
                                  "null"
                                ]
                              },
                              "hasUnread": {
                                "type": "boolean"
                              },
                              "lastMessage": {
                                "type": "object",
                                "properties": {
                                  "text": {
                                    "type": "string",
                                    "description": "The message text."
                                  },
                                  "fromMe": {
                                    "type": "boolean",
                                    "description": "`true` when the connected account sent it."
                                  },
                                  "at": {
                                    "type": "string"
                                  },
                                  "attachmentCount": {
                                    "type": "integer"
                                  },
                                  "attachmentType": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  }
                                },
                                "required": [
                                  "text",
                                  "fromMe",
                                  "at",
                                  "attachmentCount",
                                  "attachmentType"
                                ]
                              }
                            },
                            "required": [
                              "conversationId",
                              "platform",
                              "name",
                              "handle",
                              "avatarUrl",
                              "verified",
                              "isPremium",
                              "hasUnread",
                              "lastMessage"
                            ],
                            "description": "The latest conversations."
                          },
                          "description": "The latest conversations."
                        }
                      },
                      "required": [
                        "range",
                        "messagesSent",
                        "contacted",
                        "replies",
                        "linkedin",
                        "points",
                        "recentChats"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns": {
      "get": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.list",
        "summary": "List campaigns",
        "description": "Returns your campaigns, newest first, with how many are in each status.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Text to look for in the name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Only campaigns in this status.",
            "schema": {
              "type": "string",
              "enum": [
                "draft",
                "scheduled",
                "running",
                "paused",
                "completed",
                "stopped",
                "failed"
              ]
            }
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "description": "Only campaigns on this network.",
            "schema": {
              "type": "string",
              "enum": [
                "x",
                "linkedin"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "The page to return, starting at 1.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The ID."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name."
                              },
                              "platform": {
                                "type": "string",
                                "description": "The network: `x` or `linkedin`."
                              },
                              "status": {
                                "type": "string",
                                "enum": [
                                  "draft",
                                  "scheduled",
                                  "running",
                                  "paused",
                                  "completed",
                                  "stopped",
                                  "failed"
                                ],
                                "description": "Where the campaign stands."
                              },
                              "audienceCount": {
                                "type": "integer",
                                "description": "How many people the campaign targets."
                              },
                              "accountIds": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "description": "The accounts that send for it."
                                },
                                "description": "The accounts that send for it."
                              },
                              "replyAgentId": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "The AI agent that replies to its leads. `null` when none."
                              },
                              "hasInvites": {
                                "type": "boolean",
                                "description": "Whether its sequence sends connection requests."
                              },
                              "metrics": {
                                "type": "object",
                                "properties": {
                                  "targets": {
                                    "type": "integer",
                                    "description": "People the campaign targets."
                                  },
                                  "contacted": {
                                    "type": "integer",
                                    "description": "People messaged at least once."
                                  },
                                  "replies": {
                                    "type": "integer",
                                    "description": "People who replied."
                                  },
                                  "invitesSent": {
                                    "type": "integer",
                                    "description": "Connection requests sent."
                                  },
                                  "accepted": {
                                    "type": "integer",
                                    "description": "Connection requests accepted."
                                  }
                                },
                                "required": [
                                  "targets",
                                  "contacted",
                                  "replies",
                                  "invitesSent",
                                  "accepted"
                                ],
                                "description": "Counters for the campaign."
                              },
                              "progressPercent": {
                                "type": "integer",
                                "description": "How far it is, from 0 to 100."
                              },
                              "createdAt": {
                                "type": "string",
                                "format": "date-time",
                                "description": "When it was created, in ISO 8601 UTC."
                              },
                              "startedAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time",
                                "description": "When it started, in ISO 8601 UTC."
                              },
                              "completedAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time",
                                "description": "When it finished, in ISO 8601 UTC."
                              },
                              "pauseReason": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Why it is paused. `null` when it is not."
                              }
                            },
                            "required": [
                              "id",
                              "name",
                              "platform",
                              "status",
                              "audienceCount",
                              "accountIds",
                              "replyAgentId",
                              "hasInvites",
                              "metrics",
                              "progressPercent",
                              "createdAt",
                              "startedAt",
                              "completedAt",
                              "pauseReason"
                            ]
                          }
                        },
                        "page": {
                          "type": "integer",
                          "description": "The page returned."
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used."
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many match, across all pages."
                        },
                        "totalPages": {
                          "type": "integer",
                          "description": "How many pages there are."
                        },
                        "statusCounts": {
                          "type": "object",
                          "properties": {
                            "all": {
                              "type": "integer"
                            },
                            "draft": {
                              "type": "integer"
                            },
                            "scheduled": {
                              "type": "integer"
                            },
                            "running": {
                              "type": "integer"
                            },
                            "paused": {
                              "type": "integer"
                            },
                            "completed": {
                              "type": "integer"
                            },
                            "stopped": {
                              "type": "integer"
                            },
                            "failed": {
                              "type": "integer",
                              "description": "People the campaign could not reach."
                            }
                          },
                          "required": [
                            "all",
                            "draft",
                            "scheduled",
                            "running",
                            "paused",
                            "completed",
                            "stopped",
                            "failed"
                          ],
                          "description": "How many campaigns are in each status."
                        }
                      },
                      "required": [
                        "items",
                        "page",
                        "limit",
                        "total",
                        "totalPages",
                        "statusCounts"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.create",
        "summary": "Create campaign",
        "description": "Creates a draft campaign. Start it with Start campaign.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The campaign name."
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "A note about the campaign."
                  },
                  "platform": {
                    "type": "string",
                    "enum": [
                      "x",
                      "linkedin"
                    ],
                    "description": "The network. Defaults to `x`. Set it when you create the campaign; it cannot change later."
                  },
                  "audience": {
                    "type": "array",
                    "description": "The lead lists it targets.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "leadListId": {
                          "type": "string"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "include",
                            "exclude"
                          ]
                        },
                        "selection": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "additionalProperties": true
                        }
                      }
                    }
                  },
                  "accountIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The accounts that send for it."
                  },
                  "sequence": {
                    "type": "array",
                    "description": "The steps, in order: `message`, `wait`, `connect` (LinkedIn) or `inmail` (LinkedIn).",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "message",
                            "wait",
                            "connect",
                            "inmail"
                          ]
                        },
                        "variants": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Message versions. Spin syntax `{Hi|Hey}` and `{{firstName}}` are filled in for each person."
                        },
                        "amount": {
                          "type": "integer",
                          "description": "For `wait`: how long."
                        },
                        "unit": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days"
                          ],
                          "description": "For `wait`: the unit."
                        },
                        "subject": {
                          "type": "string",
                          "description": "For `inmail`: the subject."
                        }
                      }
                    }
                  },
                  "send": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "When and how fast it sends: `perHour`, `dailyPerAccount`, `timezone`, `schedule`."
                  },
                  "exclusions": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Who to leave out: `activeCampaigns`, `previouslyTargeted`, `existingConversations`, `noProfilePhoto`."
                  },
                  "autoTranslate": {
                    "type": "boolean",
                    "description": "Translate messages to each lead's language. LinkedIn only."
                  },
                  "replyAgentId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The AI agent that replies to its leads. `null` when none."
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaign": {
                          "$ref": "#/components/schemas/Campaign"
                        }
                      },
                      "required": [
                        "campaign"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.delete",
        "summary": "Delete campaigns",
        "description": "Deletes campaigns. A running campaign is stopped first.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The campaign IDs."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "type": "integer",
                          "description": "How many were deleted."
                        }
                      },
                      "required": [
                        "deleted"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/overview": {
      "get": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.overview",
        "summary": "Get campaigns overview",
        "description": "Returns totals across all campaigns.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaigns": {
                          "type": "integer",
                          "description": "Campaigns in the workspace."
                        },
                        "prospects": {
                          "type": "integer",
                          "description": "People in your campaigns."
                        },
                        "sent": {
                          "type": "integer",
                          "description": "Messages sent."
                        },
                        "replies": {
                          "type": "integer",
                          "description": "People who replied."
                        },
                        "replyRatePercent": {
                          "type": "number",
                          "description": "Replies per person contacted, from 0 to 100."
                        }
                      },
                      "required": [
                        "campaigns",
                        "prospects",
                        "sent",
                        "replies",
                        "replyRatePercent"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/{campaignId}": {
      "get": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.get",
        "summary": "Get campaign",
        "description": "Returns one campaign.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaign": {
                          "$ref": "#/components/schemas/Campaign"
                        }
                      },
                      "required": [
                        "campaign"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "patch": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.update",
        "summary": "Update campaign",
        "description": "Changes a campaign. Send only the fields you change.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The campaign name."
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "A note about the campaign."
                  },
                  "audience": {
                    "type": "array",
                    "description": "The lead lists it targets.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "leadListId": {
                          "type": "string"
                        },
                        "mode": {
                          "type": "string",
                          "enum": [
                            "include",
                            "exclude"
                          ]
                        },
                        "selection": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "additionalProperties": true
                        }
                      }
                    }
                  },
                  "accountIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The accounts that send for it."
                  },
                  "sequence": {
                    "type": "array",
                    "description": "The steps, in order: `message`, `wait`, `connect` (LinkedIn) or `inmail` (LinkedIn).",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "message",
                            "wait",
                            "connect",
                            "inmail"
                          ]
                        },
                        "variants": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "Message versions. Spin syntax `{Hi|Hey}` and `{{firstName}}` are filled in for each person."
                        },
                        "amount": {
                          "type": "integer",
                          "description": "For `wait`: how long."
                        },
                        "unit": {
                          "type": "string",
                          "enum": [
                            "hours",
                            "days"
                          ],
                          "description": "For `wait`: the unit."
                        },
                        "subject": {
                          "type": "string",
                          "description": "For `inmail`: the subject."
                        }
                      }
                    }
                  },
                  "send": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "When and how fast it sends: `perHour`, `dailyPerAccount`, `timezone`, `schedule`."
                  },
                  "exclusions": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "Who to leave out: `activeCampaigns`, `previouslyTargeted`, `existingConversations`, `noProfilePhoto`."
                  },
                  "autoTranslate": {
                    "type": "boolean",
                    "description": "Translate messages to each lead's language. LinkedIn only."
                  },
                  "replyAgentId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The AI agent that replies to its leads. `null` when none."
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaign": {
                          "$ref": "#/components/schemas/Campaign"
                        }
                      },
                      "required": [
                        "campaign"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/{campaignId}/start": {
      "post": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.start",
        "summary": "Start campaign",
        "description": "Starts a draft campaign. Its targets are worked out now.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaign": {
                          "$ref": "#/components/schemas/Campaign"
                        }
                      },
                      "required": [
                        "campaign"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/{campaignId}/pause": {
      "post": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.pause",
        "summary": "Pause campaign",
        "description": "Pauses a running campaign.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaign": {
                          "$ref": "#/components/schemas/Campaign"
                        }
                      },
                      "required": [
                        "campaign"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/{campaignId}/resume": {
      "post": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.resume",
        "summary": "Resume campaign",
        "description": "Resumes a paused campaign.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaign": {
                          "$ref": "#/components/schemas/Campaign"
                        }
                      },
                      "required": [
                        "campaign"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/{campaignId}/stop": {
      "post": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.stop",
        "summary": "Stop campaign",
        "description": "Stops a campaign for good.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "campaign": {
                          "$ref": "#/components/schemas/Campaign"
                        }
                      },
                      "required": [
                        "campaign"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/{campaignId}/targets": {
      "get": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.listTargets",
        "summary": "List campaign targets",
        "description": "Returns the people in a campaign and where each one stands.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Only targets in this state.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Text to look for in the name or handle.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "The page to return, starting at 1.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The ID."
                              },
                              "prospectId": {
                                "type": "string",
                                "description": "The lead ID."
                              },
                              "platform": {
                                "type": "string",
                                "description": "The network: `x` or `linkedin`."
                              },
                              "handle": {
                                "type": "string",
                                "description": "The username, without a prefix."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name."
                              },
                              "avatarUrl": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Link to the photo."
                              },
                              "status": {
                                "type": "string",
                                "description": "The current state."
                              },
                              "stepIndex": {
                                "type": "integer",
                                "description": "The sequence step the person is on."
                              },
                              "messagesSent": {
                                "type": "integer",
                                "description": "Messages sent from ReachHunt."
                              },
                              "inviteState": {
                                "type": "string",
                                "description": "Where the connection request stands."
                              },
                              "invitedAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time",
                                "description": "When the connection request was sent."
                              },
                              "accountId": {
                                "type": "string",
                                "description": "The connected account."
                              },
                              "conversationId": {
                                "type": "string",
                                "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`."
                              },
                              "lastSentAt": {
                                "type": "string",
                                "format": "date-time",
                                "description": "When the last message went out."
                              },
                              "nextActionAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time",
                                "description": "When the next step is due."
                              },
                              "failedAt": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "format": "date-time",
                                "description": "When it failed."
                              },
                              "replied": {
                                "type": "boolean",
                                "description": "Whether the person replied."
                              },
                              "repliedAt": {
                                "type": "string",
                                "format": "date-time",
                                "description": "When the person replied."
                              },
                              "error": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Why it failed. `null` when it did not."
                              }
                            },
                            "required": [
                              "id",
                              "prospectId",
                              "platform",
                              "handle",
                              "name",
                              "avatarUrl",
                              "status",
                              "stepIndex",
                              "messagesSent",
                              "inviteState",
                              "invitedAt",
                              "accountId",
                              "conversationId",
                              "lastSentAt",
                              "nextActionAt",
                              "failedAt",
                              "replied",
                              "repliedAt",
                              "error"
                            ]
                          }
                        },
                        "page": {
                          "type": "integer",
                          "description": "The page returned."
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used."
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many match, across all pages."
                        },
                        "totalPages": {
                          "type": "integer",
                          "description": "How many pages there are."
                        }
                      },
                      "required": [
                        "items",
                        "page",
                        "limit",
                        "total",
                        "totalPages"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.removeTargets",
        "summary": "Remove campaign targets",
        "description": "Removes people from a campaign. People already messaged are cancelled instead.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "targetIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The targets to remove."
                  },
                  "all": {
                    "type": "boolean",
                    "description": "Remove every target that matches `status` and `search`."
                  },
                  "status": {
                    "type": "string",
                    "description": "With `all`: only targets in this state."
                  },
                  "search": {
                    "type": "string",
                    "description": "With `all`: only targets matching this text."
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "removed": {
                          "type": "integer",
                          "description": "How many were removed."
                        },
                        "skipped": {
                          "type": "integer",
                          "description": "How many could not be removed."
                        }
                      },
                      "required": [
                        "removed",
                        "skipped"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/campaigns/{campaignId}/activity": {
      "get": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "campaigns.activity",
        "summary": "Get campaign activity",
        "description": "Returns messages, replies and connection requests over time.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "description": "The campaign ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "range",
            "in": "query",
            "required": false,
            "description": "The time range. Defaults to `7d`.",
            "schema": {
              "type": "string",
              "enum": [
                "24h",
                "7d",
                "30d"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "range": {
                          "type": "string",
                          "description": "The time range covered."
                        },
                        "points": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "bucket": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "sent": {
                                "type": "integer",
                                "description": "Messages sent."
                              },
                              "replies": {
                                "type": "integer",
                                "description": "People who replied."
                              },
                              "invites": {
                                "type": "integer"
                              }
                            },
                            "required": [
                              "bucket",
                              "label",
                              "sent",
                              "replies",
                              "invites"
                            ],
                            "description": "One entry per time bucket."
                          },
                          "description": "One entry per time bucket."
                        },
                        "sent": {
                          "type": "integer",
                          "description": "Messages sent."
                        },
                        "replies": {
                          "type": "integer",
                          "description": "People who replied."
                        },
                        "invites": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "range",
                        "points",
                        "sent",
                        "replies",
                        "invites"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/tags/{tagId}": {
      "patch": {
        "tags": [
          "Tags"
        ],
        "operationId": "tags.update",
        "summary": "Update tag",
        "description": "Renames or recolors a tag. Send at least one of `label` and `color`.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "tagId",
            "in": "path",
            "required": true,
            "description": "The tag ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "The name, up to 24 characters."
                  },
                  "color": {
                    "type": "string",
                    "description": "A hex color like `#8b5cf6`, or a preset name."
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "tag": {
                          "$ref": "#/components/schemas/Tag"
                        }
                      },
                      "required": [
                        "tag"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Tags"
        ],
        "operationId": "tags.delete",
        "summary": "Delete tag",
        "description": "Deletes a tag and takes it off every conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "tagId",
            "in": "path",
            "required": true,
            "description": "The tag ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "type": "boolean"
                        },
                        "removedFrom": {
                          "type": "integer",
                          "description": "How many conversations had it."
                        }
                      },
                      "required": [
                        "deleted",
                        "removedFrom"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/statuses/{statusId}": {
      "patch": {
        "tags": [
          "Statuses"
        ],
        "operationId": "statuses.update",
        "summary": "Update status",
        "description": "Renames or recolors a status. Send at least one of `label` and `color`.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "statusId",
            "in": "path",
            "required": true,
            "description": "The status ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "The name, up to 24 characters."
                  },
                  "color": {
                    "type": "string",
                    "description": "A hex color like `#8b5cf6`, or a preset name."
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "$ref": "#/components/schemas/Status"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Statuses"
        ],
        "operationId": "statuses.delete",
        "summary": "Delete status",
        "description": "Deletes a status and takes it off every conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "statusId",
            "in": "path",
            "required": true,
            "description": "The status ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "type": "boolean"
                        },
                        "clearedFrom": {
                          "type": "integer",
                          "description": "How many conversations had it."
                        }
                      },
                      "required": [
                        "deleted",
                        "clearedFrom"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/prospects/labels": {
      "post": {
        "tags": [
          "Leads"
        ],
        "operationId": "leads.updateLabels",
        "summary": "Update lead tags",
        "description": "Adds and removes tags on several leads.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The lead IDs."
                  },
                  "add": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Tag IDs to add."
                  },
                  "remove": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Tag IDs to remove."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "applied": {
                          "type": "integer",
                          "description": "Tags added."
                        },
                        "removed": {
                          "type": "integer",
                          "description": "Tags removed."
                        }
                      },
                      "required": [
                        "applied",
                        "removed"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/prospects/status": {
      "post": {
        "tags": [
          "Leads"
        ],
        "operationId": "leads.setStatus",
        "summary": "Set lead status",
        "description": "Puts several leads in one status, or clears it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The lead IDs."
                  },
                  "statusId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The status. Leave it out or send `null` to clear it."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "updated": {
                          "type": "integer",
                          "description": "Leads changed."
                        }
                      },
                      "required": [
                        "updated"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/prospects/{prospectId}/note": {
      "get": {
        "tags": [
          "Leads"
        ],
        "operationId": "leads.getNote",
        "summary": "Get lead note",
        "description": "Returns the note on a lead.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "prospectId",
            "in": "path",
            "required": true,
            "description": "The lead ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "note": {
                          "type": "string",
                          "description": "The note text. An empty string when there is none."
                        },
                        "updatedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time",
                          "description": "When it last changed, in ISO 8601 UTC."
                        }
                      },
                      "required": [
                        "note",
                        "updatedAt"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "put": {
        "tags": [
          "Leads"
        ],
        "operationId": "leads.setNote",
        "summary": "Set lead note",
        "description": "Replaces the note on a lead. An empty string clears it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "prospectId",
            "in": "path",
            "required": true,
            "description": "The lead ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "note": {
                    "type": "string",
                    "description": "The note text."
                  }
                },
                "required": [
                  "note"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "note": {
                          "type": "string",
                          "description": "The note text. An empty string when there is none."
                        },
                        "updatedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time",
                          "description": "When it last changed, in ISO 8601 UTC."
                        }
                      },
                      "required": [
                        "note",
                        "updatedAt"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/prospects/{prospectId}/valuation": {
      "get": {
        "tags": [
          "Leads"
        ],
        "operationId": "leads.getValuation",
        "summary": "Get lead value",
        "description": "Returns the deal value of a lead.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "prospectId",
            "in": "path",
            "required": true,
            "description": "The lead ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "valuation": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "The deal value. `null` when none is set."
                        }
                      },
                      "required": [
                        "valuation"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "put": {
        "tags": [
          "Leads"
        ],
        "operationId": "leads.setValuation",
        "summary": "Set lead value",
        "description": "Sets the deal value of a lead. `null` clears it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "prospectId",
            "in": "path",
            "required": true,
            "description": "The lead ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "valuation": {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                },
                "required": [
                  "valuation"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "valuation": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "The deal value. `null` when none is set."
                        }
                      },
                      "required": [
                        "valuation"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/{leadListId}": {
      "get": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.get",
        "summary": "Get lead list",
        "description": "Returns one lead list with its imports.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "lead": {
                          "$ref": "#/components/schemas/LeadListWithJobs"
                        }
                      },
                      "required": [
                        "lead"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "patch": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.update",
        "summary": "Rename lead list",
        "description": "Renames a lead list.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The new name."
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "lead": {
                          "$ref": "#/components/schemas/LeadListWithJobs"
                        }
                      },
                      "required": [
                        "lead"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/{leadListId}/prospects": {
      "get": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.listLeads",
        "summary": "List leads",
        "description": "Returns the people in a lead list.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Text to look for in the name, handle or headline.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "label",
            "in": "query",
            "required": false,
            "description": "Only leads with this tag ID. Repeat for several.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "The page to return, starting at 1.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Lead"
                          }
                        },
                        "page": {
                          "type": "integer",
                          "description": "The page returned."
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used."
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many match, across all pages."
                        },
                        "totalPages": {
                          "type": "integer",
                          "description": "How many pages there are."
                        },
                        "summary": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "description": "The current state."
                            },
                            "profiles": {
                              "type": "integer",
                              "description": "How many profiles are in the list."
                            },
                            "reachable": {
                              "type": "integer",
                              "description": "How many of those you can send a direct message to."
                            },
                            "totalCount": {
                              "type": "integer",
                              "description": "The total at the source when known. Not the size of the list."
                            },
                            "syncBatch": {
                              "type": "integer",
                              "description": "How many times the list has been filled."
                            },
                            "syncError": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Why the import failed. `null` when it did not."
                            },
                            "platform": {
                              "type": "string",
                              "description": "The network: `x` or `linkedin`."
                            }
                          },
                          "required": [
                            "status",
                            "profiles",
                            "reachable",
                            "totalCount",
                            "syncBatch",
                            "syncError",
                            "platform"
                          ],
                          "description": "Totals for the whole list."
                        },
                        "filter": {
                          "type": "object",
                          "properties": {
                            "matched": {
                              "type": "integer",
                              "description": "How many match the filters."
                            },
                            "reachable": {
                              "type": "integer",
                              "description": "How many of those you can send a direct message to."
                            }
                          },
                          "required": [
                            "matched",
                            "reachable"
                          ],
                          "description": "Counts for the current filters."
                        }
                      },
                      "required": [
                        "items",
                        "page",
                        "limit",
                        "total",
                        "totalPages",
                        "summary",
                        "filter"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.addLeads",
        "summary": "Add leads",
        "description": "Adds people to a lead list by their network ID.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "platformIds": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Network IDs of the people to add."
                  },
                  "accountId": {
                    "type": "string",
                    "description": "Optional. The account used to look them up."
                  }
                },
                "required": [
                  "platformIds"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "prospects": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Lead"
                          }
                        }
                      },
                      "required": [
                        "prospects"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.removeLeads",
        "summary": "Remove leads",
        "description": "Removes people from a lead list.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The lead IDs."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "type": "integer",
                          "description": "How many were removed."
                        }
                      },
                      "required": [
                        "deleted"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/{leadListId}/import": {
      "post": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.startImport",
        "summary": "Start import",
        "description": "Starts filling a lead list from a source, such as an account's followers, a post's likes or a LinkedIn search. The import runs in the background.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceType": {
                    "type": "string",
                    "enum": [
                      "followers",
                      "following",
                      "retweets",
                      "tweet_likes",
                      "tweet_replies",
                      "list_members",
                      "list_followers",
                      "csv",
                      "plain_text",
                      "x_database",
                      "li_group",
                      "li_post_likes",
                      "li_post_comments",
                      "li_following",
                      "li_followers",
                      "li_connections",
                      "li_search",
                      "li_chat",
                      "chat"
                    ],
                    "description": "Where the people come from."
                  },
                  "accountId": {
                    "type": "string",
                    "description": "The account that runs the import."
                  },
                  "targetHandle": {
                    "type": "string",
                    "description": "For account sources: the handle to read from."
                  },
                  "targetTweetId": {
                    "type": "string",
                    "description": "For post sources on X: the post ID."
                  },
                  "postUrl": {
                    "type": "string",
                    "description": "For LinkedIn post sources: the post link."
                  },
                  "search": {
                    "description": "For `li_search`: the search to run."
                  },
                  "content": {
                    "type": "string",
                    "description": "For `csv` and `plain_text`: the file content."
                  },
                  "fileName": {
                    "type": "string",
                    "description": "For `csv`: the file name."
                  },
                  "keyword": {
                    "type": "string",
                    "description": "Optional keyword to keep only matching people."
                  },
                  "filters": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Optional filters for who to keep."
                  },
                  "platform": {
                    "type": "string",
                    "enum": [
                      "x",
                      "linkedin"
                    ],
                    "description": "Optional. Must match the list's network."
                  }
                },
                "required": [
                  "sourceType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "lead": {
                          "$ref": "#/components/schemas/LeadListWithJobs"
                        },
                        "job": {
                          "$ref": "#/components/schemas/ImportJob"
                        },
                        "skipped": {
                          "description": "People left out, when the source reports them."
                        }
                      },
                      "required": [
                        "lead",
                        "job"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/{leadListId}/jobs": {
      "get": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.listImports",
        "summary": "List imports",
        "description": "Returns the imports of a lead list.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "jobs": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ImportJob"
                          }
                        }
                      },
                      "required": [
                        "jobs"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/{leadListId}/jobs/{jobId}/pause": {
      "post": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.pauseImport",
        "summary": "Pause import",
        "description": "Pauses one import.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "description": "The import job ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "lead": {
                          "$ref": "#/components/schemas/LeadListWithJobs"
                        },
                        "job": {
                          "$ref": "#/components/schemas/ImportJob"
                        }
                      },
                      "required": [
                        "lead",
                        "job"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/{leadListId}/jobs/{jobId}/resume": {
      "post": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.resumeImport",
        "summary": "Resume import",
        "description": "Resumes one import.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "description": "The import job ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "lead": {
                          "$ref": "#/components/schemas/LeadListWithJobs"
                        },
                        "job": {
                          "$ref": "#/components/schemas/ImportJob"
                        }
                      },
                      "required": [
                        "lead",
                        "job"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/leads/{leadListId}/jobs/{jobId}/stop": {
      "post": {
        "tags": [
          "Lead lists"
        ],
        "operationId": "leadLists.stopImport",
        "summary": "Stop import",
        "description": "Stops one import.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "leadListId",
            "in": "path",
            "required": true,
            "description": "The lead list ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "description": "The import job ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "lead": {
                          "$ref": "#/components/schemas/LeadListWithJobs"
                        },
                        "job": {
                          "$ref": "#/components/schemas/ImportJob"
                        }
                      },
                      "required": [
                        "lead",
                        "job"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.get",
        "summary": "Get conversation",
        "description": "Returns one conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "conversation": {
                          "$ref": "#/components/schemas/Conversation"
                        }
                      },
                      "required": [
                        "conversation"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.delete",
        "summary": "Delete conversation",
        "description": "Deletes a conversation and its messages.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "type": "boolean"
                        },
                        "messagesDeleted": {
                          "type": "integer",
                          "description": "How many messages were deleted."
                        }
                      },
                      "required": [
                        "deleted",
                        "messagesDeleted"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/get-or-create": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.getOrCreate",
        "summary": "Find or start conversation",
        "description": "Returns the conversation between an account and a person. When there is none yet, a draft is created that becomes a real conversation once you send the first message.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "Optional. The connected account. When left out, one on that network is picked."
                  },
                  "platform": {
                    "type": "string",
                    "enum": [
                      "x",
                      "linkedin"
                    ],
                    "description": "The network. Needed with `platformId`; taken from the lead when you send `prospectId`."
                  },
                  "platformId": {
                    "type": "string",
                    "description": "The person's network ID."
                  },
                  "prospectId": {
                    "type": "string",
                    "description": "Or a lead ID instead of `platform` and `platformId`."
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "conversation": {
                          "$ref": "#/components/schemas/Conversation"
                        },
                        "created": {
                          "type": "boolean",
                          "description": "Whether a new draft was created."
                        },
                        "canDm": {
                          "type": [
                            "boolean",
                            "null"
                          ],
                          "description": "Whether you can send a direct message. `null` when it is not known."
                        },
                        "canSend": {
                          "type": "boolean",
                          "description": "Whether a message can be sent now."
                        },
                        "blockedReason": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Why you cannot send, such as `peer_unreachable` or `inmail_only`. `null` when you can."
                        }
                      },
                      "required": [
                        "conversation",
                        "created",
                        "canDm",
                        "canSend",
                        "blockedReason"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/read": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.read",
        "summary": "Mark as read",
        "description": "Marks a conversation as read.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  }
                },
                "required": [
                  "accountId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "conversationId": {
                          "type": "string",
                          "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`."
                        },
                        "read": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "conversationId",
                        "read"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/unread": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.unread",
        "summary": "Mark as unread",
        "description": "Marks a conversation as unread.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  }
                },
                "required": [
                  "accountId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "conversationId": {
                          "type": "string",
                          "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`."
                        },
                        "read": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "conversationId",
                        "read"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/close": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.close",
        "summary": "Close conversation",
        "description": "Closes a conversation. It leaves the open list.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  }
                },
                "required": [
                  "accountId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "conversationId": {
                          "type": "string",
                          "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`."
                        },
                        "closed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "conversationId",
                        "closed"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/open": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.open",
        "summary": "Reopen conversation",
        "description": "Reopens a closed conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  }
                },
                "required": [
                  "accountId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "conversationId": {
                          "type": "string",
                          "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`."
                        },
                        "closed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "conversationId",
                        "closed"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/requests": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.listRequests",
        "summary": "List requests",
        "description": "Returns message requests and connection invitations waiting for an answer on one account.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "On X: `all`, `priority` or `hidden`. On LinkedIn: `received`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "`nextCursor` from the previous page.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Request"
                          }
                        },
                        "nextCursor": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Pass it as `cursor` to read the next page. `null` on the last page."
                        },
                        "total": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "platform": {
                          "$ref": "#/components/schemas/Platform"
                        },
                        "category": {
                          "type": "string",
                          "description": "The category returned."
                        }
                      },
                      "required": [
                        "items",
                        "nextCursor",
                        "total",
                        "platform",
                        "category"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/requests/{requestId}/action": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "operationId": "conversations.answerRequest",
        "summary": "Answer request",
        "description": "Accepts, ignores, withdraws or deletes a request. Use one of the request's `actions`.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "description": "The request ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "action": {
                    "type": "string",
                    "enum": [
                      "accept",
                      "ignore",
                      "withdraw",
                      "delete"
                    ]
                  },
                  "secret": {
                    "type": "string",
                    "description": "The request's `secret`, for LinkedIn invitations."
                  }
                },
                "required": [
                  "accountId",
                  "action"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "requestId": {
                          "type": "string",
                          "description": "The request ID."
                        },
                        "action": {
                          "type": "string",
                          "description": "What was done."
                        },
                        "ok": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "requestId",
                        "action",
                        "ok"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/messages": {
      "get": {
        "tags": [
          "Messages"
        ],
        "operationId": "messages.list",
        "summary": "List messages",
        "description": "Returns the messages of a conversation, newest first. Paged with a cursor.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "`nextCursor` from the previous page.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Message"
                          }
                        },
                        "campaign": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "description": "The campaign that first contacted this person. `null` when none did.",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            },
                            "firstSentAt": {
                              "type": "string",
                              "format": "date-time"
                            }
                          }
                        },
                        "unreadCount": {
                          "type": "integer",
                          "description": "How many messages you have not read."
                        },
                        "readUpTo": {
                          "type": "string",
                          "description": "Marker of the last message you have read."
                        },
                        "peerReadUpTo": {
                          "type": "string",
                          "description": "Marker of the last message the other person has read."
                        },
                        "nextCursor": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Pass it as `cursor` to read the next page. `null` on the last page."
                        }
                      },
                      "required": [
                        "items",
                        "campaign",
                        "unreadCount",
                        "readUpTo",
                        "peerReadUpTo",
                        "nextCursor"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Messages"
        ],
        "operationId": "messages.send",
        "summary": "Send message",
        "description": "Sends a message in a conversation, or the first message of a draft from Find or start conversation. Send text, a file, or both: use JSON for text, or `multipart/form-data` to attach a file.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "text": {
                    "type": "string",
                    "description": "The message text."
                  },
                  "replyToMessageId": {
                    "type": "string",
                    "description": "Optional. The message to reply to."
                  }
                },
                "required": [
                  "accountId"
                ]
              }
            },
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "accountId"
                ],
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "text": {
                    "type": "string",
                    "description": "The message text."
                  },
                  "replyToMessageId": {
                    "type": "string",
                    "description": "Optional. The message to reply to."
                  },
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "A file to send."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "messageId": {
                          "type": "string",
                          "description": "The new message ID."
                        },
                        "message": {
                          "$ref": "#/components/schemas/Message"
                        }
                      },
                      "required": [
                        "messageId",
                        "message"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/messages/{messageId}": {
      "patch": {
        "tags": [
          "Messages"
        ],
        "operationId": "messages.edit",
        "summary": "Edit message",
        "description": "Edits a message you sent. LinkedIn allows it for a short time after sending.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "messageId",
            "in": "path",
            "required": true,
            "description": "The message ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "text": {
                    "type": "string",
                    "description": "The new text."
                  }
                },
                "required": [
                  "accountId",
                  "text"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "$ref": "#/components/schemas/Message"
                        }
                      },
                      "required": [
                        "message"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Messages"
        ],
        "operationId": "messages.delete",
        "summary": "Delete message",
        "description": "Deletes a message, for you or for everyone.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "messageId",
            "in": "path",
            "required": true,
            "description": "The message ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "forAll",
            "in": "query",
            "required": false,
            "description": "Set to `true` to delete it for everyone.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "deleted": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "The deleted message IDs."
                        },
                        "deleteForAll": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "deleted",
                        "deleteForAll"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/messages/{messageId}/reactions": {
      "post": {
        "tags": [
          "Messages"
        ],
        "operationId": "messages.react",
        "summary": "Add reaction",
        "description": "Reacts to a message with an emoji.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "messageId",
            "in": "path",
            "required": true,
            "description": "The message ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "emoji": {
                    "type": "string",
                    "description": "The emoji."
                  }
                },
                "required": [
                  "accountId",
                  "emoji"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "$ref": "#/components/schemas/Message"
                        }
                      },
                      "required": [
                        "message"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Messages"
        ],
        "operationId": "messages.unreact",
        "summary": "Remove reaction",
        "description": "Removes your reaction from a message.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "messageId",
            "in": "path",
            "required": true,
            "description": "The message ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "emoji",
            "in": "query",
            "required": true,
            "description": "The emoji to remove.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "$ref": "#/components/schemas/Message"
                        }
                      },
                      "required": [
                        "message"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/tags": {
      "post": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.addTag",
        "summary": "Add tag",
        "description": "Puts a tag on the person in a conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "tagId": {
                    "type": "string",
                    "description": "The tag ID."
                  }
                },
                "required": [
                  "accountId",
                  "tagId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "tags": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Tag"
                          }
                        },
                        "applied": {
                          "type": "boolean",
                          "description": "Whether it was new."
                        }
                      },
                      "required": [
                        "tags",
                        "applied"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/tags/{tagId}": {
      "delete": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.removeTag",
        "summary": "Remove tag",
        "description": "Takes a tag off the person in a conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tagId",
            "in": "path",
            "required": true,
            "description": "The tag ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "tags": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Tag"
                          }
                        },
                        "removed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "tags",
                        "removed"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/status": {
      "put": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.setStatus",
        "summary": "Set status",
        "description": "Puts the person in a conversation in a status, or clears it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "statusId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The status. `null` clears it."
                  }
                },
                "required": [
                  "accountId",
                  "statusId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/Status"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "status",
                        "changed"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/note": {
      "get": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.getNote",
        "summary": "Get note",
        "description": "Returns the note on the person in a conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "note": {
                          "type": "string",
                          "description": "The note text. An empty string when there is none."
                        },
                        "updatedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time",
                          "description": "When it last changed, in ISO 8601 UTC."
                        }
                      },
                      "required": [
                        "note",
                        "updatedAt"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "put": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.setNote",
        "summary": "Set note",
        "description": "Replaces the note. An empty string clears it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "note": {
                    "type": "string",
                    "description": "The note text."
                  }
                },
                "required": [
                  "accountId",
                  "note"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "note": {
                          "type": "string",
                          "description": "The note text. An empty string when there is none."
                        },
                        "updatedAt": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time",
                          "description": "When it last changed, in ISO 8601 UTC."
                        }
                      },
                      "required": [
                        "note",
                        "updatedAt"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/valuation": {
      "get": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.getValuation",
        "summary": "Get value",
        "description": "Returns the deal value of the person in a conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "valuation": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "The deal value. `null` when none is set."
                        }
                      },
                      "required": [
                        "valuation"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "put": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.setValuation",
        "summary": "Set value",
        "description": "Sets the deal value. `null` clears it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "valuation": {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                },
                "required": [
                  "accountId",
                  "valuation"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "valuation": {
                          "type": [
                            "number",
                            "null"
                          ],
                          "description": "The deal value. `null` when none is set."
                        }
                      },
                      "required": [
                        "valuation"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/assignee": {
      "get": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.getAssignee",
        "summary": "Get assignee",
        "description": "Returns who the conversation is assigned to.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "assigneeId": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The teammate it is assigned to. `null` when unassigned."
                        }
                      },
                      "required": [
                        "assigneeId"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "put": {
        "tags": [
          "Conversation details"
        ],
        "operationId": "conversations.setAssignee",
        "summary": "Set assignee",
        "description": "Assigns the conversation to a teammate from List assignees, or clears it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "assigneeId": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The teammate. `null` clears it."
                  }
                },
                "required": [
                  "accountId",
                  "assigneeId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "assigneeId": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "The teammate it is assigned to. `null` when unassigned."
                        }
                      },
                      "required": [
                        "assigneeId"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/internal-notes": {
      "get": {
        "tags": [
          "Internal notes"
        ],
        "operationId": "internalNotes.list",
        "summary": "List internal notes",
        "description": "Returns the notes your team left on a conversation. The other person never sees them.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "notes": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/InternalNote"
                          }
                        }
                      },
                      "required": [
                        "notes"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Internal notes"
        ],
        "operationId": "internalNotes.create",
        "summary": "Add internal note",
        "description": "Adds a note for your team.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "body": {
                    "type": "string",
                    "description": "The note text."
                  }
                },
                "required": [
                  "accountId",
                  "body"
                ]
              }
            },
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "accountId",
                  "body"
                ],
                "properties": {
                  "accountId": {
                    "type": "string"
                  },
                  "body": {
                    "type": "string"
                  },
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "A file to attach to the note."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "note": {
                          "$ref": "#/components/schemas/InternalNote"
                        }
                      },
                      "required": [
                        "note"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/internal-notes/{noteId}": {
      "delete": {
        "tags": [
          "Internal notes"
        ],
        "operationId": "internalNotes.delete",
        "summary": "Delete internal note",
        "description": "Deletes a note.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "description": "The note ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "removed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "removed"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/conversations/{conversationId}/scheduled-messages": {
      "get": {
        "tags": [
          "Scheduled messages"
        ],
        "operationId": "scheduled.list",
        "summary": "List scheduled messages",
        "description": "Returns the messages set to send later in a conversation.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "required": true,
            "description": "The connected account the conversation belongs to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ScheduledMessage"
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Scheduled messages"
        ],
        "operationId": "scheduled.create",
        "summary": "Schedule message",
        "description": "Sets a message to send later.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "required": true,
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "description": "The connected account the conversation belongs to."
                  },
                  "text": {
                    "type": "string",
                    "description": "The message text."
                  },
                  "sendAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When to send, in ISO 8601."
                  },
                  "replyToMessageId": {
                    "type": "string",
                    "description": "Optional. The message to reply to."
                  }
                },
                "required": [
                  "accountId",
                  "text",
                  "sendAt"
                ]
              }
            },
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "accountId",
                  "text",
                  "sendAt"
                ],
                "properties": {
                  "accountId": {
                    "type": "string"
                  },
                  "text": {
                    "type": "string"
                  },
                  "sendAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "replyToMessageId": {
                    "type": "string"
                  },
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "A file to send with it."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "$ref": "#/components/schemas/ScheduledMessage"
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/scheduled-messages/{scheduledMessageId}": {
      "patch": {
        "tags": [
          "Scheduled messages"
        ],
        "operationId": "scheduled.update",
        "summary": "Update scheduled message",
        "description": "Changes the text or the time.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "scheduledMessageId",
            "in": "path",
            "required": true,
            "description": "The scheduled message ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "The new text."
                  },
                  "sendAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The new time, in ISO 8601."
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "$ref": "#/components/schemas/ScheduledMessage"
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Scheduled messages"
        ],
        "operationId": "scheduled.cancel",
        "summary": "Cancel scheduled message",
        "description": "Cancels a scheduled message.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "scheduledMessageId",
            "in": "path",
            "required": true,
            "description": "The scheduled message ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "$ref": "#/components/schemas/ScheduledMessage"
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/scheduled-messages/{scheduledMessageId}/send-now": {
      "post": {
        "tags": [
          "Scheduled messages"
        ],
        "operationId": "scheduled.sendNow",
        "summary": "Send now",
        "description": "Sends a scheduled message right away.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "scheduledMessageId",
            "in": "path",
            "required": true,
            "description": "The scheduled message ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "$ref": "#/components/schemas/ScheduledMessage"
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/templates": {
      "get": {
        "tags": [
          "Templates"
        ],
        "operationId": "templates.list",
        "summary": "List templates",
        "description": "Returns your saved messages.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Text to look for in the name or text.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "description": "Only templates for this network.",
            "schema": {
              "type": "string",
              "enum": [
                "x",
                "linkedin"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "The page to return, starting at 1.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Template"
                          }
                        },
                        "page": {
                          "type": "integer",
                          "description": "The page returned."
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used."
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many match, across all pages."
                        },
                        "totalPages": {
                          "type": "integer",
                          "description": "How many pages there are."
                        },
                        "platformCounts": {
                          "type": "object",
                          "properties": {
                            "all": {
                              "type": "integer"
                            },
                            "x": {
                              "type": "integer"
                            },
                            "linkedin": {
                              "type": "integer"
                            }
                          },
                          "required": [
                            "all",
                            "x",
                            "linkedin"
                          ],
                          "description": "How many templates are on each network."
                        },
                        "maxLength": {
                          "type": "integer",
                          "description": "The longest text a template can have."
                        }
                      },
                      "required": [
                        "items",
                        "page",
                        "limit",
                        "total",
                        "totalPages",
                        "platformCounts",
                        "maxLength"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "post": {
        "tags": [
          "Templates"
        ],
        "operationId": "templates.create",
        "summary": "Create template",
        "description": "Saves a message to reuse.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The template name."
                  },
                  "platform": {
                    "type": "string",
                    "enum": [
                      "x",
                      "linkedin"
                    ],
                    "description": "The network. Defaults to `linkedin`."
                  },
                  "variants": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Message versions. One is picked for each person."
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "template": {
                          "$ref": "#/components/schemas/Template"
                        }
                      },
                      "required": [
                        "template"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/templates/{id}": {
      "patch": {
        "tags": [
          "Templates"
        ],
        "operationId": "templates.update",
        "summary": "Update template",
        "description": "Changes a template. Send only the fields you change.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The template ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The new name."
                  },
                  "variants": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "template": {
                          "$ref": "#/components/schemas/Template"
                        }
                      },
                      "required": [
                        "template"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Templates"
        ],
        "operationId": "templates.delete",
        "summary": "Delete template",
        "description": "Deletes a template.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The template ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "removed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "removed"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/templates/{id}/duplicate": {
      "post": {
        "tags": [
          "Templates"
        ],
        "operationId": "templates.duplicate",
        "summary": "Duplicate template",
        "description": "Makes a copy of a template.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The template ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "template": {
                          "$ref": "#/components/schemas/Template"
                        }
                      },
                      "required": [
                        "template"
                      ]
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/credits/info": {
      "get": {
        "tags": [
          "Credits"
        ],
        "operationId": "credits.get",
        "summary": "Get credits",
        "description": "Returns the AI credits of the workspace: what the plan gives, what you bought and what is used.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "totalCredits",
                        "totalCreditsUsed",
                        "monthlyCredits",
                        "monthlyCreditsUsed",
                        "addOnCredits",
                        "addOnCreditsUsed",
                        "resetsAt"
                      ],
                      "properties": {
                        "totalCredits": {
                          "type": "integer",
                          "description": "Monthly credits plus add-on credits."
                        },
                        "totalCreditsUsed": {
                          "type": "integer",
                          "description": "Credits used from that total."
                        },
                        "monthlyCredits": {
                          "type": "integer",
                          "description": "Credits your plan gives each month."
                        },
                        "monthlyCreditsUsed": {
                          "type": "integer",
                          "description": "Monthly credits used this period."
                        },
                        "addOnCredits": {
                          "type": "integer",
                          "description": "Credits you bought on top of the plan."
                        },
                        "addOnCreditsUsed": {
                          "type": "integer",
                          "description": "Add-on credits used."
                        },
                        "resetsAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "When the monthly credits reset, in ISO 8601 UTC."
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/credits/operations": {
      "get": {
        "tags": [
          "Credits"
        ],
        "operationId": "credits.listUsage",
        "summary": "List credit usage",
        "description": "Returns every use of AI credits, newest first.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "The page to return, starting at 1.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "items",
                        "page",
                        "limit",
                        "total",
                        "totalPages"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "id",
                              "feature",
                              "context",
                              "credits",
                              "at"
                            ],
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The entry ID."
                              },
                              "feature": {
                                "type": "string",
                                "description": "What used the credits, such as `inbox_ai_compose`, `message_translate`, `composer_translate`, `template_ai_preview`, `template_ai_variations`, `campaign_message_ai`, `agent_reply`, `agent_classify`, `agent_test_chat`, `lead_import`. New ones can be added."
                              },
                              "context": {
                                "type": [
                                  "object",
                                  "null"
                                ],
                                "additionalProperties": true,
                                "description": "Details about the use, such as the template or agent. Depends on `feature`.",
                                "properties": {
                                  "template": {
                                    "type": "string",
                                    "description": "The template, for template features."
                                  },
                                  "lead": {
                                    "type": "string",
                                    "description": "The lead, for lead features."
                                  },
                                  "agent": {
                                    "type": "string",
                                    "description": "The agent, for agent features."
                                  }
                                }
                              },
                              "credits": {
                                "type": "integer",
                                "description": "Credits spent, as a negative number."
                              },
                              "at": {
                                "type": "string",
                                "format": "date-time",
                                "description": "When they were spent, in ISO 8601 UTC."
                              }
                            }
                          }
                        },
                        "page": {
                          "type": "integer",
                          "description": "The page returned."
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used."
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many entries, across all pages."
                        },
                        "totalPages": {
                          "type": "integer",
                          "description": "How many pages there are."
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/agents": {
      "get": {
        "tags": [
          "Agents"
        ],
        "operationId": "agents.list",
        "summary": "List agents",
        "description": "Returns your AI agents, with how many are in each status.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Text to look for in the name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Only agents in this status.",
            "schema": {
              "type": "string",
              "enum": [
                "draft",
                "live",
                "paused"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "The page to return, starting at 1.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, from 1 to 100. Defaults to 50.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "items",
                        "page",
                        "limit",
                        "total",
                        "totalPages",
                        "statusCounts"
                      ],
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Agent"
                          }
                        },
                        "page": {
                          "type": "integer",
                          "description": "The page returned."
                        },
                        "limit": {
                          "type": "integer",
                          "description": "The page size used."
                        },
                        "total": {
                          "type": "integer",
                          "description": "How many match, across all pages."
                        },
                        "totalPages": {
                          "type": "integer",
                          "description": "How many pages there are."
                        },
                        "statusCounts": {
                          "type": "object",
                          "description": "How many agents are in each status.",
                          "properties": {
                            "all": {
                              "type": "integer"
                            },
                            "draft": {
                              "type": "integer"
                            },
                            "live": {
                              "type": "integer"
                            },
                            "paused": {
                              "type": "integer"
                            }
                          }
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      },
      "delete": {
        "tags": [
          "Agents"
        ],
        "operationId": "agents.delete",
        "summary": "Delete agents",
        "description": "Deletes AI agents. They stop replying right away.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "The agent IDs."
                  }
                },
                "required": [
                  "ids"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "deleted"
                      ],
                      "properties": {
                        "deleted": {
                          "type": "integer",
                          "description": "How many were deleted."
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/agents/{agentId}/pause": {
      "post": {
        "tags": [
          "Agents"
        ],
        "operationId": "agents.pause",
        "summary": "Pause agent",
        "description": "Stops a live agent from replying until you resume it.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "agentId",
            "in": "path",
            "required": true,
            "description": "The agent ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "agent"
                      ],
                      "properties": {
                        "agent": {
                          "$ref": "#/components/schemas/Agent"
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/agents/{agentId}/resume": {
      "post": {
        "tags": [
          "Agents"
        ],
        "operationId": "agents.resume",
        "summary": "Resume agent",
        "description": "Lets a paused agent reply again.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "agentId",
            "in": "path",
            "required": true,
            "description": "The agent ID.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK. Check `status`: errors the API handles itself also return 200.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status",
                    "data",
                    "error"
                  ],
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "`true` when the request succeeded."
                    },
                    "data": {
                      "type": "object",
                      "required": [
                        "agent"
                      ],
                      "properties": {
                        "agent": {
                          "$ref": "#/components/schemas/Agent"
                        }
                      }
                    },
                    "error": {
                      "type": "null",
                      "description": "Always `null` on success."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "402": {
            "$ref": "#/components/responses/PlanRequired"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "Bearer",
        "description": "Your API key, sent as `Authorization: Bearer YOUR_API_KEY`. Create one in **Settings → API**.",
        "x-default": "Bearer YOUR_API_KEY"
      }
    },
    "responses": {
      "Unauthorized": {
        "description": "The API key is missing or not valid.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Failure"
            },
            "example": {
              "status": false,
              "data": null,
              "error": "Not authenticated"
            }
          }
        }
      },
      "PlanRequired": {
        "description": "The workspace has no active plan, or its trial has ended.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Failure"
            },
            "example": {
              "status": false,
              "data": null,
              "error": "Your free trial has ended. Pick a plan to continue."
            }
          }
        }
      },
      "ServerError": {
        "description": "Something failed on our side. Try again.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Failure"
            },
            "example": {
              "status": false,
              "data": null,
              "error": "Something went wrong. Please try again."
            }
          }
        }
      }
    },
    "schemas": {
      "Platform": {
        "type": "string",
        "enum": [
          "x",
          "linkedin"
        ],
        "description": "The network the item belongs to.",
        "examples": [
          "linkedin"
        ]
      },
      "Tag": {
        "type": "object",
        "description": "A label you can put on a conversation.",
        "required": [
          "id",
          "label",
          "color"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The tag ID.",
            "examples": [
              "7c1f0c52-6d1a-4a49-9a63-2b3c4d5e6f70"
            ]
          },
          "label": {
            "type": "string",
            "description": "The tag name, up to 24 characters.",
            "examples": [
              "Hot lead"
            ]
          },
          "color": {
            "type": "string",
            "description": "The tag color as a lowercase six-digit hex value.",
            "examples": [
              "#e24c5d"
            ]
          }
        }
      },
      "Status": {
        "type": "object",
        "description": "A pipeline stage you can put a conversation in. A conversation has at most one.",
        "required": [
          "id",
          "label",
          "color",
          "createdAt"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The status ID.",
            "examples": [
              "b8d1f6f4-3a52-4f3a-8f0b-0c2f6a9d1e11"
            ]
          },
          "label": {
            "type": "string",
            "description": "The status name, up to 24 characters.",
            "examples": [
              "Interested"
            ]
          },
          "color": {
            "type": "string",
            "description": "The status color as a lowercase six-digit hex value.",
            "examples": [
              "#4ede88"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the status was created, in ISO 8601 UTC.",
            "examples": [
              "2026-10-01T09:30:00.000Z"
            ]
          }
        }
      },
      "Participant": {
        "type": "object",
        "description": "The other person in a conversation. Profile details that are not known are `null`. LinkedIn profiles also carry `experience`, `education` and `skills`.",
        "additionalProperties": true,
        "required": [
          "platform",
          "platformId",
          "userName",
          "name",
          "url",
          "profilePicture",
          "headline",
          "canDm",
          "isVerified",
          "followers",
          "following",
          "location",
          "description"
        ],
        "properties": {
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "platformId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID the network gives this person. Always read together with `platform`.",
            "examples": [
              "1876543210987654321"
            ]
          },
          "userName": {
            "type": [
              "string",
              "null"
            ],
            "description": "The handle on X, or the public profile name on LinkedIn, without a prefix.",
            "examples": [
              "janedoe"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The display name.",
            "examples": [
              "Jane Doe"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to the profile on the network.",
            "examples": [
              "https://x.com/janedoe"
            ]
          },
          "profilePicture": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to the profile picture.",
            "examples": [
              "https://example.com/avatars/janedoe.jpg"
            ]
          },
          "headline": {
            "type": [
              "string",
              "null"
            ],
            "description": "The profile headline. LinkedIn only.",
            "examples": [
              "Head of Growth at Northwind"
            ]
          },
          "canDm": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether you can send this person a direct message. `null` when it is not known.",
            "examples": [
              true
            ]
          },
          "isVerified": {
            "type": "boolean",
            "description": "Whether the profile has a verification badge.",
            "examples": [
              false
            ]
          },
          "followers": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Follower count, when the network shares it.",
            "examples": [
              1280
            ]
          },
          "following": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of accounts the person follows, when the network shares it.",
            "examples": [
              340
            ]
          },
          "location": {
            "type": [
              "string",
              "null"
            ],
            "description": "The location on the profile.",
            "examples": [
              "Berlin"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "The bio or about text.",
            "examples": [
              "Growth, partnerships and outbound."
            ]
          },
          "isBlueVerified": {
            "type": "boolean"
          },
          "isVerifiedOrganization": {
            "type": "boolean"
          },
          "verified": {
            "type": [
              "string",
              "null"
            ],
            "description": "The verification badge."
          },
          "verifiedType": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "When the profile was created on the network."
          },
          "coverPicture": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to the cover image."
          },
          "publicIdentifier": {
            "type": [
              "string",
              "null"
            ],
            "description": "The public profile name on LinkedIn."
          },
          "industry": {
            "type": [
              "string",
              "null"
            ]
          },
          "degree": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Connection degree. LinkedIn only."
          },
          "isPremium": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "isInfluencer": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "isCreator": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "type": {
            "type": "string",
            "description": "The kind of profile, such as a person or a company."
          },
          "experience": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            },
            "description": "Jobs on the profile. LinkedIn only."
          },
          "education": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            },
            "description": "Schools on the profile. LinkedIn only."
          },
          "skills": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Skills on the profile. LinkedIn only."
          },
          "phones": {
            "type": "array",
            "items": {},
            "description": "Phone numbers on the profile."
          },
          "websites": {
            "type": "array",
            "items": {},
            "description": "Websites on the profile."
          },
          "honors": {
            "type": "array",
            "items": {},
            "description": "Honors on the profile."
          },
          "birthday": {
            "type": [
              "string",
              "null"
            ]
          },
          "address": {
            "type": [
              "string",
              "null"
            ]
          },
          "connectedSince": {
            "type": [
              "string",
              "null"
            ]
          },
          "hasPublicKey": {
            "type": "boolean"
          },
          "isVerifiedOrganizationAffiliate": {
            "type": "boolean"
          }
        }
      },
      "Conversation": {
        "type": "object",
        "description": "One conversation between a connected account and one person.",
        "required": [
          "conversationId",
          "accountId",
          "platform",
          "type",
          "participantCount",
          "participants",
          "peerUnavailable",
          "tags",
          "statusId",
          "valuation",
          "assigneeId",
          "readUpTo",
          "peerReadUpTo",
          "hasUnread",
          "unreadCount",
          "isClosed",
          "isDraft",
          "sendTyping",
          "lastMessage"
        ],
        "properties": {
          "conversationId": {
            "type": "string",
            "description": "The conversation ID. URL-encode it in paths: X IDs contain `:`.",
            "examples": [
              "1876543210987654321:1900000000000000001"
            ]
          },
          "accountId": {
            "type": "string",
            "description": "The connected account the conversation belongs to.",
            "examples": [
              "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f"
            ]
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "type": {
            "type": "string",
            "enum": [
              "one_to_one"
            ],
            "description": "Always `one_to_one`. Group chats are not listed.",
            "examples": [
              "one_to_one"
            ]
          },
          "participantCount": {
            "type": "integer",
            "description": "How many people are in the conversation, the connected account included.",
            "examples": [
              2
            ]
          },
          "participants": {
            "type": "array",
            "description": "The other people in the conversation.",
            "items": {
              "$ref": "#/components/schemas/Participant"
            }
          },
          "peerUnavailable": {
            "type": "boolean",
            "description": "`true` when the other person's profile can no longer be loaded, for example after they deleted their account.",
            "examples": [
              false
            ]
          },
          "tags": {
            "type": "array",
            "description": "The tags on this conversation.",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "statusId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of the status this conversation is in. `null` when it has none.",
            "examples": [
              "b8d1f6f4-3a52-4f3a-8f0b-0c2f6a9d1e11"
            ]
          },
          "valuation": {
            "type": [
              "number",
              "null"
            ],
            "description": "The deal value you set for this person. `null` when none is set.",
            "examples": [
              1500
            ]
          },
          "assigneeId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of the teammate it is assigned to. `null` when unassigned.",
            "examples": [
              null
            ]
          },
          "readUpTo": {
            "type": [
              "string",
              "null"
            ],
            "description": "Marker of the last message you have read.",
            "examples": [
              "1900000000000000123"
            ]
          },
          "peerReadUpTo": {
            "type": [
              "string",
              "null"
            ],
            "description": "Marker of the last message the other person has read.",
            "examples": [
              "1900000000000000100"
            ]
          },
          "hasUnread": {
            "type": "boolean",
            "description": "Whether there are messages you have not read.",
            "examples": [
              true
            ]
          },
          "unreadCount": {
            "type": "integer",
            "description": "How many messages you have not read.",
            "examples": [
              1
            ]
          },
          "isClosed": {
            "type": "boolean",
            "description": "Whether the conversation is closed.",
            "examples": [
              false
            ]
          },
          "isDraft": {
            "type": "boolean",
            "description": "Always `false` here. Drafts are not listed.",
            "examples": [
              false
            ]
          },
          "sendTyping": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether typing indicators are sent in this conversation. `null` follows the workspace setting.",
            "examples": [
              null
            ]
          },
          "lastMessage": {
            "type": [
              "object",
              "null"
            ],
            "description": "The most recent message. `null` when the conversation has no messages yet.",
            "required": [
              "text",
              "fromMe",
              "seqId",
              "createdAt",
              "attachmentCount",
              "attachmentType",
              "seen"
            ],
            "properties": {
              "text": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The message text. `null` for a message with only an attachment.",
                "examples": [
                  "Thanks, sounds good. Send the details over."
                ]
              },
              "fromMe": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "`true` when the connected account sent it, `false` when the other person did.",
                "examples": [
                  false
                ]
              },
              "seqId": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The network's own reference for the message.",
                "examples": [
                  "1900000000000000123"
                ]
              },
              "createdAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time",
                "description": "When it was sent, in ISO 8601 UTC.",
                "examples": [
                  "2026-10-17T14:05:00.000Z"
                ]
              },
              "attachmentCount": {
                "type": "integer",
                "description": "How many attachments it carries.",
                "examples": [
                  0
                ]
              },
              "attachmentType": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The kind of attachment, such as `image`, `gif`, `video`, `audio` or `file`. `null` when there is none.",
                "examples": [
                  null
                ]
              },
              "seen": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "`true` when the other person has read your last message. `null` when that is not known, or when the last message came from them.",
                "examples": [
                  null
                ]
              }
            }
          }
        }
      },
      "LeadList": {
        "type": "object",
        "description": "A list of people you collected to message.",
        "required": [
          "createdAt",
          "favorite",
          "id",
          "name",
          "platform",
          "profiles",
          "reachable",
          "status",
          "syncBatch",
          "syncError",
          "totalCount"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The lead list ID.",
            "examples": [
              "3f1c2a9e-7b4d-4e2a-9c1f-5d8e6a7b9c0d"
            ]
          },
          "name": {
            "type": "string",
            "description": "The list name.",
            "examples": [
              "SaaS founders"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "syncing",
              "completed",
              "paused",
              "stopped",
              "failed"
            ],
            "description": "Where the import that fills the list stands.",
            "examples": [
              "completed"
            ]
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "profiles": {
            "type": "integer",
            "description": "How many profiles are in the list.",
            "examples": [
              812
            ]
          },
          "reachable": {
            "type": "integer",
            "description": "How many of those profiles you can send a direct message to.",
            "examples": [
              640
            ]
          },
          "totalCount": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The total at the source when it is known, for example everyone who liked a post. This is the source's total, not the size of the list. `null` when it is not known.",
            "examples": [
              1200
            ]
          },
          "syncError": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why the import failed. `null` when it did not.",
            "examples": [
              null
            ]
          },
          "favorite": {
            "type": "boolean",
            "description": "Whether the list is marked as a favorite.",
            "examples": [
              false
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "When the list was created, in ISO 8601 UTC.",
            "examples": [
              "2026-10-05T08:12:00.000Z"
            ]
          },
          "syncBatch": {
            "type": "integer",
            "description": "How many times the list has been filled."
          }
        }
      },
      "SystemLeadList": {
        "type": "object",
        "description": "A read-only list that ships with ReachHunt, such as the X Database.",
        "additionalProperties": true,
        "required": [
          "id",
          "name",
          "description",
          "platform",
          "readOnly",
          "key",
          "profiles",
          "reachable"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The system list ID.",
            "examples": [
              "x-database"
            ]
          },
          "name": {
            "type": "string",
            "description": "The list name.",
            "examples": [
              "X Database"
            ]
          },
          "description": {
            "type": "string",
            "description": "What the list contains.",
            "examples": [
              "Search our prospect database of public profiles on X."
            ]
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "readOnly": {
            "type": "boolean",
            "description": "Always `true`. System lists cannot be changed.",
            "examples": [
              true
            ]
          },
          "key": {
            "type": "string",
            "description": "A stable name for the list."
          },
          "profiles": {
            "type": "integer",
            "description": "How many profiles it has."
          },
          "reachable": {
            "type": [
              "integer",
              "null"
            ],
            "description": "How many you can message. `null` until it is known."
          }
        }
      },
      "Failure": {
        "type": "object",
        "required": [
          "status",
          "data",
          "error"
        ],
        "properties": {
          "status": {
            "type": "boolean",
            "description": "Always `false` for an error."
          },
          "data": {
            "type": "null",
            "description": "Always `null` for an error."
          },
          "error": {
            "type": "string",
            "description": "What went wrong, in plain words."
          }
        }
      },
      "Member": {
        "type": "object",
        "required": [
          "id",
          "name",
          "email",
          "role",
          "status",
          "joinedAt",
          "avatarUrl",
          "permissions"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The member ID. `assigneeId` fields take it.",
            "examples": [
              "r3km7xj9-wq5p-2bvn-hfdt-eoly00000001"
            ]
          },
          "name": {
            "type": "string",
            "description": "The member name.",
            "examples": [
              "Dana Whitfield"
            ]
          },
          "email": {
            "type": "string",
            "description": "The member email.",
            "examples": [
              "dana@acme.com"
            ]
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ],
            "description": "What the member can manage.",
            "examples": [
              "admin"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "accepted",
              "invited",
              "declined"
            ],
            "description": "Whether the member joined or is still invited.",
            "examples": [
              "accepted"
            ]
          },
          "joinedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the member joined, in ISO 8601 UTC. `null` while invited.",
            "examples": [
              "2026-09-02T10:00:00.000Z"
            ]
          },
          "avatarUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to the member photo.",
            "examples": [
              null
            ]
          },
          "permissions": {
            "type": [
              "object",
              "null"
            ],
            "description": "Access per section: `none`, `limited` or `full`. `null` for the owner, who has full access.",
            "properties": {
              "dashboard": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "campaigns": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "blacklist": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "templates": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "leads": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "inbox": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "pipeline": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "agents": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "accounts": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "members": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "developer": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "billing": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              }
            }
          }
        }
      },
      "Account": {
        "type": "object",
        "description": "An X or LinkedIn account connected to the workspace. Messages are sent from one.",
        "additionalProperties": true,
        "required": [
          "id",
          "workspaceId",
          "platform",
          "platformId",
          "handle",
          "status",
          "needsReauth",
          "profile",
          "connectedAt",
          "throttledUntil",
          "tokenExpiresAt",
          "warmup"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The account ID. Conversations carry it as `accountId`.",
            "examples": [
              "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f"
            ]
          },
          "workspaceId": {
            "type": "string",
            "description": "The workspace it belongs to.",
            "examples": [
              "9a1d2c3b-4e5f-4a6b-8c7d-0e1f2a3b4c5d"
            ]
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "platformId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID the network gives the account.",
            "examples": [
              "1566123362161725440"
            ]
          },
          "handle": {
            "type": [
              "string",
              "null"
            ],
            "description": "The username, without a prefix.",
            "examples": [
              "acmecorp"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "connected",
              "needs_reauth"
            ],
            "description": "`needs_reauth` when the account must be connected again in ReachHunt before it can send.",
            "examples": [
              "connected"
            ]
          },
          "needsReauth": {
            "type": "boolean",
            "description": "`true` when `status` is `needs_reauth`.",
            "examples": [
              false
            ]
          },
          "profile": {
            "type": [
              "object",
              "null"
            ],
            "description": "The profile on the network.",
            "additionalProperties": true,
            "properties": {
              "username": {
                "type": [
                  "string",
                  "null"
                ],
                "examples": [
                  "acmecorp"
                ]
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "examples": [
                  "Acme Corp"
                ]
              },
              "avatar": {
                "type": [
                  "string",
                  "null"
                ],
                "examples": [
                  "https://example.com/avatars/acme.jpg"
                ]
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ],
                "examples": [
                  "https://x.com/acmecorp"
                ]
              },
              "followers": {
                "type": [
                  "integer",
                  "null"
                ],
                "examples": [
                  5400
                ]
              },
              "following": {
                "type": [
                  "integer",
                  "null"
                ],
                "examples": [
                  210
                ]
              },
              "banner": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Link to the banner image."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The bio or about text."
              },
              "headline": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The profile headline. LinkedIn only."
              },
              "location": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The location on the profile."
              },
              "connections": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Connection count. LinkedIn only."
              },
              "tweets": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Post count. X only."
              },
              "verified": {
                "type": "string",
                "enum": [
                  "blue",
                  "gold",
                  "none"
                ],
                "description": "The verification badge."
              },
              "isVerified": {
                "type": "boolean"
              },
              "isBlueVerified": {
                "type": "boolean"
              },
              "verifiedType": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The kind of badge the network reports."
              },
              "isPremium": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Whether the account has a paid plan on the network."
              },
              "canDm": {
                "type": [
                  "boolean",
                  "null"
                ],
                "description": "Whether the account can send direct messages."
              },
              "createdAt": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "When the account was created on the network."
              }
            }
          },
          "connectedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When it was connected, in ISO 8601 UTC.",
            "examples": [
              "2026-09-01T09:00:00.000Z"
            ]
          },
          "throttledUntil": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Sending is paused until this time to keep the account safe. `null` when it is not paused.",
            "examples": [
              null
            ]
          },
          "tokenExpiresAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the account's sign-in expires, in ISO 8601 UTC. `null` when it does not expire."
          },
          "warmup": {
            "$ref": "#/components/schemas/Warmup"
          }
        }
      },
      "Warmup": {
        "type": "object",
        "description": "Warm-up raises the limits step by step on a new account.",
        "required": [
          "active",
          "speed",
          "totalDays",
          "day",
          "progressPercent",
          "startedAt"
        ],
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Whether the account is warming up now.",
            "examples": [
              true
            ]
          },
          "speed": {
            "type": "string",
            "enum": [
              "fast",
              "medium",
              "slow"
            ],
            "description": "How fast the limits rise.",
            "examples": [
              "slow"
            ]
          },
          "totalDays": {
            "type": "integer",
            "description": "How many days the warm-up takes.",
            "examples": [
              28
            ]
          },
          "day": {
            "type": "integer",
            "description": "The current day of the warm-up.",
            "examples": [
              6
            ]
          },
          "progressPercent": {
            "type": "integer",
            "description": "How far the warm-up is, from 0 to 100.",
            "examples": [
              21
            ]
          },
          "startedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the warm-up started, in ISO 8601 UTC.",
            "examples": [
              "2026-10-12T09:00:00.000Z"
            ]
          }
        }
      },
      "Budget": {
        "type": "object",
        "description": "How much of one kind of action the account can still do.",
        "required": [
          "weekly",
          "dailyAllowance",
          "usedToday",
          "usedWeek",
          "remainingToday",
          "remainingWeek"
        ],
        "properties": {
          "weekly": {
            "type": "integer",
            "description": "The weekly limit in effect now, warm-up included.",
            "examples": [
              80
            ]
          },
          "dailyAllowance": {
            "type": "integer",
            "description": "How many can go out today.",
            "examples": [
              16
            ]
          },
          "usedToday": {
            "type": "integer",
            "description": "Used today.",
            "examples": [
              4
            ]
          },
          "usedWeek": {
            "type": "integer",
            "description": "Used in the last 7 days.",
            "examples": [
              31
            ]
          },
          "remainingToday": {
            "type": "integer",
            "description": "Left for today.",
            "examples": [
              12
            ]
          },
          "remainingWeek": {
            "type": "integer",
            "description": "Left for the week.",
            "examples": [
              49
            ]
          }
        }
      },
      "LinkedInLimits": {
        "type": "object",
        "title": "LinkedIn",
        "additionalProperties": true,
        "required": [
          "accountId",
          "handle",
          "platform",
          "settings",
          "effective",
          "warmup",
          "throttle",
          "acceptance"
        ],
        "properties": {
          "accountId": {
            "type": "string",
            "examples": [
              "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f"
            ]
          },
          "handle": {
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "jane-doe"
            ]
          },
          "platform": {
            "type": "string",
            "enum": [
              "linkedin"
            ]
          },
          "settings": {
            "type": "object",
            "description": "The weekly limits set for the account.",
            "additionalProperties": true,
            "properties": {
              "weeklyConnectionRequests": {
                "type": "integer",
                "description": "Connection requests per week.",
                "examples": [
                  100
                ]
              },
              "weeklyInmails": {
                "type": "integer",
                "description": "InMails per week.",
                "examples": [
                  30
                ]
              },
              "weeklyDirectMessages": {
                "type": "integer",
                "description": "Messages to connections per week.",
                "examples": [
                  300
                ]
              },
              "warmup": {
                "type": "boolean",
                "description": "Whether warm-up is on."
              },
              "warmupSpeed": {
                "type": "string",
                "enum": [
                  "fast",
                  "medium",
                  "slow"
                ]
              }
            }
          },
          "effective": {
            "type": "object",
            "description": "What is left for each kind of action, today and this week.",
            "properties": {
              "connection_request": {
                "$ref": "#/components/schemas/Budget"
              },
              "inmail": {
                "$ref": "#/components/schemas/Budget"
              },
              "direct_message": {
                "$ref": "#/components/schemas/Budget"
              }
            }
          },
          "warmup": {
            "$ref": "#/components/schemas/Warmup"
          },
          "throttle": {
            "type": [
              "object",
              "null"
            ],
            "description": "Set when sending is paused to keep the account safe. `null` otherwise.",
            "properties": {
              "until": {
                "type": "string",
                "format": "date-time"
              },
              "scope": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "reason": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "acceptance": {
            "type": "object",
            "description": "How many connection requests were accepted lately.",
            "properties": {
              "invited": {
                "type": "integer",
                "description": "Requests sent in the window.",
                "examples": [
                  120
                ]
              },
              "accepted": {
                "type": "integer",
                "description": "Requests accepted in the window.",
                "examples": [
                  42
                ]
              },
              "ratePercent": {
                "type": [
                  "integer",
                  "null"
                ],
                "description": "Acceptance rate from 0 to 100. `null` until there is enough data.",
                "examples": [
                  35
                ]
              },
              "limitPercent": {
                "type": "integer",
                "description": "Share of the connection request limit in use because of the acceptance rate, from 0 to 100.",
                "examples": [
                  100
                ]
              }
            }
          },
          "ranges": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "min": {
                  "type": "integer"
                },
                "max": {
                  "type": "integer"
                }
              },
              "description": "The lowest and highest value this setting accepts."
            },
            "description": "The lowest and highest value each setting accepts."
          },
          "warmupDays": {
            "type": "object",
            "description": "How many days a warm-up takes at each speed.",
            "properties": {
              "fast": {
                "type": "integer",
                "description": "Days at `fast` speed."
              },
              "medium": {
                "type": "integer",
                "description": "Days at `medium` speed."
              },
              "slow": {
                "type": "integer",
                "description": "Days at `slow` speed."
              }
            }
          },
          "mode": {
            "type": "string",
            "description": "How limits are applied."
          },
          "defaults": {
            "type": "object",
            "additionalProperties": true,
            "description": "The workspace defaults for each weekly limit."
          },
          "pacing": {
            "type": "object",
            "properties": {
              "nextAllowedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time",
                "description": "When the next action can go out."
              }
            }
          },
          "backlog": {
            "type": "object",
            "description": "Connection requests still waiting for an answer.",
            "properties": {
              "pending": {
                "type": "integer",
                "description": "Requests waiting."
              },
              "checkedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time",
                "description": "When the count was last checked."
              },
              "ceiling": {
                "type": "integer",
                "description": "The most that can wait before sending slows down."
              }
            }
          }
        }
      },
      "XLimits": {
        "type": "object",
        "title": "X",
        "additionalProperties": true,
        "required": [
          "accountId",
          "handle",
          "platform",
          "settings",
          "warmup",
          "pace",
          "usedToday"
        ],
        "properties": {
          "accountId": {
            "type": "string",
            "examples": [
              "4f1c9a2e-6b7d-4c3a-9e51-0a8b7c6d5e4f"
            ]
          },
          "handle": {
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "acmecorp"
            ]
          },
          "platform": {
            "type": "string",
            "enum": [
              "x"
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "dailyDmLimit": {
                "type": "integer",
                "description": "New people the account can message per day.",
                "examples": [
                  50
                ]
              },
              "warmup": {
                "type": "boolean",
                "description": "Whether warm-up is on."
              },
              "warmupSpeed": {
                "type": "string",
                "enum": [
                  "fast",
                  "medium",
                  "slow"
                ]
              }
            }
          },
          "warmup": {
            "$ref": "#/components/schemas/Warmup"
          },
          "pace": {
            "type": "object",
            "description": "How many messages can go out per hour.",
            "properties": {
              "perHour": {
                "type": "integer",
                "description": "The hourly limit now.",
                "examples": [
                  4
                ]
              },
              "startPerHour": {
                "type": "integer",
                "description": "The hourly limit the warm-up started from.",
                "examples": [
                  2
                ]
              },
              "maxPerHour": {
                "type": "integer",
                "description": "The hourly limit at the end of the warm-up.",
                "examples": [
                  10
                ]
              },
              "reachesMaxAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time",
                "description": "When the hourly limit reaches its maximum."
              }
            }
          },
          "usedToday": {
            "type": "integer",
            "description": "New people messaged today.",
            "examples": [
              12
            ]
          },
          "ranges": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "min": {
                  "type": "integer"
                },
                "max": {
                  "type": "integer"
                }
              },
              "description": "The lowest and highest value this setting accepts."
            },
            "description": "The lowest and highest value each setting accepts."
          },
          "warmupDays": {
            "type": "object",
            "description": "How many days a warm-up takes at each speed.",
            "properties": {
              "fast": {
                "type": "integer",
                "description": "Days at `fast` speed."
              },
              "medium": {
                "type": "integer",
                "description": "Days at `medium` speed."
              },
              "slow": {
                "type": "integer",
                "description": "Days at `slow` speed."
              }
            }
          }
        }
      },
      "WorkspaceSummary": {
        "type": "object",
        "required": [
          "workspaceId",
          "name",
          "logoUrl",
          "ownerName",
          "role",
          "permissions",
          "accounts",
          "campaigns",
          "leadLists",
          "members"
        ],
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The workspace ID.",
            "examples": [
              "16a8d98f-70b1-45c7-aba0-c638be37a1f2"
            ]
          },
          "name": {
            "type": "string",
            "description": "The workspace name.",
            "examples": [
              "Acme Growth"
            ]
          },
          "logoUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to the workspace logo. `null` when none is set.",
            "examples": [
              null
            ]
          },
          "ownerName": {
            "type": [
              "string",
              "null"
            ],
            "description": "The name of the workspace owner.",
            "examples": [
              "Dana Whitfield"
            ]
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ],
            "description": "Your role in the workspace. Always `owner` with an API key.",
            "examples": [
              "owner"
            ]
          },
          "permissions": {
            "type": [
              "object",
              "null"
            ],
            "description": "Access per section: `none`, `limited` or `full`.",
            "properties": {
              "dashboard": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "campaigns": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "blacklist": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "templates": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "leads": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "inbox": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "pipeline": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "agents": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "accounts": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "members": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "developer": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "billing": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              }
            }
          },
          "accounts": {
            "type": "integer",
            "description": "Connected accounts.",
            "examples": [
              3
            ]
          },
          "campaigns": {
            "type": "integer",
            "description": "Campaigns.",
            "examples": [
              5
            ]
          },
          "leadLists": {
            "type": "integer",
            "description": "Lead lists.",
            "examples": [
              8
            ]
          },
          "members": {
            "type": "integer",
            "description": "People in the workspace, the owner included.",
            "examples": [
              2
            ]
          }
        }
      },
      "Workspace": {
        "type": "object",
        "required": [
          "workspaceId",
          "name",
          "logoUrl",
          "ownerName",
          "role",
          "permissions",
          "subscription",
          "lock"
        ],
        "properties": {
          "workspaceId": {
            "type": "string",
            "description": "The workspace ID.",
            "examples": [
              "16a8d98f-70b1-45c7-aba0-c638be37a1f2"
            ]
          },
          "name": {
            "type": "string",
            "description": "The workspace name.",
            "examples": [
              "Acme Growth"
            ]
          },
          "logoUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to the workspace logo. `null` when none is set.",
            "examples": [
              null
            ]
          },
          "ownerName": {
            "type": [
              "string",
              "null"
            ],
            "description": "The name of the workspace owner.",
            "examples": [
              "Dana Whitfield"
            ]
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "member"
            ],
            "description": "Your role in the workspace. Always `owner` with an API key.",
            "examples": [
              "owner"
            ]
          },
          "permissions": {
            "type": [
              "object",
              "null"
            ],
            "description": "Access per section: `none`, `limited` or `full`.",
            "properties": {
              "dashboard": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "campaigns": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "blacklist": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "templates": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "leads": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "inbox": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "pipeline": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "agents": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "accounts": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "members": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "developer": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              },
              "billing": {
                "type": "string",
                "enum": [
                  "none",
                  "limited",
                  "full"
                ]
              }
            }
          },
          "subscription": {
            "type": [
              "object",
              "null"
            ],
            "description": "The current plan. `null` when there is none.",
            "additionalProperties": true,
            "properties": {
              "plan": {
                "type": "string",
                "examples": [
                  "growth"
                ]
              },
              "accounts": {
                "type": "integer",
                "description": "Accounts the plan allows.",
                "examples": [
                  5
                ]
              },
              "cycle": {
                "type": "string",
                "examples": [
                  "monthly"
                ]
              },
              "startedAt": {
                "type": "string",
                "format": "date-time"
              },
              "expiresAt": {
                "type": "string",
                "format": "date-time"
              },
              "autoRenew": {
                "type": "boolean"
              },
              "renewsAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "hasSubscription": {
                "type": "boolean",
                "description": "Whether a paid subscription is running."
              },
              "trialEndsAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time",
                "description": "When the free trial ends. `null` when there is none."
              },
              "status": {
                "type": "string",
                "description": "The subscription state, such as `active` or `trialing`."
              }
            }
          },
          "lock": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "trial",
              "plan",
              null
            ],
            "description": "Why the workspace is locked: `trial` when the trial ended, `plan` when there is no active plan. `null` when it is open.",
            "examples": [
              null
            ]
          }
        }
      },
      "Reaction": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "emoji": {
            "type": "string",
            "description": "The emoji."
          },
          "senderPlatformId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The network ID of whoever reacted."
          }
        }
      },
      "Attachment": {
        "type": "object",
        "additionalProperties": true,
        "description": "A file or media item. Fields depend on the kind.",
        "properties": {
          "kind": {
            "type": "string",
            "description": "What it is, such as `media` or `card`."
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "The media type, such as `image`, `video` or `file`."
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to download it."
          },
          "filename": {
            "type": [
              "string",
              "null"
            ]
          },
          "width": {
            "type": [
              "integer",
              "null"
            ]
          },
          "height": {
            "type": [
              "integer",
              "null"
            ]
          }
        }
      },
      "SentBy": {
        "type": [
          "object",
          "null"
        ],
        "description": "Who on your side sent it: a teammate, a campaign or an agent. `null` for incoming messages or ones sent outside ReachHunt.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "member",
              "campaign",
              "agent"
            ],
            "description": "Who sent it."
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The teammate, campaign or agent ID."
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "avatarUrl": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "Message": {
        "type": "object",
        "required": [
          "messageId",
          "seqId",
          "senderPlatformId",
          "fromMe",
          "text",
          "edited",
          "deleted",
          "reactions",
          "attachments",
          "replyTo",
          "seen",
          "seenAt",
          "createdAt"
        ],
        "properties": {
          "messageId": {
            "type": "string",
            "description": "The message ID."
          },
          "seqId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The network's own reference for the message."
          },
          "senderPlatformId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The network ID of whoever sent it."
          },
          "fromMe": {
            "type": "boolean",
            "description": "`true` when the connected account sent it."
          },
          "text": {
            "type": [
              "string",
              "null"
            ],
            "description": "The message text."
          },
          "edited": {
            "type": "boolean",
            "description": "Whether it was edited."
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether it was deleted."
          },
          "reactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "description": "Reactions on the message."
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "description": "Files, images and other media on the message."
          },
          "replyTo": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true,
            "description": "The message this one replies to. `null` when it is not a reply."
          },
          "seen": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "`true` when the other person has read it. `null` when that is not known."
          },
          "seenAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the other person read it, in ISO 8601 UTC."
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When it was sent, in ISO 8601 UTC."
          },
          "sentBy": {
            "$ref": "#/components/schemas/SentBy"
          }
        }
      },
      "InternalNote": {
        "type": "object",
        "description": "A note only your team sees.",
        "required": [
          "id",
          "body",
          "attachment",
          "author",
          "createdAt",
          "canDelete"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The note ID."
          },
          "body": {
            "type": "string",
            "description": "The note text."
          },
          "attachment": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "url": {
                "type": "string"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "size": {
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "description": "The attached file. `null` when none."
          },
          "author": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "avatarUrl": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "description": "Who wrote it."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "When it was created, in ISO 8601 UTC."
          },
          "canDelete": {
            "type": "boolean",
            "description": "Whether you can delete it."
          }
        }
      },
      "ScheduledMessage": {
        "type": "object",
        "description": "A message set to send later.",
        "required": [
          "id",
          "accountId",
          "conversationId",
          "text",
          "sendAt",
          "status",
          "error",
          "replyToMessageId",
          "attachment",
          "authorUserId",
          "createdAt"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The scheduled message ID."
          },
          "accountId": {
            "type": "string",
            "description": "The connected account."
          },
          "conversationId": {
            "type": "string",
            "description": "The conversation it goes to."
          },
          "text": {
            "type": "string",
            "description": "The message text."
          },
          "sendAt": {
            "type": "string",
            "format": "date-time",
            "description": "When it sends, in ISO 8601 UTC."
          },
          "status": {
            "type": "string",
            "enum": [
              "scheduled",
              "sending",
              "sent",
              "failed",
              "cancelled"
            ],
            "description": "Where it stands. A `failed` message can still be changed and sent again."
          },
          "error": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why it failed. `null` when it did not."
          },
          "replyToMessageId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The message it replies to."
          },
          "attachment": {
            "type": [
              "object",
              "null"
            ],
            "description": "The attached file. `null` when none.",
            "properties": {
              "url": {
                "type": "string"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "type": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "size": {
                "type": [
                  "integer",
                  "null"
                ]
              }
            }
          },
          "authorUserId": {
            "type": "string",
            "description": "The teammate who scheduled it."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "When it was created, in ISO 8601 UTC."
          }
        }
      },
      "ImportJob": {
        "type": "object",
        "description": "One import that fills a lead list.",
        "additionalProperties": true,
        "properties": {
          "id": {
            "type": "string",
            "description": "The import job ID."
          },
          "sourceType": {
            "type": "string",
            "description": "Where the people come from, such as `followers` or `li_search`."
          },
          "targetHandle": {
            "type": [
              "string",
              "null"
            ],
            "description": "The account the import reads from."
          },
          "targetTweetId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The post the import reads from."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "syncing",
              "completed",
              "paused",
              "stopped",
              "failed"
            ],
            "description": "Where the import stands."
          },
          "syncedCount": {
            "type": "integer",
            "description": "People read so far."
          },
          "profiles": {
            "type": "integer",
            "description": "People added to the list."
          },
          "reachable": {
            "type": "integer",
            "description": "Of those, people you can message."
          },
          "totalCount": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The total at the source when known."
          },
          "error": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why it failed. `null` when it did not."
          },
          "accountId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The account that runs the import."
          },
          "startedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "stoppedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "targetName": {
            "type": [
              "string",
              "null"
            ],
            "description": "The display name of the account or post the import reads from."
          },
          "targetAvatarUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to that account's photo."
          },
          "syncBatch": {
            "type": "integer",
            "description": "Which fill of the list this import belongs to."
          },
          "scannedCount": {
            "type": "integer",
            "description": "People looked at. Larger than `profiles` when a filter leaves some out."
          },
          "isFiltered": {
            "type": "boolean",
            "description": "Whether a filter limits who is added."
          }
        }
      },
      "Request": {
        "type": "object",
        "description": "A message request or connection invitation waiting for an answer.",
        "required": [
          "id",
          "platform",
          "kind",
          "text",
          "subtitle",
          "name",
          "handle",
          "avatarUrl",
          "profileUrl",
          "createdAt",
          "secret",
          "actions"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The request ID."
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "kind": {
            "type": "string",
            "enum": [
              "message",
              "invitation"
            ],
            "description": "A message request or a connection invitation."
          },
          "text": {
            "type": [
              "string",
              "null"
            ],
            "description": "The message that came with it."
          },
          "subtitle": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "handle": {
            "type": [
              "string",
              "null"
            ]
          },
          "avatarUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "profileUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "secret": {
            "type": [
              "string",
              "null"
            ],
            "description": "Pass it back as `secret` when you answer a LinkedIn invitation."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "accept",
                "ignore",
                "withdraw",
                "delete"
              ]
            },
            "description": "What you can do with it."
          }
        }
      },
      "Campaign": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID."
          },
          "name": {
            "type": "string",
            "description": "The name."
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "platform": {
            "type": "string",
            "description": "The network: `x` or `linkedin`."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "scheduled",
              "running",
              "paused",
              "completed",
              "stopped",
              "failed"
            ],
            "description": "Where the campaign stands."
          },
          "audience": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "include",
                    "exclude"
                  ],
                  "description": "Whether the list adds people or removes them."
                },
                "count": {
                  "type": "integer"
                },
                "total": {
                  "type": "integer",
                  "description": "How many match, across all pages."
                },
                "selection": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "additionalProperties": true,
                  "description": "Only some people from the list. `null` means the whole list."
                },
                "leadListId": {
                  "type": "string",
                  "description": "The lead list it was added through."
                },
                "leadListName": {
                  "type": "string"
                },
                "preview": {
                  "type": "array",
                  "items": {}
                }
              },
              "required": [
                "mode",
                "count",
                "total",
                "selection",
                "leadListId",
                "leadListName",
                "preview"
              ]
            },
            "description": "The lead lists it targets."
          },
          "accountIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The accounts that send for it."
            },
            "description": "The accounts that send for it."
          },
          "sequence": {
            "type": "array",
            "description": "The steps, in order: `message`, `wait`, `connect` (LinkedIn) or `inmail` (LinkedIn).",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "id": {
                  "type": "string"
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "message",
                    "wait",
                    "connect",
                    "inmail"
                  ]
                },
                "variants": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Message versions. Spin syntax `{Hi|Hey}` and `{{firstName}}` are filled in for each person."
                },
                "amount": {
                  "type": "integer",
                  "description": "For `wait`: how long."
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    "hours",
                    "days"
                  ],
                  "description": "For `wait`: the unit."
                },
                "subject": {
                  "type": "string",
                  "description": "For `inmail`: the subject."
                }
              }
            }
          },
          "exclusions": {
            "type": "object",
            "properties": {
              "activeCampaigns": {
                "type": "boolean"
              },
              "previouslyTargeted": {
                "type": "boolean"
              },
              "existingConversations": {
                "type": "boolean"
              },
              "noProfilePhoto": {
                "type": "boolean"
              }
            },
            "required": [
              "activeCampaigns",
              "previouslyTargeted",
              "existingConversations",
              "noProfilePhoto"
            ],
            "description": "Who to leave out when it starts."
          },
          "exclusionSkips": {
            "type": "object",
            "properties": {
              "noProfilePhoto": {
                "type": "integer"
              },
              "activeCampaigns": {
                "type": "integer"
              },
              "previouslyTargeted": {
                "type": "integer"
              },
              "existingConversations": {
                "type": "integer"
              }
            },
            "required": [
              "noProfilePhoto",
              "activeCampaigns",
              "previouslyTargeted",
              "existingConversations"
            ],
            "description": "How many people each exclusion left out."
          },
          "autoTranslate": {
            "type": "boolean",
            "description": "Translate messages to each lead's language. LinkedIn only."
          },
          "replyAgentId": {
            "type": "string",
            "description": "The AI agent that replies to its leads. `null` when none."
          },
          "send": {
            "type": "object",
            "properties": {
              "perHour": {
                "type": "integer"
              },
              "dailyPerAccount": {
                "type": "integer"
              },
              "timezone": {
                "type": "string"
              },
              "schedule": {
                "type": "array",
                "description": "One entry per weekday, 0 is Sunday.",
                "items": {
                  "type": "object",
                  "properties": {
                    "day": {
                      "type": "integer"
                    },
                    "enabled": {
                      "type": "boolean"
                    },
                    "startHour": {
                      "type": "integer"
                    },
                    "endHour": {
                      "type": "integer"
                    }
                  }
                }
              }
            },
            "required": [
              "perHour",
              "dailyPerAccount",
              "timezone",
              "schedule"
            ],
            "description": "When and how fast it sends."
          },
          "metrics": {
            "type": "object",
            "properties": {
              "targets": {
                "type": "integer",
                "description": "People the campaign targets."
              },
              "contacted": {
                "type": "integer",
                "description": "People messaged at least once."
              },
              "sent": {
                "type": "integer",
                "description": "Messages sent."
              },
              "invitesSent": {
                "type": "integer",
                "description": "Connection requests sent."
              },
              "accepted": {
                "type": "integer",
                "description": "Connection requests accepted."
              },
              "replies": {
                "type": "integer",
                "description": "People who replied."
              },
              "failed": {
                "type": "integer",
                "description": "People the campaign could not reach."
              }
            },
            "required": [
              "targets",
              "contacted",
              "sent",
              "invitesSent",
              "accepted",
              "replies",
              "failed"
            ],
            "description": "Counters for the campaign."
          },
          "progressPercent": {
            "type": "integer",
            "description": "How far it is, from 0 to 100."
          },
          "estimatedHours": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Hours left to reach everyone. `null` when it cannot be worked out."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "When it was created, in ISO 8601 UTC."
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "description": "When it started, in ISO 8601 UTC."
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "description": "When it finished, in ISO 8601 UTC."
          },
          "pauseReason": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why it is paused. `null` when it is not."
          },
          "sendWindow": {
            "type": [
              "object",
              "null"
            ],
            "description": "When sending opens and closes today.",
            "properties": {
              "opensAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "closesAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            }
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "platform",
          "status",
          "audience",
          "accountIds",
          "sequence",
          "exclusions",
          "exclusionSkips",
          "autoTranslate",
          "replyAgentId",
          "send",
          "metrics",
          "progressPercent",
          "estimatedHours",
          "createdAt",
          "startedAt",
          "completedAt",
          "pauseReason",
          "sendWindow"
        ],
        "description": "A campaign: who it targets, which accounts send, the message sequence and its counters."
      },
      "LeadListWithJobs": {
        "type": "object",
        "description": "A list of people you collected to message.",
        "required": [
          "createdAt",
          "favorite",
          "id",
          "name",
          "platform",
          "profiles",
          "reachable",
          "status",
          "syncBatch",
          "syncError",
          "totalCount"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The lead list ID.",
            "examples": [
              "3f1c2a9e-7b4d-4e2a-9c1f-5d8e6a7b9c0d"
            ]
          },
          "name": {
            "type": "string",
            "description": "The list name.",
            "examples": [
              "SaaS founders"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "syncing",
              "completed",
              "paused",
              "stopped",
              "failed"
            ],
            "description": "Where the import that fills the list stands.",
            "examples": [
              "completed"
            ]
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "profiles": {
            "type": "integer",
            "description": "How many profiles are in the list.",
            "examples": [
              812
            ]
          },
          "reachable": {
            "type": "integer",
            "description": "How many of those profiles you can send a direct message to.",
            "examples": [
              640
            ]
          },
          "totalCount": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The total at the source when it is known, for example everyone who liked a post. This is the source's total, not the size of the list. `null` when it is not known.",
            "examples": [
              1200
            ]
          },
          "syncError": {
            "type": [
              "string",
              "null"
            ],
            "description": "Why the import failed. `null` when it did not.",
            "examples": [
              null
            ]
          },
          "favorite": {
            "type": "boolean",
            "description": "Whether the list is marked as a favorite.",
            "examples": [
              false
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "When the list was created, in ISO 8601 UTC.",
            "examples": [
              "2026-10-05T08:12:00.000Z"
            ]
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportJob"
            },
            "description": "Its imports."
          },
          "syncBatch": {
            "type": "integer",
            "description": "How many times the list has been filled."
          }
        }
      },
      "Lead": {
        "type": "object",
        "properties": {
          "canDm": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether you can send a direct message. `null` when it is not known."
          },
          "followers": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Follower count, when the network shares it."
          },
          "following": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Accounts followed, when the network shares it."
          },
          "tweets": {
            "type": [
              "integer",
              "null"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When it was created, in ISO 8601 UTC."
          },
          "verified": {
            "type": [
              "string",
              "null"
            ]
          },
          "isVerified": {
            "type": "boolean"
          },
          "isBlueVerified": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "profileType": {
            "type": [
              "string",
              "null"
            ]
          },
          "degree": {
            "type": [
              "integer",
              "null"
            ]
          },
          "isPremium": {
            "type": "boolean"
          },
          "headline": {
            "type": "string",
            "description": "The profile headline. LinkedIn only."
          },
          "currentCompany": {
            "type": [
              "string",
              "null"
            ]
          },
          "industry": {
            "type": [
              "string",
              "null"
            ]
          },
          "positions": {
            "type": "array",
            "items": {}
          },
          "careerStartedOn": {
            "type": [
              "string",
              "null"
            ]
          },
          "experience": {
            "type": [
              "object",
              "null"
            ]
          },
          "seniority": {
            "type": [
              "string",
              "null"
            ]
          },
          "education": {
            "type": "array",
            "items": {}
          },
          "skills": {
            "type": "array",
            "items": {}
          },
          "languages": {
            "type": "array",
            "items": {}
          },
          "certifications": {
            "type": "array",
            "items": {}
          },
          "id": {
            "type": "string",
            "description": "The ID."
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "leadListId": {
            "type": "string",
            "description": "The lead list it was added through."
          },
          "accountId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The connected account."
          },
          "origin": {
            "type": [
              "object",
              "null"
            ]
          },
          "leadListIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Every lead list it is in."
            },
            "description": "Every lead list it is in."
          },
          "accountIds": {
            "type": "array",
            "items": {},
            "description": "The accounts that send for it."
          },
          "origins": {
            "type": "array",
            "items": {}
          },
          "favorite": {
            "type": "boolean",
            "description": "Whether it is marked as a favorite."
          },
          "statusId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The status it is in. `null` when it has none."
          },
          "valuation": {
            "type": [
              "number",
              "null"
            ],
            "description": "The deal value. `null` when none is set."
          },
          "hasNote": {
            "type": "boolean",
            "description": "Whether the lead has a note."
          },
          "labels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            },
            "description": "The tags on this lead."
          },
          "platformId": {
            "type": "string",
            "description": "The ID the network gives this person."
          },
          "handle": {
            "type": "string",
            "description": "The username, without a prefix."
          },
          "name": {
            "type": "string",
            "description": "The name."
          },
          "avatarUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Link to the photo."
          },
          "coverUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "bio": {
            "type": "string",
            "description": "The bio on the profile."
          },
          "location": {
            "type": [
              "string",
              "null"
            ],
            "description": "The location on the profile."
          },
          "profileUrl": {
            "type": "string",
            "description": "Link to the profile on the network."
          },
          "websiteUrl": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "canDm",
          "followers",
          "following",
          "tweets",
          "createdAt",
          "verified",
          "isVerified",
          "isBlueVerified",
          "profileType",
          "degree",
          "isPremium",
          "headline",
          "currentCompany",
          "industry",
          "positions",
          "careerStartedOn",
          "experience",
          "seniority",
          "education",
          "skills",
          "languages",
          "certifications",
          "id",
          "platform",
          "leadListId",
          "accountId",
          "origin",
          "leadListIds",
          "accountIds",
          "origins",
          "favorite",
          "statusId",
          "valuation",
          "hasNote",
          "labels",
          "platformId",
          "handle",
          "name",
          "avatarUrl",
          "coverUrl",
          "bio",
          "location",
          "profileUrl",
          "websiteUrl"
        ],
        "description": "A person in a lead list.",
        "additionalProperties": true
      },
      "Template": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID."
          },
          "platform": {
            "$ref": "#/components/schemas/Platform"
          },
          "name": {
            "type": "string",
            "description": "The name."
          },
          "variants": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Message versions. One is picked for each person."
            },
            "description": "Message versions. One is picked for each person."
          },
          "attachment": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true,
            "description": "The attached file. `null` when none."
          },
          "createdBy": {
            "type": "string",
            "description": "The teammate who made it."
          },
          "createdByName": {
            "type": "string",
            "description": "The name of the teammate who made it."
          },
          "isMine": {
            "type": "boolean",
            "description": "Whether you made it."
          },
          "usedCount": {
            "type": "integer",
            "description": "How many times it was used."
          },
          "lastUsedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When it was last used."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "When it last changed, in ISO 8601 UTC."
          }
        },
        "required": [
          "id",
          "platform",
          "name",
          "variants",
          "attachment",
          "createdBy",
          "createdByName",
          "isMine",
          "usedCount",
          "lastUsedAt",
          "updatedAt"
        ],
        "description": "A saved message you can reuse."
      },
      "Agent": {
        "type": "object",
        "description": "An AI agent that replies to leads for you.",
        "additionalProperties": true,
        "required": [
          "id",
          "name",
          "status",
          "hasUnpublishedChanges",
          "accountIds",
          "campaignIds",
          "model",
          "companyName",
          "version",
          "publishedAt",
          "updatedAt",
          "stats"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The agent ID."
          },
          "name": {
            "type": "string",
            "description": "The agent name."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "live",
              "paused"
            ],
            "description": "`live` replies to leads, `paused` is on hold, `draft` was never published."
          },
          "hasUnpublishedChanges": {
            "type": "boolean",
            "description": "Whether it has edits that are not live yet."
          },
          "accountIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The accounts it replies on."
          },
          "campaignIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The campaigns that use it."
          },
          "model": {
            "type": [
              "string",
              "null"
            ],
            "description": "The AI model it uses."
          },
          "companyName": {
            "type": [
              "string",
              "null"
            ],
            "description": "The company it speaks for."
          },
          "version": {
            "type": "integer",
            "description": "The published version."
          },
          "publishedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When it was last published, in ISO 8601 UTC."
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When it last changed, in ISO 8601 UTC."
          },
          "stats": {
            "type": "object",
            "description": "What it has done.",
            "properties": {
              "messages": {
                "type": "integer",
                "description": "Messages it sent."
              },
              "activeUsers": {
                "type": "integer",
                "description": "People it is talking to."
              },
              "handoffs": {
                "type": "integer",
                "description": "Conversations it handed to a person."
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "message.received": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.message.received",
        "x-mint": {
          "href": "/webhooks/events/message-received"
        },
        "security": [],
        "summary": "Message received",
        "description": "A lead sent a DM to one of your connected accounts.\n\nFires for messages that are less than 10 minutes old when ReachHunt picks them up, so syncing an inbox for the first time does not replay its history.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "message.received"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "contact",
                      "message",
                      "sentBy"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The account that received it.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead who sent it. In a group conversation, the member who wrote it.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "message": {
                        "type": "object",
                        "description": "The message.",
                        "required": [
                          "id",
                          "conversationId",
                          "text",
                          "attachments",
                          "sentAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The message ID, the `messageId` in [List messages](/api-reference/messages/list-messages)."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation it is in, as in [List conversations](/api-reference/conversations/list-conversations)."
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The text. `null` when it has only attachments."
                          },
                          "attachments": {
                            "type": "array",
                            "description": "Files, images and links sent with it, with the same fields as `attachments` in List messages. A file or image `url` is a path on `https://api.reachhunt.ai`: download it with your API key in the `Authorization` header.",
                            "items": {
                              "$ref": "#/components/schemas/Attachment"
                            }
                          },
                          "sentAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it was sent.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Message"
                      },
                      "sentBy": {
                        "type": "null",
                        "description": "Always `null`: the lead sent it."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "message.received",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "message": {
                    "id": "msg_2-ZjQ5YzE0",
                    "conversationId": "conv_2-MTIzNDU2",
                    "text": "Thanks for reaching out, happy to chat next week.",
                    "attachments": [],
                    "sentAt": "2026-10-19T10:31:58.000Z"
                  },
                  "sentBy": null
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "message.sent": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.message.sent",
        "x-mint": {
          "href": "/webhooks/events/message-sent"
        },
        "security": [],
        "summary": "Message sent",
        "description": "A DM was sent from a connected account: by a campaign, an AI agent, a member, or on the platform itself.\n\nFires for messages that are less than 10 minutes old when ReachHunt picks them up.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "message.sent"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "contact",
                      "message",
                      "sentBy"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The account it was sent from.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead it was sent to.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "message": {
                        "type": "object",
                        "description": "The message.",
                        "required": [
                          "id",
                          "conversationId",
                          "text",
                          "attachments",
                          "sentAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The message ID, the `messageId` in [List messages](/api-reference/messages/list-messages)."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation it is in, as in [List conversations](/api-reference/conversations/list-conversations)."
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The text. `null` when it has only attachments."
                          },
                          "attachments": {
                            "type": "array",
                            "description": "Files, images and links sent with it, with the same fields as `attachments` in List messages. A file or image `url` is a path on `https://api.reachhunt.ai`: download it with your API key in the `Authorization` header.",
                            "items": {
                              "$ref": "#/components/schemas/Attachment"
                            }
                          },
                          "sentAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it was sent.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Message"
                      },
                      "sentBy": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Who sent it from ReachHunt. `null` when it was typed on X or LinkedIn directly.",
                        "required": [
                          "type",
                          "id",
                          "name"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "campaign",
                              "agent",
                              "member"
                            ],
                            "description": "`campaign`, `agent` for an AI agent, or `member` for someone in your workspace."
                          },
                          "id": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The campaign, agent or member ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its name."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "message.sent",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "message": {
                    "id": "msg_2-ZjQ5YzE0",
                    "conversationId": "conv_2-MTIzNDU2",
                    "text": "Hi John, loved your post on pricing.",
                    "attachments": [],
                    "sentAt": "2026-10-19T10:31:58.000Z"
                  },
                  "sentBy": {
                    "type": "campaign",
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "message.seen": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.message.seen",
        "x-mint": {
          "href": "/webhooks/events/message-seen"
        },
        "security": [],
        "summary": "Message seen",
        "description": "A lead read a DM sent from a connected account. Sent once, for the newest DM they had not read yet.\n\nWhen a lead reads several of your messages at once, you get one event, for the newest. Opening the conversation again fires nothing. The network has to report the read: a lead who turned read receipts off never fires it, and a read reported more than 10 minutes late is skipped.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "message.seen"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "contact",
                      "message",
                      "sentBy",
                      "seenAt"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The account that sent the message.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead who read it.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "message": {
                        "type": "object",
                        "description": "The newest of your messages they read.",
                        "required": [
                          "id",
                          "conversationId",
                          "text",
                          "attachments",
                          "sentAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The message ID, the `messageId` in [List messages](/api-reference/messages/list-messages)."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation it is in, as in [List conversations](/api-reference/conversations/list-conversations)."
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The text. `null` when it has only attachments."
                          },
                          "attachments": {
                            "type": "array",
                            "description": "Files, images and links sent with it, with the same fields as `attachments` in List messages. A file or image `url` is a path on `https://api.reachhunt.ai`: download it with your API key in the `Authorization` header.",
                            "items": {
                              "$ref": "#/components/schemas/Attachment"
                            }
                          },
                          "sentAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it was sent.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Message"
                      },
                      "sentBy": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Who sent it from ReachHunt. `null` when it was typed on X or LinkedIn directly.",
                        "required": [
                          "type",
                          "id",
                          "name"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "campaign",
                              "agent",
                              "member"
                            ],
                            "description": "`campaign`, `agent` for an AI agent, or `member` for someone in your workspace."
                          },
                          "id": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The campaign, agent or member ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its name."
                          }
                        }
                      },
                      "seenAt": {
                        "type": "string",
                        "description": "When they read it.",
                        "format": "date-time"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "message.seen",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "message": {
                    "id": "msg_2-ZjQ5YzE0",
                    "conversationId": "conv_2-MTIzNDU2",
                    "text": "Hi John, loved your post on pricing.",
                    "attachments": [],
                    "sentAt": "2026-10-19T10:31:58.000Z"
                  },
                  "sentBy": {
                    "type": "campaign",
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "seenAt": "2026-10-19T10:40:12.000Z"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "message.edited": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.message.edited",
        "x-mint": {
          "href": "/webhooks/events/message-edited"
        },
        "security": [],
        "summary": "Message edited",
        "description": "A DM was edited, from ReachHunt or on the platform.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "message.edited"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "contact",
                      "message",
                      "previousText"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead in the conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "message": {
                        "type": "object",
                        "description": "The message with its new text.",
                        "required": [
                          "id",
                          "conversationId",
                          "text",
                          "attachments",
                          "sentAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The message ID, the `messageId` in [List messages](/api-reference/messages/list-messages)."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation it is in, as in [List conversations](/api-reference/conversations/list-conversations)."
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The text. `null` when it has only attachments."
                          },
                          "attachments": {
                            "type": "array",
                            "description": "Files, images and links sent with it, with the same fields as `attachments` in List messages. A file or image `url` is a path on `https://api.reachhunt.ai`: download it with your API key in the `Authorization` header.",
                            "items": {
                              "$ref": "#/components/schemas/Attachment"
                            }
                          },
                          "sentAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it was sent.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Message"
                      },
                      "previousText": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The text before the edit."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "message.edited",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "message": {
                    "id": "msg_2-ZjQ5YzE0",
                    "conversationId": "conv_2-MTIzNDU2",
                    "text": "Thanks, happy to chat on Tuesday.",
                    "attachments": [],
                    "sentAt": "2026-10-19T10:31:58.000Z"
                  },
                  "previousText": "Thanks for reaching out, happy to chat next week."
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "message.deleted": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.message.deleted",
        "x-mint": {
          "href": "/webhooks/events/message-deleted"
        },
        "security": [],
        "summary": "Message deleted",
        "description": "A DM was deleted, from ReachHunt or on the platform.\n\nOn X, a message deleted on X itself, by you or by the lead, fires the next time ReachHunt syncs that conversation, for example when someone opens it or a message is sent in it. X does not report these deletes as they happen.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "message.deleted"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "contact",
                      "message"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead in the conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "message": {
                        "type": "object",
                        "description": "The message as it was before it was deleted.",
                        "required": [
                          "id",
                          "conversationId",
                          "text",
                          "attachments",
                          "sentAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The message ID, the `messageId` in [List messages](/api-reference/messages/list-messages)."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation it is in, as in [List conversations](/api-reference/conversations/list-conversations)."
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The text. `null` when it has only attachments."
                          },
                          "attachments": {
                            "type": "array",
                            "description": "Files, images and links sent with it, with the same fields as `attachments` in List messages. A file or image `url` is a path on `https://api.reachhunt.ai`: download it with your API key in the `Authorization` header.",
                            "items": {
                              "$ref": "#/components/schemas/Attachment"
                            }
                          },
                          "sentAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it was sent.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Message"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "message.deleted",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "message": {
                    "id": "msg_2-ZjQ5YzE0",
                    "conversationId": "conv_2-MTIzNDU2",
                    "text": "Thanks for reaching out, happy to chat next week.",
                    "attachments": [],
                    "sentAt": "2026-10-19T10:31:58.000Z"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "message.reaction_added": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.message.reaction_added",
        "x-mint": {
          "href": "/webhooks/events/message-reaction-added"
        },
        "security": [],
        "summary": "Message reaction added",
        "description": "Someone reacted to a DM.\n\nFires for reactions from either side. Two people adding the same emoji fire two events.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "message.reaction_added"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "contact",
                      "message",
                      "reaction"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead in the conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "message": {
                        "type": "object",
                        "description": "The message that got the reaction.",
                        "required": [
                          "id",
                          "conversationId",
                          "text",
                          "attachments",
                          "sentAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The message ID, the `messageId` in [List messages](/api-reference/messages/list-messages)."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation it is in, as in [List conversations](/api-reference/conversations/list-conversations)."
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The text. `null` when it has only attachments."
                          },
                          "attachments": {
                            "type": "array",
                            "description": "Files, images and links sent with it, with the same fields as `attachments` in List messages. A file or image `url` is a path on `https://api.reachhunt.ai`: download it with your API key in the `Authorization` header.",
                            "items": {
                              "$ref": "#/components/schemas/Attachment"
                            }
                          },
                          "sentAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it was sent.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Message"
                      },
                      "reaction": {
                        "type": "object",
                        "description": "The reaction.",
                        "required": [
                          "emoji",
                          "senderId",
                          "fromMe"
                        ],
                        "properties": {
                          "emoji": {
                            "type": "string",
                            "description": "The emoji."
                          },
                          "senderId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The network ID of whoever reacted. LinkedIn only names your own account, so it is `null` for other people's reactions there."
                          },
                          "fromMe": {
                            "type": "boolean",
                            "description": "`true` when your connected account reacted."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "message.reaction_added",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "message": {
                    "id": "msg_2-ZjQ5YzE0",
                    "conversationId": "conv_2-MTIzNDU2",
                    "text": "Thanks for reaching out, happy to chat next week.",
                    "attachments": [],
                    "sentAt": "2026-10-19T10:31:58.000Z"
                  },
                  "reaction": {
                    "emoji": "👍",
                    "senderId": "ACoAAD9k8j7h",
                    "fromMe": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "message.reaction_removed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.message.reaction_removed",
        "x-mint": {
          "href": "/webhooks/events/message-reaction-removed"
        },
        "security": [],
        "summary": "Message reaction removed",
        "description": "A reaction was taken off a DM.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "message.reaction_removed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "contact",
                      "message",
                      "reaction"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead in the conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "message": {
                        "type": "object",
                        "description": "The message the reaction was taken off.",
                        "required": [
                          "id",
                          "conversationId",
                          "text",
                          "attachments",
                          "sentAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The message ID, the `messageId` in [List messages](/api-reference/messages/list-messages)."
                          },
                          "conversationId": {
                            "type": "string",
                            "description": "The conversation it is in, as in [List conversations](/api-reference/conversations/list-conversations)."
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The text. `null` when it has only attachments."
                          },
                          "attachments": {
                            "type": "array",
                            "description": "Files, images and links sent with it, with the same fields as `attachments` in List messages. A file or image `url` is a path on `https://api.reachhunt.ai`: download it with your API key in the `Authorization` header.",
                            "items": {
                              "$ref": "#/components/schemas/Attachment"
                            }
                          },
                          "sentAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it was sent.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Message"
                      },
                      "reaction": {
                        "type": "object",
                        "description": "The reaction.",
                        "required": [
                          "emoji",
                          "senderId",
                          "fromMe"
                        ],
                        "properties": {
                          "emoji": {
                            "type": "string",
                            "description": "The emoji."
                          },
                          "senderId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The network ID of whoever reacted. LinkedIn only names your own account, so it is `null` for other people's reactions there."
                          },
                          "fromMe": {
                            "type": "boolean",
                            "description": "`true` when your connected account reacted."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "message.reaction_removed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "message": {
                    "id": "msg_2-ZjQ5YzE0",
                    "conversationId": "conv_2-MTIzNDU2",
                    "text": "Thanks for reaching out, happy to chat next week.",
                    "attachments": [],
                    "sentAt": "2026-10-19T10:31:58.000Z"
                  },
                  "reaction": {
                    "emoji": "👍",
                    "senderId": "ACoAAD9k8j7h",
                    "fromMe": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "conversation.created": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.conversation.created",
        "x-mint": {
          "href": "/webhooks/events/conversation-created"
        },
        "security": [],
        "summary": "Conversation created",
        "description": "A new conversation showed up in the inbox.\n\nFires when the first message of a new conversation is sent or received, including conversations you start from ReachHunt. Older conversations found while syncing an inbox do not fire it.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "conversation.created"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "conversation",
                      "contact"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "conversation": {
                        "type": "object",
                        "description": "The conversation.",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The conversation ID, as in [List conversations](/api-reference/conversations/list-conversations)."
                          }
                        }
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead on the other side. `null` in a group conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "conversation.created",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "conversation": {
                    "id": "conv_2-MTIzNDU2"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "conversation.deleted": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.conversation.deleted",
        "x-mint": {
          "href": "/webhooks/events/conversation-deleted"
        },
        "security": [],
        "summary": "Conversation deleted",
        "description": "A conversation was deleted, from ReachHunt or on the platform.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "conversation.deleted"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "conversation",
                      "contact"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "conversation": {
                        "type": "object",
                        "description": "The conversation.",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The conversation ID, as in [List conversations](/api-reference/conversations/list-conversations)."
                          }
                        }
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead on the other side. `null` in a group conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "conversation.deleted",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "conversation": {
                    "id": "conv_2-MTIzNDU2"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "conversation.archived": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.conversation.archived",
        "x-mint": {
          "href": "/webhooks/events/conversation-archived"
        },
        "security": [],
        "summary": "Conversation archived",
        "description": "A conversation was archived, by a member or by auto-archive.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "conversation.archived"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "conversation",
                      "contact"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "conversation": {
                        "type": "object",
                        "description": "The conversation.",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The conversation ID, as in [List conversations](/api-reference/conversations/list-conversations)."
                          }
                        }
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead on the other side. `null` in a group conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "conversation.archived",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "conversation": {
                    "id": "conv_2-MTIzNDU2"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "conversation.unarchived": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.conversation.unarchived",
        "x-mint": {
          "href": "/webhooks/events/conversation-unarchived"
        },
        "security": [],
        "summary": "Conversation unarchived",
        "description": "An archived conversation came back to the inbox, by a member or because a new message arrived.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "conversation.unarchived"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "conversation",
                      "contact"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The connected account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "conversation": {
                        "type": "object",
                        "description": "The conversation.",
                        "required": [
                          "id"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The conversation ID, as in [List conversations](/api-reference/conversations/list-conversations)."
                          }
                        }
                      },
                      "contact": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The lead on the other side. `null` in a group conversation.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "conversation.unarchived",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "conversation": {
                    "id": "conv_2-MTIzNDU2"
                  },
                  "contact": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "lead.added_to_list": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.lead.added_to_list",
        "x-mint": {
          "href": "/webhooks/events/lead-added-to-list"
        },
        "security": [],
        "summary": "Lead added to list",
        "description": "A lead was added to a lead list, by an import or a copy.\n\nFires once per lead, so an import that adds 500 leads sends 500 events.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "lead.added_to_list"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "list",
                      "lead"
                    ],
                    "properties": {
                      "list": {
                        "type": "object",
                        "description": "The lead list.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The lead list ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its name."
                          }
                        }
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "lead.added_to_list",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "list": {
                    "id": "4e6a8c0b-2d4f-4a6c-8e0b-3d5f7a9c1e2b",
                    "name": "SaaS founders"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "lead.status_changed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.lead.status_changed",
        "x-mint": {
          "href": "/webhooks/events/lead-status-changed"
        },
        "security": [],
        "summary": "Lead status changed",
        "description": "A lead's pipeline status was set, changed or cleared.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "lead.status_changed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "lead",
                      "previousStatus",
                      "status"
                    ],
                    "properties": {
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "previousStatus": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The status before. `null` when it had none.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The status ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its name. `null` when the status has been deleted since."
                          },
                          "color": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`. `null` when the status has been deleted since."
                          }
                        }
                      },
                      "status": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The status now. `null` when it was cleared.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The status ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its name. `null` when the status has been deleted since."
                          },
                          "color": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`. `null` when the status has been deleted since."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "lead.status_changed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "previousStatus": null,
                  "status": {
                    "id": "8a4f1c3e-6b2d-4e9a-b7c5-1d3f5a7e9c20",
                    "name": "Meeting booked",
                    "color": "#22c55e"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "lead.tag_added": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.lead.tag_added",
        "x-mint": {
          "href": "/webhooks/events/lead-tag-added"
        },
        "security": [],
        "summary": "Lead tag added",
        "description": "A tag was added to a lead.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "lead.tag_added"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "lead",
                      "tag"
                    ],
                    "properties": {
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "tag": {
                        "type": "object",
                        "description": "The tag that was added.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The tag ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its name. `null` when the tag has been deleted since."
                          },
                          "color": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`. `null` when the tag has been deleted since."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "lead.tag_added",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "tag": {
                    "id": "0c9e7a52-4d1b-4f3e-8a6c-2b5d9e1f7a30",
                    "name": "Hot lead",
                    "color": "#f97316"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "lead.tag_removed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.lead.tag_removed",
        "x-mint": {
          "href": "/webhooks/events/lead-tag-removed"
        },
        "security": [],
        "summary": "Lead tag removed",
        "description": "A tag was removed from a lead.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "lead.tag_removed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "lead",
                      "tag"
                    ],
                    "properties": {
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "tag": {
                        "type": "object",
                        "description": "The tag that was removed.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The tag ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its name. `null` when the tag has been deleted since."
                          },
                          "color": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`. `null` when the tag has been deleted since."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "lead.tag_removed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "tag": {
                    "id": "0c9e7a52-4d1b-4f3e-8a6c-2b5d9e1f7a30",
                    "name": "Hot lead",
                    "color": "#f97316"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "lead.note_changed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.lead.note_changed",
        "x-mint": {
          "href": "/webhooks/events/lead-note-changed"
        },
        "security": [],
        "summary": "Lead note changed",
        "description": "A lead's note was written, edited or cleared.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "lead.note_changed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "lead",
                      "note"
                    ],
                    "properties": {
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "note": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The note now. `null` when it was cleared."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "lead.note_changed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "note": "Wants a demo after the 25th."
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "lead.valuation_changed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.lead.valuation_changed",
        "x-mint": {
          "href": "/webhooks/events/lead-valuation-changed"
        },
        "security": [],
        "summary": "Lead valuation changed",
        "description": "A lead's deal value was set, changed or cleared.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "lead.valuation_changed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "lead",
                      "previousValuation",
                      "valuation"
                    ],
                    "properties": {
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "previousValuation": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The deal value before. `null` when it had none."
                      },
                      "valuation": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "The deal value now. `null` when it was cleared."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "lead.valuation_changed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "previousValuation": null,
                  "valuation": 12000
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "lead.assignee_changed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.lead.assignee_changed",
        "x-mint": {
          "href": "/webhooks/events/lead-assignee-changed"
        },
        "security": [],
        "summary": "Lead assignee changed",
        "description": "A lead was assigned to a member, reassigned or unassigned.\n\nRemoving a member from the workspace unassigns their leads, and fires this once for each of them.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "lead.assignee_changed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "lead",
                      "previousAssignee",
                      "assignee"
                    ],
                    "properties": {
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "previousAssignee": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Who it was assigned to before. `null` when nobody was.",
                        "required": [
                          "id",
                          "name",
                          "email"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The member's user ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their name."
                          },
                          "email": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their email address."
                          }
                        }
                      },
                      "assignee": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Who it is assigned to now. `null` when it was unassigned.",
                        "required": [
                          "id",
                          "name",
                          "email"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The member's user ID."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their name."
                          },
                          "email": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their email address."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "lead.assignee_changed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "previousAssignee": null,
                  "assignee": {
                    "id": "9b1d3f5a-7c9e-4b1d-a3f5-7c9e1b3d5f7a",
                    "name": "Alex Morgan",
                    "email": "alex@example.com"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.created": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.created",
        "x-mint": {
          "href": "/webhooks/events/campaign-created"
        },
        "security": [],
        "summary": "Campaign created",
        "description": "A campaign was created.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.created"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign as it is now.",
                        "required": [
                          "id",
                          "name",
                          "platform",
                          "status",
                          "targets",
                          "sent",
                          "invitesSent",
                          "replies",
                          "failed",
                          "startedAt",
                          "completedAt",
                          "pauseReason"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "scheduled",
                              "running",
                              "paused",
                              "completed",
                              "stopped",
                              "failed"
                            ],
                            "description": "Its status now."
                          },
                          "targets": {
                            "type": "integer",
                            "description": "Leads in the campaign."
                          },
                          "sent": {
                            "type": "integer",
                            "description": "Messages it has sent."
                          },
                          "invitesSent": {
                            "type": "integer",
                            "description": "Connection requests it has sent."
                          },
                          "replies": {
                            "type": "integer",
                            "description": "Leads who replied."
                          },
                          "failed": {
                            "type": "integer",
                            "description": "Leads it could not reach."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it first started sending.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed or was stopped.",
                            "format": "date-time"
                          },
                          "pauseReason": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why ReachHunt paused it, when `status` is `paused`. `null` when a member paused it, and when it is not paused."
                          }
                        },
                        "x-type": "Campaign"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.created",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach",
                    "platform": "linkedin",
                    "status": "draft",
                    "targets": 120,
                    "sent": 0,
                    "invitesSent": 0,
                    "replies": 0,
                    "failed": 2,
                    "startedAt": null,
                    "completedAt": null,
                    "pauseReason": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.started": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.started",
        "x-mint": {
          "href": "/webhooks/events/campaign-started"
        },
        "security": [],
        "summary": "Campaign started",
        "description": "A campaign started sending for the first time.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.started"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign as it is now.",
                        "required": [
                          "id",
                          "name",
                          "platform",
                          "status",
                          "targets",
                          "sent",
                          "invitesSent",
                          "replies",
                          "failed",
                          "startedAt",
                          "completedAt",
                          "pauseReason"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "scheduled",
                              "running",
                              "paused",
                              "completed",
                              "stopped",
                              "failed"
                            ],
                            "description": "Its status now."
                          },
                          "targets": {
                            "type": "integer",
                            "description": "Leads in the campaign."
                          },
                          "sent": {
                            "type": "integer",
                            "description": "Messages it has sent."
                          },
                          "invitesSent": {
                            "type": "integer",
                            "description": "Connection requests it has sent."
                          },
                          "replies": {
                            "type": "integer",
                            "description": "Leads who replied."
                          },
                          "failed": {
                            "type": "integer",
                            "description": "Leads it could not reach."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it first started sending.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed or was stopped.",
                            "format": "date-time"
                          },
                          "pauseReason": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why ReachHunt paused it, when `status` is `paused`. `null` when a member paused it, and when it is not paused."
                          }
                        },
                        "x-type": "Campaign"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.started",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach",
                    "platform": "linkedin",
                    "status": "running",
                    "targets": 120,
                    "sent": 48,
                    "invitesSent": 60,
                    "replies": 9,
                    "failed": 2,
                    "startedAt": "2026-10-19T09:00:00.000Z",
                    "completedAt": null,
                    "pauseReason": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.paused": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.paused",
        "x-mint": {
          "href": "/webhooks/events/campaign-paused"
        },
        "security": [],
        "summary": "Campaign paused",
        "description": "A campaign was paused, by a member or because it could not keep sending.\n\n`campaign.pauseReason` says why when ReachHunt paused it itself, for example when no connected account is left to send from.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.paused"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign as it is now.",
                        "required": [
                          "id",
                          "name",
                          "platform",
                          "status",
                          "targets",
                          "sent",
                          "invitesSent",
                          "replies",
                          "failed",
                          "startedAt",
                          "completedAt",
                          "pauseReason"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "scheduled",
                              "running",
                              "paused",
                              "completed",
                              "stopped",
                              "failed"
                            ],
                            "description": "Its status now."
                          },
                          "targets": {
                            "type": "integer",
                            "description": "Leads in the campaign."
                          },
                          "sent": {
                            "type": "integer",
                            "description": "Messages it has sent."
                          },
                          "invitesSent": {
                            "type": "integer",
                            "description": "Connection requests it has sent."
                          },
                          "replies": {
                            "type": "integer",
                            "description": "Leads who replied."
                          },
                          "failed": {
                            "type": "integer",
                            "description": "Leads it could not reach."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it first started sending.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed or was stopped.",
                            "format": "date-time"
                          },
                          "pauseReason": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why ReachHunt paused it, when `status` is `paused`. `null` when a member paused it, and when it is not paused."
                          }
                        },
                        "x-type": "Campaign"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.paused",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach",
                    "platform": "linkedin",
                    "status": "paused",
                    "targets": 120,
                    "sent": 48,
                    "invitesSent": 60,
                    "replies": 9,
                    "failed": 2,
                    "startedAt": "2026-10-19T09:00:00.000Z",
                    "completedAt": null,
                    "pauseReason": "No connected account left to send from."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.resumed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.resumed",
        "x-mint": {
          "href": "/webhooks/events/campaign-resumed"
        },
        "security": [],
        "summary": "Campaign resumed",
        "description": "A paused campaign started sending again.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.resumed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign as it is now.",
                        "required": [
                          "id",
                          "name",
                          "platform",
                          "status",
                          "targets",
                          "sent",
                          "invitesSent",
                          "replies",
                          "failed",
                          "startedAt",
                          "completedAt",
                          "pauseReason"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "scheduled",
                              "running",
                              "paused",
                              "completed",
                              "stopped",
                              "failed"
                            ],
                            "description": "Its status now."
                          },
                          "targets": {
                            "type": "integer",
                            "description": "Leads in the campaign."
                          },
                          "sent": {
                            "type": "integer",
                            "description": "Messages it has sent."
                          },
                          "invitesSent": {
                            "type": "integer",
                            "description": "Connection requests it has sent."
                          },
                          "replies": {
                            "type": "integer",
                            "description": "Leads who replied."
                          },
                          "failed": {
                            "type": "integer",
                            "description": "Leads it could not reach."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it first started sending.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed or was stopped.",
                            "format": "date-time"
                          },
                          "pauseReason": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why ReachHunt paused it, when `status` is `paused`. `null` when a member paused it, and when it is not paused."
                          }
                        },
                        "x-type": "Campaign"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.resumed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach",
                    "platform": "linkedin",
                    "status": "running",
                    "targets": 120,
                    "sent": 48,
                    "invitesSent": 60,
                    "replies": 9,
                    "failed": 2,
                    "startedAt": "2026-10-19T09:00:00.000Z",
                    "completedAt": null,
                    "pauseReason": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.completed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.completed",
        "x-mint": {
          "href": "/webhooks/events/campaign-completed"
        },
        "security": [],
        "summary": "Campaign completed",
        "description": "A campaign reached every lead and finished.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.completed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign as it is now.",
                        "required": [
                          "id",
                          "name",
                          "platform",
                          "status",
                          "targets",
                          "sent",
                          "invitesSent",
                          "replies",
                          "failed",
                          "startedAt",
                          "completedAt",
                          "pauseReason"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "scheduled",
                              "running",
                              "paused",
                              "completed",
                              "stopped",
                              "failed"
                            ],
                            "description": "Its status now."
                          },
                          "targets": {
                            "type": "integer",
                            "description": "Leads in the campaign."
                          },
                          "sent": {
                            "type": "integer",
                            "description": "Messages it has sent."
                          },
                          "invitesSent": {
                            "type": "integer",
                            "description": "Connection requests it has sent."
                          },
                          "replies": {
                            "type": "integer",
                            "description": "Leads who replied."
                          },
                          "failed": {
                            "type": "integer",
                            "description": "Leads it could not reach."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it first started sending.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed or was stopped.",
                            "format": "date-time"
                          },
                          "pauseReason": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why ReachHunt paused it, when `status` is `paused`. `null` when a member paused it, and when it is not paused."
                          }
                        },
                        "x-type": "Campaign"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.completed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach",
                    "platform": "linkedin",
                    "status": "completed",
                    "targets": 120,
                    "sent": 48,
                    "invitesSent": 60,
                    "replies": 9,
                    "failed": 2,
                    "startedAt": "2026-10-19T09:00:00.000Z",
                    "completedAt": "2026-10-25T17:02:00.000Z",
                    "pauseReason": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.stopped": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.stopped",
        "x-mint": {
          "href": "/webhooks/events/campaign-stopped"
        },
        "security": [],
        "summary": "Campaign stopped",
        "description": "A campaign was stopped before it finished.\n\nDeleting a running or paused campaign stops it first, so that fires this too.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.stopped"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign as it is now.",
                        "required": [
                          "id",
                          "name",
                          "platform",
                          "status",
                          "targets",
                          "sent",
                          "invitesSent",
                          "replies",
                          "failed",
                          "startedAt",
                          "completedAt",
                          "pauseReason"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "draft",
                              "scheduled",
                              "running",
                              "paused",
                              "completed",
                              "stopped",
                              "failed"
                            ],
                            "description": "Its status now."
                          },
                          "targets": {
                            "type": "integer",
                            "description": "Leads in the campaign."
                          },
                          "sent": {
                            "type": "integer",
                            "description": "Messages it has sent."
                          },
                          "invitesSent": {
                            "type": "integer",
                            "description": "Connection requests it has sent."
                          },
                          "replies": {
                            "type": "integer",
                            "description": "Leads who replied."
                          },
                          "failed": {
                            "type": "integer",
                            "description": "Leads it could not reach."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it first started sending.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed or was stopped.",
                            "format": "date-time"
                          },
                          "pauseReason": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why ReachHunt paused it, when `status` is `paused`. `null` when a member paused it, and when it is not paused."
                          }
                        },
                        "x-type": "Campaign"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.stopped",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach",
                    "platform": "linkedin",
                    "status": "stopped",
                    "targets": 120,
                    "sent": 48,
                    "invitesSent": 60,
                    "replies": 9,
                    "failed": 2,
                    "startedAt": "2026-10-19T09:00:00.000Z",
                    "completedAt": "2026-10-21T12:00:00.000Z",
                    "pauseReason": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.lead_contacted": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.lead_contacted",
        "x-mint": {
          "href": "/webhooks/events/campaign-lead-contacted"
        },
        "security": [],
        "summary": "Campaign lead contacted",
        "description": "A campaign sent its first message to a lead, as a DM or an InMail.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.lead_contacted"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign",
                      "account",
                      "lead",
                      "messagesSent",
                      "stepType"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          }
                        }
                      },
                      "account": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The connected account the campaign used for this lead. `null` when it had none yet.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "messagesSent": {
                        "type": "integer",
                        "description": "Messages the campaign has sent to this lead, including this one."
                      },
                      "stepType": {
                        "type": "string",
                        "enum": [
                          "message",
                          "inmail"
                        ],
                        "description": "How it was sent: `message` for a DM, `inmail` for a LinkedIn InMail."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.lead_contacted",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "messagesSent": 1,
                  "stepType": "message"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.follow_up_sent": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.follow_up_sent",
        "x-mint": {
          "href": "/webhooks/events/campaign-follow-up-sent"
        },
        "security": [],
        "summary": "Campaign follow up sent",
        "description": "A campaign sent a follow-up message to a lead, as a DM or an InMail.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.follow_up_sent"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign",
                      "account",
                      "lead",
                      "messagesSent",
                      "stepType"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          }
                        }
                      },
                      "account": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The connected account the campaign used for this lead. `null` when it had none yet.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "messagesSent": {
                        "type": "integer",
                        "description": "Messages the campaign has sent to this lead, including this one."
                      },
                      "stepType": {
                        "type": "string",
                        "enum": [
                          "message",
                          "inmail"
                        ],
                        "description": "How it was sent: `message` for a DM, `inmail` for a LinkedIn InMail."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.follow_up_sent",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "messagesSent": 2,
                  "stepType": "inmail"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.lead_replied": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.lead_replied",
        "x-mint": {
          "href": "/webhooks/events/campaign-lead-replied"
        },
        "security": [],
        "summary": "Campaign lead replied",
        "description": "A lead replied to a campaign for the first time.\n\nFires for the first reply only. Every message they send also fires `message.received`.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.lead_replied"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign",
                      "account",
                      "lead",
                      "repliedAt"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          }
                        }
                      },
                      "account": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The connected account the campaign used for this lead. `null` when it had none yet.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "repliedAt": {
                        "type": "string",
                        "description": "When they replied.",
                        "format": "date-time"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.lead_replied",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "repliedAt": "2026-10-20T14:05:00.000Z"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "campaign.lead_failed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.campaign.lead_failed",
        "x-mint": {
          "href": "/webhooks/events/campaign-lead-failed"
        },
        "security": [],
        "summary": "Campaign lead failed",
        "description": "A campaign could not reach a lead and stopped trying.\n\nThe lead gets nothing more from this campaign.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "campaign.lead_failed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign",
                      "account",
                      "lead",
                      "stepType",
                      "error"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          }
                        }
                      },
                      "account": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The connected account the campaign used for this lead. `null` when it had none yet.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "stepType": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "enum": [
                          "message",
                          "inmail",
                          "connect",
                          null
                        ],
                        "description": "The step it could not get past: `message`, `inmail` or `connect`."
                      },
                      "error": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Why, for example `Connection request was never accepted`."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "campaign.lead_failed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "stepType": "connect",
                  "error": "Connection request was never accepted"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "connection_request.sent": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.connection_request.sent",
        "x-mint": {
          "href": "/webhooks/events/connection-request-sent"
        },
        "security": [],
        "summary": "Connection request sent",
        "description": "A campaign sent a LinkedIn connection request.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "connection_request.sent"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign",
                      "account",
                      "lead",
                      "withNote"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          }
                        }
                      },
                      "account": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The connected account the campaign used for this lead. `null` when it had none yet.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      },
                      "withNote": {
                        "type": "boolean",
                        "description": "Whether LinkedIn delivered the request with your note."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "connection_request.sent",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  },
                  "withNote": true
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "connection_request.accepted": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.connection_request.accepted",
        "x-mint": {
          "href": "/webhooks/events/connection-request-accepted"
        },
        "security": [],
        "summary": "Connection request accepted",
        "description": "A lead accepted a LinkedIn connection request sent by a campaign.\n\nReachHunt checks pending requests from time to time, so this can arrive a while after the lead accepted.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "connection_request.accepted"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign",
                      "account",
                      "lead"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          }
                        }
                      },
                      "account": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The connected account the campaign used for this lead. `null` when it had none yet.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "connection_request.accepted",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "connection_request.withdrawn": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.connection_request.withdrawn",
        "x-mint": {
          "href": "/webhooks/events/connection-request-withdrawn"
        },
        "security": [],
        "summary": "Connection request withdrawn",
        "description": "A connection request that was never accepted was withdrawn.\n\nReachHunt withdraws a request still pending after 14 days. The lead then fails in the campaign, which fires `campaign.lead_failed`.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "connection_request.withdrawn"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "campaign",
                      "account",
                      "lead"
                    ],
                    "properties": {
                      "campaign": {
                        "type": "object",
                        "description": "The campaign.",
                        "required": [
                          "id",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The campaign ID, as in [List campaigns](/api-reference/campaigns/list-campaigns)."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          }
                        }
                      },
                      "account": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "The connected account the campaign used for this lead. `null` when it had none yet.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "lead": {
                        "type": "object",
                        "description": "The lead.",
                        "required": [
                          "leadId",
                          "platform",
                          "platformId",
                          "handle",
                          "name",
                          "headline",
                          "avatarUrl",
                          "profileUrl"
                        ],
                        "properties": {
                          "leadId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their ID in your lead lists, the `prospectId` used by endpoints such as [Get lead note](/api-reference/leads/get-lead-note). `null` when they are not in any of your lists."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "Their ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their username."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their display name."
                          },
                          "headline": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their headline or bio line."
                          },
                          "avatarUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile picture."
                          },
                          "profileUrl": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Their profile on the network."
                          }
                        },
                        "x-type": "Lead"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "connection_request.withdrawn",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "campaign": {
                    "id": "6d2f8b4a-91c3-4e57-a0d2-3b7e9f1c5a68",
                    "name": "Founders outreach"
                  },
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "lead": {
                    "leadId": "b3a1d6f0-2c4e-4f1a-9d7b-5e8c2a1f0d34",
                    "platform": "linkedin",
                    "platformId": "ACoAAD9k8j7h",
                    "handle": "john-doe",
                    "name": "John Doe",
                    "headline": "Founder at Acme",
                    "avatarUrl": "https://media.licdn.com/dms/image/sample.jpg",
                    "profileUrl": "https://www.linkedin.com/in/john-doe"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "account.connected": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.account.connected",
        "x-mint": {
          "href": "/webhooks/events/account-connected"
        },
        "security": [],
        "summary": "Account connected",
        "description": "An X or LinkedIn account was connected or reconnected.\n\nAlso fires when an account that needed reconnecting is connected again.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "account.connected"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "account.connected",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "account.disconnected": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.account.disconnected",
        "x-mint": {
          "href": "/webhooks/events/account-disconnected"
        },
        "security": [],
        "summary": "Account disconnected",
        "description": "An account needs to be reconnected, or was removed from the workspace.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "account.disconnected"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "account",
                      "reason",
                      "detail"
                    ],
                    "properties": {
                      "account": {
                        "type": "object",
                        "description": "The account.",
                        "required": [
                          "id",
                          "platform",
                          "platformId",
                          "handle",
                          "name"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The account ID, as in [List accounts](/api-reference/accounts/list-accounts)."
                          },
                          "platform": {
                            "type": "string",
                            "enum": [
                              "x",
                              "linkedin"
                            ],
                            "description": "`x` or `linkedin`."
                          },
                          "platformId": {
                            "type": "string",
                            "description": "The account's own ID on the network."
                          },
                          "handle": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its username on the network."
                          },
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Its display name."
                          }
                        },
                        "x-type": "Account"
                      },
                      "reason": {
                        "type": "string",
                        "enum": [
                          "reauth_required",
                          "removed"
                        ],
                        "description": "`reauth_required` when it has to be reconnected, `removed` when it was taken out of the workspace."
                      },
                      "detail": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "What went wrong when `reason` is `reauth_required`, such as `cookies_rejected`. `null` otherwise."
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "account.disconnected",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "account": {
                    "id": "acc_7f3c9a1e",
                    "platform": "linkedin",
                    "platformId": "ACoAAB1x2y3z",
                    "handle": "jane-cooper",
                    "name": "Jane Cooper"
                  },
                  "reason": "reauth_required",
                  "detail": "cookies_rejected"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "import.completed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.import.completed",
        "x-mint": {
          "href": "/webhooks/events/import-completed"
        },
        "security": [],
        "summary": "Import completed",
        "description": "A lead import finished.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "import.completed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "import"
                    ],
                    "properties": {
                      "import": {
                        "type": "object",
                        "description": "The import.",
                        "required": [
                          "id",
                          "list",
                          "accountId",
                          "source",
                          "status",
                          "added",
                          "scanned",
                          "error",
                          "startedAt",
                          "completedAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The import ID, as in [List imports](/api-reference/lead-lists/list-imports)."
                          },
                          "list": {
                            "type": "object",
                            "description": "The lead list it adds to.",
                            "required": [
                              "id",
                              "name"
                            ],
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The lead list ID."
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Its name."
                              }
                            }
                          },
                          "accountId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The connected account it runs on, if it uses one."
                          },
                          "source": {
                            "type": "string",
                            "enum": [
                              "followers",
                              "following",
                              "retweets",
                              "tweet_likes",
                              "tweet_replies",
                              "list_members",
                              "list_followers",
                              "csv",
                              "plain_text",
                              "x_database",
                              "li_group",
                              "li_post_likes",
                              "li_post_comments",
                              "li_following",
                              "li_followers",
                              "li_connections",
                              "li_search",
                              "li_chat",
                              "chat"
                            ],
                            "description": "Where the leads come from."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "completed",
                              "paused",
                              "failed"
                            ],
                            "description": "How it ended: `completed`, `paused` or `failed`."
                          },
                          "added": {
                            "type": "integer",
                            "description": "Leads added to the list."
                          },
                          "scanned": {
                            "type": "integer",
                            "description": "Profiles it looked at."
                          },
                          "error": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why it paused or failed. `null` when it completed, and when a member paused it."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it started.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Import"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "import.completed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "import": {
                    "id": "1f3b5d7e-9a2c-4e6a-8c0e-2a4c6e8a0c2e",
                    "list": {
                      "id": "4e6a8c0b-2d4f-4a6c-8e0b-3d5f7a9c1e2b",
                      "name": "SaaS founders"
                    },
                    "accountId": "acc_7f3c9a1e",
                    "source": "li_search",
                    "status": "completed",
                    "added": 250,
                    "scanned": 312,
                    "error": null,
                    "startedAt": "2026-10-19T08:00:00.000Z",
                    "completedAt": "2026-10-19T08:42:10.000Z"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "import.paused": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.import.paused",
        "x-mint": {
          "href": "/webhooks/events/import-paused"
        },
        "security": [],
        "summary": "Import paused",
        "description": "A lead import was paused, by a member or because it could not go on, for example when credits ran out or the account needs reconnecting.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "import.paused"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "import"
                    ],
                    "properties": {
                      "import": {
                        "type": "object",
                        "description": "The import.",
                        "required": [
                          "id",
                          "list",
                          "accountId",
                          "source",
                          "status",
                          "added",
                          "scanned",
                          "error",
                          "startedAt",
                          "completedAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The import ID, as in [List imports](/api-reference/lead-lists/list-imports)."
                          },
                          "list": {
                            "type": "object",
                            "description": "The lead list it adds to.",
                            "required": [
                              "id",
                              "name"
                            ],
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The lead list ID."
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Its name."
                              }
                            }
                          },
                          "accountId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The connected account it runs on, if it uses one."
                          },
                          "source": {
                            "type": "string",
                            "enum": [
                              "followers",
                              "following",
                              "retweets",
                              "tweet_likes",
                              "tweet_replies",
                              "list_members",
                              "list_followers",
                              "csv",
                              "plain_text",
                              "x_database",
                              "li_group",
                              "li_post_likes",
                              "li_post_comments",
                              "li_following",
                              "li_followers",
                              "li_connections",
                              "li_search",
                              "li_chat",
                              "chat"
                            ],
                            "description": "Where the leads come from."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "completed",
                              "paused",
                              "failed"
                            ],
                            "description": "How it ended: `completed`, `paused` or `failed`."
                          },
                          "added": {
                            "type": "integer",
                            "description": "Leads added to the list."
                          },
                          "scanned": {
                            "type": "integer",
                            "description": "Profiles it looked at."
                          },
                          "error": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why it paused or failed. `null` when it completed, and when a member paused it."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it started.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Import"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "import.paused",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "import": {
                    "id": "1f3b5d7e-9a2c-4e6a-8c0e-2a4c6e8a0c2e",
                    "list": {
                      "id": "4e6a8c0b-2d4f-4a6c-8e0b-3d5f7a9c1e2b",
                      "name": "SaaS founders"
                    },
                    "accountId": "acc_7f3c9a1e",
                    "source": "li_search",
                    "status": "paused",
                    "added": 250,
                    "scanned": 312,
                    "error": "Out of credits",
                    "startedAt": "2026-10-19T08:00:00.000Z",
                    "completedAt": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "import.failed": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.import.failed",
        "x-mint": {
          "href": "/webhooks/events/import-failed"
        },
        "security": [],
        "summary": "Import failed",
        "description": "A lead import failed.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "import.failed"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "import"
                    ],
                    "properties": {
                      "import": {
                        "type": "object",
                        "description": "The import.",
                        "required": [
                          "id",
                          "list",
                          "accountId",
                          "source",
                          "status",
                          "added",
                          "scanned",
                          "error",
                          "startedAt",
                          "completedAt"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The import ID, as in [List imports](/api-reference/lead-lists/list-imports)."
                          },
                          "list": {
                            "type": "object",
                            "description": "The lead list it adds to.",
                            "required": [
                              "id",
                              "name"
                            ],
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "The lead list ID."
                              },
                              "name": {
                                "type": [
                                  "string",
                                  "null"
                                ],
                                "description": "Its name."
                              }
                            }
                          },
                          "accountId": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The connected account it runs on, if it uses one."
                          },
                          "source": {
                            "type": "string",
                            "enum": [
                              "followers",
                              "following",
                              "retweets",
                              "tweet_likes",
                              "tweet_replies",
                              "list_members",
                              "list_followers",
                              "csv",
                              "plain_text",
                              "x_database",
                              "li_group",
                              "li_post_likes",
                              "li_post_comments",
                              "li_following",
                              "li_followers",
                              "li_connections",
                              "li_search",
                              "li_chat",
                              "chat"
                            ],
                            "description": "Where the leads come from."
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "completed",
                              "paused",
                              "failed"
                            ],
                            "description": "How it ended: `completed`, `paused` or `failed`."
                          },
                          "added": {
                            "type": "integer",
                            "description": "Leads added to the list."
                          },
                          "scanned": {
                            "type": "integer",
                            "description": "Profiles it looked at."
                          },
                          "error": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Why it paused or failed. `null` when it completed, and when a member paused it."
                          },
                          "startedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it started.",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "When it completed.",
                            "format": "date-time"
                          }
                        },
                        "x-type": "Import"
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "import.failed",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "import": {
                    "id": "1f3b5d7e-9a2c-4e6a-8c0e-2a4c6e8a0c2e",
                    "list": {
                      "id": "4e6a8c0b-2d4f-4a6c-8e0b-3d5f7a9c1e2b",
                      "name": "SaaS founders"
                    },
                    "accountId": "acc_7f3c9a1e",
                    "source": "li_search",
                    "status": "failed",
                    "added": 250,
                    "scanned": 312,
                    "error": "The source stopped responding.",
                    "startedAt": "2026-10-19T08:00:00.000Z",
                    "completedAt": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "tag.created": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.tag.created",
        "x-mint": {
          "href": "/webhooks/events/tag-created"
        },
        "security": [],
        "summary": "Tag created",
        "description": "A tag was created.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "tag.created"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "tag"
                    ],
                    "properties": {
                      "tag": {
                        "type": "object",
                        "description": "The tag.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The tag ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "color": {
                            "type": "string",
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "tag.created",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "tag": {
                    "id": "0c9e7a52-4d1b-4f3e-8a6c-2b5d9e1f7a30",
                    "name": "Hot lead",
                    "color": "#f97316"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "tag.updated": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.tag.updated",
        "x-mint": {
          "href": "/webhooks/events/tag-updated"
        },
        "security": [],
        "summary": "Tag updated",
        "description": "A tag was renamed or recoloured.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "tag.updated"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "tag"
                    ],
                    "properties": {
                      "tag": {
                        "type": "object",
                        "description": "The tag, with its new name and color.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The tag ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "color": {
                            "type": "string",
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "tag.updated",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "tag": {
                    "id": "0c9e7a52-4d1b-4f3e-8a6c-2b5d9e1f7a30",
                    "name": "Hot lead",
                    "color": "#f97316"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "tag.deleted": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.tag.deleted",
        "x-mint": {
          "href": "/webhooks/events/tag-deleted"
        },
        "security": [],
        "summary": "Tag deleted",
        "description": "A tag was deleted and removed from every lead.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "tag.deleted"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "tag"
                    ],
                    "properties": {
                      "tag": {
                        "type": "object",
                        "description": "The tag as it was.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The tag ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "color": {
                            "type": "string",
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "tag.deleted",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "tag": {
                    "id": "0c9e7a52-4d1b-4f3e-8a6c-2b5d9e1f7a30",
                    "name": "Hot lead",
                    "color": "#f97316"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "status.created": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.status.created",
        "x-mint": {
          "href": "/webhooks/events/status-created"
        },
        "security": [],
        "summary": "Status created",
        "description": "A pipeline status was created.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "status.created"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "status"
                    ],
                    "properties": {
                      "status": {
                        "type": "object",
                        "description": "The status.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The status ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "color": {
                            "type": "string",
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "status.created",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "status": {
                    "id": "8a4f1c3e-6b2d-4e9a-b7c5-1d3f5a7e9c20",
                    "name": "Meeting booked",
                    "color": "#22c55e"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "status.updated": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.status.updated",
        "x-mint": {
          "href": "/webhooks/events/status-updated"
        },
        "security": [],
        "summary": "Status updated",
        "description": "A pipeline status was renamed or recoloured.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "status.updated"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "status"
                    ],
                    "properties": {
                      "status": {
                        "type": "object",
                        "description": "The status, with its new name and color.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The status ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "color": {
                            "type": "string",
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "status.updated",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "status": {
                    "id": "8a4f1c3e-6b2d-4e9a-b7c5-1d3f5a7e9c20",
                    "name": "Meeting booked",
                    "color": "#22c55e"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    },
    "status.deleted": {
      "post": {
        "tags": [
          "Webhook events"
        ],
        "operationId": "webhooks.event.status.deleted",
        "x-mint": {
          "href": "/webhooks/events/status-deleted"
        },
        "security": [],
        "summary": "Status deleted",
        "description": "A pipeline status was deleted and cleared from every lead.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id",
                  "type",
                  "apiVersion",
                  "createdAt",
                  "workspaceId",
                  "data"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The event ID. Every webhook that gets this event sees the same `id`, and retries and resends keep it. Use it to skip an event you already handled."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "status.deleted"
                    ],
                    "description": "The event type."
                  },
                  "apiVersion": {
                    "type": "string",
                    "enum": [
                      "1"
                    ],
                    "description": "The payload version."
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "When the event happened.",
                    "format": "date-time"
                  },
                  "workspaceId": {
                    "type": "string",
                    "description": "Your workspace ID."
                  },
                  "data": {
                    "type": "object",
                    "description": "What happened.",
                    "required": [
                      "status"
                    ],
                    "properties": {
                      "status": {
                        "type": "object",
                        "description": "The status as it was.",
                        "required": [
                          "id",
                          "name",
                          "color"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The status ID."
                          },
                          "name": {
                            "type": "string",
                            "description": "Its name."
                          },
                          "color": {
                            "type": "string",
                            "description": "Its color as a lowercase six-digit hex value, like `#f97316`."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "example": {
                "id": "evt_9f1c3b7a-2d4e-4c6a-8b1f-0e3d5c7a9b21",
                "type": "status.deleted",
                "apiVersion": "1",
                "createdAt": "2026-10-19T10:32:00.000Z",
                "workspaceId": "c2a9e1f4-7b3d-4e8a-9f1c-5d6e7a8b9c01",
                "data": {
                  "status": {
                    "id": "8a4f1c3e-6b2d-4e9a-b7c5-1d3f5a7e9c20",
                    "name": "Meeting booked",
                    "color": "#22c55e"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges it. Anything else is a failed attempt, see [Retries](/webhooks/overview#retries)."
          }
        }
      }
    }
  }
}
