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

# Send a reply

> Sends your reply to the person at once on the conversation's reply_channel: on LinkedIn from the conversation's LinkedIn account, or by email in the same thread from the inbox it went through. Returns the conversation with the reply filed; on a campaign conversation it also clears needs_reply and suggested_reply. Send an Idempotency-Key header to make a retry safe.

## OpenAPI

```json
{
  "openapi": "3.2.0",
  "info": {
    "title": "Bavlio API",
    "version": "1.0.0"
  },
  "paths": {
    "/conversations/{id}/messages": {
      "post": {
        "tags": [
          "Inbox"
        ],
        "operationId": "inbox.sendConversationReply",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The conversation's id, from List conversations."
            },
            "required": true
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "schema": {
              "type": "string",
              "description": "Any unique string of 1 to 255 characters, such as a UUID, that makes a retry safe: a repeat with the same key and input does nothing again and returns the current state, while the same key with another input, or before the first request finished, is refused. Keys last 24 hours per workspace."
            },
            "required": false
          }
        ],
        "security": [
          {
            "bearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "scope": {
                      "type": "string",
                      "enum": [
                        "campaigns",
                        "other"
                      ],
                      "description": "campaigns: a person a campaign reached. other: a LinkedIn or email conversation outside campaigns, from an account whose all_messages is on."
                    },
                    "person": {
                      "type": "object",
                      "properties": {
                        "lead_id": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The campaign lead's id; null in scope other, where the person is not a lead."
                        },
                        "name": {
                          "type": "string"
                        },
                        "title": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The person's job title, or their LinkedIn headline in scope other; null when unknown."
                        },
                        "company": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The person's company; null when unknown, and always in scope other."
                        },
                        "location": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "City, state and country, comma-separated; null when unknown, and always in scope other."
                        },
                        "email": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The person's email address; null when unknown."
                        },
                        "linkedin_url": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The person's LinkedIn profile URL; null when unknown."
                        },
                        "photo_url": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "URL of the person's profile photo; null when unknown."
                        },
                        "moment": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "One sentence on the first reason the lead matched the campaign; null when there is none, and always in scope other."
                        }
                      },
                      "required": [
                        "lead_id",
                        "name",
                        "title",
                        "company",
                        "location",
                        "email",
                        "linkedin_url",
                        "photo_url",
                        "moment"
                      ],
                      "additionalProperties": false,
                      "description": "The other person in the conversation."
                    },
                    "campaign": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "id",
                            "name"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "The campaign that reached the person; null in scope other."
                    },
                    "sender": {
                      "type": "string",
                      "description": "Who answers on your side: the LinkedIn account's name or the email inbox's address, otherwise the workspace name."
                    },
                    "reply_channel": {
                      "type": "string",
                      "enum": [
                        "linkedin",
                        "email"
                      ],
                      "description": "Where a reply goes out: linkedin or email, the channel the person last wrote on."
                    },
                    "intent": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "interested",
                            "meeting_booked",
                            "question",
                            "referral",
                            "not_now",
                            "not_interested"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "What the person's latest reply means, as Bavlio read it: interested (open to talking or asking how to proceed), meeting_booked (says a meeting is booked), question (asks something before deciding), referral (points to someone else), not_now (not a priority now, maybe later) or not_interested (a clear no). Null until a reply was read, and always in scope other."
                    },
                    "needs_reply": {
                      "type": "boolean",
                      "description": "True while the person's latest reply waits for an answer. Replies read as meeting_booked or not_interested need none; always false in scope other."
                    },
                    "unread_count": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991,
                      "description": "How many of the person's messages are unread; marking the conversation read resets it.",
                      "allOf": [
                        {
                          "minimum": 0
                        }
                      ]
                    },
                    "suggested_reply": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "A reply Bavlio drafted to the person's latest message, for you to edit and send; null when there is none, and always in scope other."
                    },
                    "meeting": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "starts_at": {
                              "type": "string",
                              "description": "When the meeting starts, ISO 8601."
                            },
                            "join_url": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ],
                              "description": "Link to join the meeting; null when the booking has none."
                            },
                            "status": {
                              "type": "string",
                              "enum": [
                                "confirmed",
                                "completed",
                                "no_show",
                                "canceled"
                              ],
                              "description": "The meeting's status: confirmed, completed, no_show or canceled."
                            }
                          },
                          "required": [
                            "starts_at",
                            "join_url",
                            "status"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "The meeting booked with the person; null when none, and always in scope other."
                    },
                    "last_message_author": {
                      "type": "string",
                      "enum": [
                        "lead",
                        "campaign",
                        "you"
                      ],
                      "description": "Who wrote the latest message: lead, campaign or you."
                    },
                    "last_message_preview": {
                      "type": "string",
                      "description": "The first 160 characters of the latest message."
                    },
                    "last_message_at": {
                      "type": "string",
                      "description": "When the latest message was sent, ISO 8601."
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "author": {
                            "type": "string",
                            "enum": [
                              "lead",
                              "campaign",
                              "you"
                            ],
                            "description": "Who wrote it: lead (the other person), campaign (sent by one of your campaigns) or you (your side, sent from Bavlio or straight from LinkedIn or the mailbox)."
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "linkedin",
                              "email"
                            ],
                            "description": "Where it was sent: linkedin or email."
                          },
                          "body": {
                            "type": "string"
                          },
                          "sent_at": {
                            "type": "string",
                            "description": "When the message was sent, ISO 8601."
                          },
                          "linkedin_message_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The message's id on LinkedIn; null for email, and when it is unknown."
                          },
                          "email": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "subject": {
                                    "type": "string"
                                  },
                                  "from": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ],
                                    "description": "The address the email came from; null when unknown."
                                  },
                                  "opened_at": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ],
                                    "description": "When the email was first opened, ISO 8601; null when no open was recorded, and always for emails outside campaigns."
                                  },
                                  "clicked_at": {
                                    "anyOf": [
                                      {
                                        "type": "string"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ],
                                    "description": "When a link in the email was first clicked, ISO 8601; null when no click was recorded, and always for emails outside campaigns."
                                  },
                                  "problem": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "kind": {
                                            "type": "string",
                                            "enum": [
                                              "bounced",
                                              "complained",
                                              "failed"
                                            ],
                                            "description": "What went wrong: bounced (rejected for good by the receiving server), complained (the person marked it as spam) or failed (it could not be delivered)."
                                          },
                                          "detail": {
                                            "anyOf": [
                                              {
                                                "type": "string"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ],
                                            "description": "The mail provider's detail, such as the bounce type or error message; null when none was given."
                                          }
                                        },
                                        "required": [
                                          "kind",
                                          "detail"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ],
                                    "description": "Why the email did not land; null when there was no problem."
                                  }
                                },
                                "required": [
                                  "subject",
                                  "from",
                                  "opened_at",
                                  "clicked_at",
                                  "problem"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ],
                            "description": "The email's details; null for a LinkedIn message."
                          }
                        },
                        "required": [
                          "id",
                          "author",
                          "channel",
                          "body",
                          "sent_at",
                          "linkedin_message_id",
                          "email"
                        ],
                        "additionalProperties": false
                      },
                      "description": "The whole transcript, oldest message first."
                    }
                  },
                  "required": [
                    "id",
                    "scope",
                    "person",
                    "campaign",
                    "sender",
                    "reply_channel",
                    "intent",
                    "needs_reply",
                    "unread_count",
                    "suggested_reply",
                    "meeting",
                    "last_message_author",
                    "last_message_preview",
                    "last_message_at",
                    "messages"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "400": {
            "description": "LinkedInLoginRejected | LinkedInCheckpointFailed | MailRequestRejected | RequestIdempotencyKeyReused | RequestInvalidBody",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/LinkedInLoginRejectedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInCheckpointFailedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/MailRequestRejectedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/RequestIdempotencyKeyReusedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/RequestInvalidBodyEncoded"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "AuthMissing | AuthInvalid",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/AuthMissingEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/AuthInvalidEncoded"
                    }
                  ]
                }
              }
            }
          },
          "402": {
            "description": "LinkedInSeatUnavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedInSeatUnavailableEncoded"
                }
              }
            }
          },
          "404": {
            "description": "WorkspaceNotFound | ConversationNotFound | LinkedInNotPending | LinkedInSenderNotFound | InboxNotFound",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/WorkspaceNotFoundEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/ConversationNotFoundEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInNotPendingEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInSenderNotFoundEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/InboxNotFoundEncoded"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "LinkedInCheckpointExpired | LinkedInAlreadyConnected | LinkedInMemberMismatch | LinkedInMemberInUse | LinkedInAccountDisconnected | LinkedInCheckpointRequired | LinkedInActionRejected | LinkedInRefused | LinkedInCountryRefused | MailNotConnected | MailAccountRestricted | RequestIdempotencyKeyInUse",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/LinkedInCheckpointExpiredEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInAlreadyConnectedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInMemberMismatchEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInMemberInUseEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInAccountDisconnectedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInCheckpointRequiredEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInActionRejectedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInRefusedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInCountryRefusedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/MailNotConnectedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/MailAccountRestrictedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/RequestIdempotencyKeyInUseEncoded"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "RequestRateLimited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestRateLimitedEncoded"
                }
              }
            }
          },
          "502": {
            "description": "LinkedInOutcomeUnknown | LinkedInFailed | MailFailed",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/LinkedInOutcomeUnknownEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInFailedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/MailFailedEncoded"
                    }
                  ]
                }
              }
            }
          },
          "503": {
            "description": "LinkedInRateLimited | LinkedInInviteLimitReached | LinkedInUnavailable | MailUnavailable",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/LinkedInRateLimitedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInInviteLimitReachedEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/LinkedInUnavailableEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/MailUnavailableEncoded"
                    }
                  ]
                }
              }
            }
          }
        },
        "description": "Sends your reply to the person at once on the conversation's reply_channel: on LinkedIn from the conversation's LinkedIn account, or by email in the same thread from the inbox it went through. Returns the conversation with the reply filed; on a campaign conversation it also clears needs_reply and suggested_reply. Send an Idempotency-Key header to make a retry safe.",
        "summary": "Send a reply",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "body": {
                    "type": "string",
                    "description": "The reply text, 1 to 8000 characters once surrounding whitespace is trimmed."
                  }
                },
                "required": [
                  "body"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": true
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AuthInvalidEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "AuthInvalid"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              401
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "auth_invalid"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "Bearer credential rejected"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "AuthMissingEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "AuthMissing"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              401
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "auth_missing"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "Bearer credential required"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "MailFailedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "MailFailed"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              502
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "mail_failed"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "MailUnavailableEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "MailUnavailable"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              503
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "mail_unavailable"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "RequestInvalidBodyEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "RequestInvalidBody"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              400
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "invalid_body"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "MailRequestRejectedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "MailRequestRejected"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              400
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "mail_request_rejected"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "MailAccountRestrictedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "MailAccountRestricted"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "mail_account_restricted"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "MailNotConnectedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "MailNotConnected"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "mail_not_connected"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "Email is not set up: connect Bavimail in Settings first"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "InboxNotFoundEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "InboxNotFound"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              404
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "mail_inbox_not_found"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "There is no such email inbox in this workspace"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "WorkspaceNotFoundEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "WorkspaceNotFound"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              404
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "workspace_not_found"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "No such workspace for this account: save a company profile or pick a workspace you belong to"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInFailedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInFailed"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              502
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_failed"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInOutcomeUnknownEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInOutcomeUnknown"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              502
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_outcome_unknown"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInUnavailableEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInUnavailable"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              503
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_unavailable"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInInviteLimitReachedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInInviteLimitReached"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              503
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_invite_limit_reached"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInRateLimitedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInRateLimited"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              503
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_rate_limited"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInSeatUnavailableEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInSeatUnavailable"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              402
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_seat_unavailable"
            ]
          },
          "message": {
            "type": "string"
          },
          "granted": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message",
          "granted"
        ],
        "additionalProperties": false
      },
      "LinkedInCountryRefusedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInCountryRefused"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_country_refused"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "LinkedIn did not accept the account from that country, so nothing changed: disconnect it and sign in again choosing that country"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInRefusedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInRefused"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_refused"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInActionRejectedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInActionRejected"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_action_rejected"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInCheckpointRequiredEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInCheckpointRequired"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_checkpoint_required"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInAccountDisconnectedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInAccountDisconnected"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_account_disconnected"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInMemberInUseEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInMemberInUse"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_member_in_use"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "This LinkedIn member is already connected as another sender"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInMemberMismatchEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInMemberMismatch"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_member_mismatch"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "This sender is another LinkedIn member: sign in with that person's account, or add a new sender"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInAlreadyConnectedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInAlreadyConnected"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_already_connected"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "This LinkedIn account is already connected: disconnect it first"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInCheckpointExpiredEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInCheckpointExpired"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_checkpoint_expired"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "The LinkedIn sign-in expired: sign in again"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInCheckpointFailedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInCheckpointFailed"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              400
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_checkpoint_failed"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInLoginRejectedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInLoginRejected"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              400
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_login_rejected"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInSenderNotFoundEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInSenderNotFound"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              404
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_sender_not_found"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "No LinkedIn sender with this id belongs to the workspace"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "LinkedInNotPendingEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "LinkedInNotPending"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              404
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "linkedin_not_pending"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "No LinkedIn sign-in is waiting to be confirmed: sign in first"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "RequestRateLimitedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "RequestRateLimited"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              429
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "rate_limited"
            ]
          },
          "message": {
            "type": "string"
          },
          "retryAfterSeconds": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message",
          "retryAfterSeconds"
        ],
        "additionalProperties": false
      },
      "RequestIdempotencyKeyReusedEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "RequestIdempotencyKeyReused"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              400
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "idempotency_key_reused"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "This Idempotency-Key was already used for a different request: send a new key with each new request"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "RequestIdempotencyKeyInUseEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "RequestIdempotencyKeyInUse"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              409
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "idempotency_key_in_use"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "ConversationNotFoundEncoded": {
        "type": "object",
        "properties": {
          "_tag": {
            "type": "string",
            "enum": [
              "ConversationNotFound"
            ]
          },
          "statusCode": {
            "type": "number",
            "enum": [
              404
            ]
          },
          "code": {
            "type": "string",
            "enum": [
              "conversation_not_found"
            ]
          },
          "message": {
            "type": "string",
            "enum": [
              "No conversation with this id belongs to the workspace"
            ]
          }
        },
        "required": [
          "_tag",
          "statusCode",
          "code",
          "message"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "bearer": {
        "description": "Send `Authorization: Bearer <token>`. The token is an API key, which starts with `bav_` and comes from creating an API key or starting a registration, or the access token of a Bavlio sign-in.",
        "type": "http",
        "scheme": "Bearer"
      }
    }
  },
  "security": [],
  "tags": [
    {
      "name": "Registration",
      "description": "Open a Bavlio account without signing in. Starting a registration returns an API key for a new ephemeral account, which becomes permanent once its email address is verified."
    },
    {
      "name": "Authentication",
      "description": "Identify the calling account, finish a registration and manage the account's API keys."
    },
    {
      "name": "Account",
      "description": "The account behind your sign-in, and deleting it."
    },
    {
      "name": "Workspaces",
      "description": "A workspace holds the company profile, outreach schedule, team, campaigns and billing Bavlio works with. Calls that act in a workspace use the one whose id is in the bavlio-workspace header, or the account's default workspace when the header is absent."
    },
    {
      "name": "Teams",
      "description": "Manage who belongs to a workspace: its members, their roles and the invitations to join it. Each workspace's plan sets how many team seats it has."
    },
    {
      "name": "Campaigns",
      "description": "A campaign finds leads that match an ideal customer profile (ICP) and buying signals, and reaches out to them through its sequence of LinkedIn and email steps."
    },
    {
      "name": "Lead imports",
      "description": "Bring your own leads: preview a CSV, confirm which column holds what, then import it into a campaign, where the leads go through the same sequence as the ones Bavlio finds."
    },
    {
      "name": "Sequences",
      "description": "A campaign's sequence is the steps Bavlio runs for each lead: profile visits, likes, invites, LinkedIn messages, emails, waits and conditions. Every message and email waits in the review queue for approval before it is sent."
    },
    {
      "name": "Inbox",
      "description": "Conversations with the people your campaigns reached and, for accounts that opt in, your other LinkedIn and email conversations: read them, reply to them and follow changes live."
    },
    {
      "name": "Reviews",
      "description": "Messages and emails go to a lead only after someone approves them. The review queue holds the replies Bavlio drafted for people who answered and the messages and emails it drafted for campaign sequences."
    },
    {
      "name": "Billing",
      "description": "The plans on offer and the workspace's subscription and usage. Plan changes, cancellation and the billing portal need the workspace owner or an admin."
    },
    {
      "name": "LinkedIn",
      "description": "Connect the LinkedIn accounts your campaigns send from, confirm their sign-ins, choose the country LinkedIn sees them from, and disconnect them."
    },
    {
      "name": "Meetings",
      "description": "Meetings booked through the workspace's calendar tool (Google Calendar, Calendly or Cal.com), and the calendar connection that imports them."
    },
    {
      "name": "Email",
      "description": "Connect a Bavimail account, add sending domains and tracking domains, and create the inboxes campaigns send email from."
    }
  ],
  "servers": [
    {
      "url": "https://api.bavlio.com"
    }
  ]
}
```
