> ## 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.

# Mark a conversation read

> Resets the conversation's unread_count to 0 and returns the conversation with its transcript. Nothing changes on LinkedIn or in the mailbox.

## OpenAPI

```json
{
  "openapi": "3.2.0",
  "info": {
    "title": "Bavlio API",
    "version": "1.0.0"
  },
  "paths": {
    "/conversations/{id}/read": {
      "post": {
        "tags": [
          "Inbox"
        ],
        "operationId": "inbox.markConversationRead",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "The conversation's id, from List conversations."
            },
            "required": true
          }
        ],
        "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": "RequestInvalidBody",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequestInvalidBodyEncoded"
                }
              }
            }
          },
          "401": {
            "description": "AuthMissing | AuthInvalid",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/AuthMissingEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/AuthInvalidEncoded"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "WorkspaceNotFound | ConversationNotFound",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/WorkspaceNotFoundEncoded"
                    },
                    {
                      "$ref": "#/components/schemas/ConversationNotFoundEncoded"
                    }
                  ]
                }
              }
            }
          }
        },
        "description": "Resets the conversation's unread_count to 0 and returns the conversation with its transcript. Nothing changes on LinkedIn or in the mailbox.",
        "summary": "Mark a conversation read"
      }
    }
  },
  "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
      },
      "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
      },
      "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
      },
      "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"
    }
  ]
}
```
