OutFlo Public API / Guide
Conversations and messages
Read, filter, organize, and reply to LinkedIn conversations.
Overview
Conversation operations support inbox retrieval, context, messages, tags, state changes, drafts, and replies. Each operation below follows the same request and response presentation.
Authentication
Send the same x-api-key header with every request.
Request and response schemas
Every operation below follows the same contract order. All responses use the standard status, data, and error envelope.
GET/api/public/conversationsList conversations
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
Path parameters
No path parameters.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page number, starting at 1.Example: 1 |
| pageSize | integer | No | Results per page, up to 100.Example: 25 |
| fromDate | string · date-time | No | Inclusive ISO 8601 start timestamp. |
| toDate | string · date-time | No | Inclusive ISO 8601 end timestamp. |
| searchText | string | No | Search attendee names and LinkedIn profile URLs. |
| accountIDs | string · CSV | No | Comma-separated sender account UUIDs. |
| campaign_ids | string · CSV | No | Comma-separated campaign UUIDs. |
| tag_ids | string · CSV | No | Comma-separated numeric tag IDs. |
| reply_tag | enum | No | INTERESTED, NOT_INTERESTED, or GENERIC. |
| is_starred | boolean | No | Filter starred conversations. |
| isArchived | boolean | No | Filter archived conversations. |
| show_sent_messages | boolean | No | Include conversations with sent campaign messages. |
| show_responses | boolean | No | Only include conversations that have responses. |
| include_messages | boolean | No | Embed recent messages in each conversation. |
| message_limit | integer | No | Embedded messages per conversation, up to 100.Example: 25 |
Request body
No request body.
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | List conversations result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"page": 1,
"pageSize": 25,
"fromDate": "<string>",
"toDate": "<string>",
"searchText": "<string>",
"accountIDs": "<string>",
"campaign_ids": "<string>",
"tag_ids": "<string>",
"reply_tag": "<string>",
"is_starred": false,
"isArchived": false,
"show_sent_messages": false,
"show_responses": false,
"include_messages": false,
"message_limit": 25
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}POST/api/public/conversations/queryQuery conversations with advanced filters
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be application/json.Example: application/json |
Path parameters
No path parameters.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page number, starting at 1.Example: 1 |
| pageSize | integer | No | Results per page, up to 100.Example: 25 |
| fromDate | string · date-time | No | Inclusive ISO 8601 start timestamp. |
| toDate | string · date-time | No | Inclusive ISO 8601 end timestamp. |
| searchText | string | No | Search attendee names and LinkedIn profile URLs. |
| accountIDs | string · CSV | No | Comma-separated sender account UUIDs. |
| campaign_ids | string · CSV | No | Comma-separated campaign UUIDs. |
| tag_ids | string · CSV | No | Comma-separated numeric tag IDs. |
| reply_tag | enum | No | INTERESTED, NOT_INTERESTED, or GENERIC. |
| is_starred | boolean | No | Filter starred conversations. |
| isArchived | boolean | No | Filter archived conversations. |
| show_sent_messages | boolean | No | Include conversations with sent campaign messages. |
| show_responses | boolean | No | Only include conversations that have responses. |
| include_messages | boolean | No | Embed recent messages in each conversation. |
| message_limit | integer | No | Embedded messages per conversation, up to 100.Example: 25 |
Request body · application/json
| Field | Type | Required | Description |
|---|---|---|---|
| filtersView filters definition | object | No | Advanced conversation filters. Query-string equivalents are also accepted. |
| page | integer | No | Page number, starting at 1. |
| pageSize | integer | No | Results per page, up to 200. |
Object definitions
Object and array fields link to their immediate child schema below.
filters
Advanced conversation filters. Query-string equivalents are also accepted.
| Field | Type | Required | Description |
|---|---|---|---|
| fromDate | string · date-time | No | Inclusive ISO 8601 start timestamp. |
| toDate | string · date-time | No | Inclusive ISO 8601 end timestamp. |
| search | string | No | Search attendee names and LinkedIn profile URLs. |
| linkedinUrl | string · URL | No | Match one attendee LinkedIn profile. |
| starred | boolean | No | Only return starred conversations. |
| tags | integer[] | string | No | Tag IDs, or reply-tag values, to match. |
| archived | boolean | No | Return archived rather than active conversations. |
| drafts | boolean | No | Only return conversations with saved drafts. |
| replyStatus | enum | No | awaiting_reply or my_reply. |
| campaigns | string[] | "all" | No | Campaign UUIDs, or all. |
| showSentMessages | boolean | No | Include conversations with sent campaign messages. |
| showResponses | boolean | No | Only include conversations that have responses. |
| replyTag | enum | No | INTERESTED, NOT_INTERESTED, or GENERIC. |
| accountIDs | string[] | No | Connected sender account UUIDs. |
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Query conversations with advanced filters result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"filters": {
"fromDate": "<string>",
"toDate": "<string>",
"search": "<string>",
"linkedinUrl": "https://www.linkedin.com/in/example/",
"starred": false,
"tags": 1,
"archived": false,
"drafts": false,
"replyStatus": "<string>",
"campaigns": [],
"showSentMessages": false,
"showResponses": false,
"replyTag": "<string>",
"accountIDs": []
},
"page": 1,
"pageSize": 1
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}GET/api/public/conversations/{id}/contextGet conversation context
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | string · UUID | Yes | id path identifier. |
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| include_messages | boolean | No | Include recent messages in the context response. |
| message_limit | integer | No | Messages to include, up to 50.Example: 10 |
Request body
No request body.
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Get conversation context result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"include_messages": false,
"message_limit": 10
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}GET/api/public/conversations/{id}/messagesList messages in a conversation
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | string · UUID | Yes | id path identifier. |
Query parameters
No query parameters.
Request body
No request body.
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | List messages in a conversation result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"headers": {
"x-api-key": "<string>"
}
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}PATCH/api/public/conversations/{id}/starUpdate a conversation star
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be application/json.Example: application/json |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | string · UUID | Yes | id path identifier. |
Query parameters
No query parameters.
Request body · application/json
| Field | Type | Required | Description |
|---|---|---|---|
| is_starred | boolean | Yes | True to star the conversation; false to remove the star. |
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Update a conversation star result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"is_starred": false
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}PATCH/api/public/conversations/{id}/archiveUpdate a conversation archive state
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be application/json.Example: application/json |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | string · UUID | Yes | id path identifier. |
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| isArchived | boolean | No | Alternative to the JSON body. True archives; false restores. |
Request body · application/json
| Field | Type | Required | Description |
|---|---|---|---|
| isArchived | boolean | No | True to archive; false to restore. Defaults to true. |
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Update a conversation archive state result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"isArchived": false
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}PATCH/api/public/conversations/{id}/readUpdate a conversation read state
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | string · UUID | Yes | id path identifier. |
Query parameters
No query parameters.
Request body
No request body.
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Update a conversation read state result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"headers": {
"x-api-key": "<string>"
}
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}PATCH/api/public/conversations/{id}/draftSave a conversation draft
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be application/json.Example: application/json |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | string · UUID | Yes | id path identifier. |
Query parameters
No query parameters.
Request body · application/json
| Field | Type | Required | Description |
|---|---|---|---|
| draft | string | null | No | Draft message text. Use null or an empty value to clear it. |
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Save a conversation draft result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"draft": "<string>"
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}PATCH/api/public/conversations/{id}/reply-tagUpdate a conversation reply tag
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be application/json.Example: application/json |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | string · UUID | Yes | id path identifier. |
Query parameters
No query parameters.
Request body · application/json
| Field | Type | Required | Description |
|---|---|---|---|
| tag | enum | Yes | INTERESTED, NOT_INTERESTED, or GENERIC. |
| reason | string | No | Optional explanation, up to 1,000 characters. |
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Update a conversation reply tag result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"tag": "<string>",
"reason": "<string>"
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}POST/api/public/conversations/replySend or reply to a LinkedIn message
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be application/json.Example: application/json |
Path parameters
No path parameters.
Query parameters
No query parameters.
Request body · application/json
| Field | Type | Required | Description |
|---|---|---|---|
| senderProfileUrl | string · URL | Yes | Connected LinkedIn sender profile. |
| receiverLinkedInUrl | string · URL | Yes | Recipient LinkedIn profile. |
| text | string | Yes | Message text. |
| attachments | string[] | No | Optional public attachment URLs. |
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Send or reply to a LinkedIn message result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"senderProfileUrl": "https://www.linkedin.com/in/example/",
"receiverLinkedInUrl": "https://www.linkedin.com/in/example/",
"text": "<string>",
"attachments": []
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}