OutFlo Public API / Guide
Lead management
Create lead lists, import leads, search by LinkedIn URL, and retrieve lead details.
Overview
Lead-list writes accept JSON or multipart form data where documented. Read operations use pagination and focused query filters, while all responses keep the standard API envelope.
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/lead-listsList lead lists
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 |
| limit | integer | No | Lead lists per page.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 lead lists 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,
"limit": 25
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}POST/api/public/lead-listsCreate a lead list
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be multipart/form-data.Example: multipart/form-data |
Path parameters
No path parameters.
Query parameters
No query parameters.
Request body · multipart/form-data
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Lead-list name. |
| csv | file · CSV | No | Optional CSV containing leads. |
Success response · 201
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 201. |
| data | object | array | null | Yes | Create a lead list result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"name": "<string>",
"csv": "<file>"
}{
"status": 201,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}POST/api/public/lead-lists/leadsAdd leads to a lead list
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
| Content-Type | string | Yes | Must be multipart/form-data.Example: multipart/form-data |
Path parameters
No path parameters.
Query parameters
No query parameters.
Request body · multipart/form-data
| Field | Type | Required | Description |
|---|---|---|---|
| leadListId | string · UUID | Yes | Target lead list. lead_list_id is also accepted. |
| leadsView leads[] definition | object[] | No | JSON lead records. Supply this or csv, not both. |
| csv | file · CSV | No | CSV lead records. Supply this or leads, not both. |
Object definitions
Object and array fields link to their immediate child schema below.
leads[]
JSON lead records. Supply this or csv, not both.
| Field | Type | Required | Description |
|---|---|---|---|
| linkedinUrl | string · URL | Yes | LinkedIn profile URL. Common LinkedIn/profile URL column names are detected. |
| {column} | string | No | Any additional lead column. Keys are normalized and stored as lead details. |
Success response · 200
| Field | Type | Required | Description |
|---|---|---|---|
| status | integer | Yes | HTTP status mirrored in the JSON body. Success: 200. |
| data | object | array | null | Yes | Add leads to a lead list result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"leadListId": "00000000-0000-4000-8000-000000000000",
"leads": [
{
"linkedinUrl": "https://www.linkedin.com/in/example/",
"firstName": "Ada",
"company": "Example Inc."
}
],
"csv": "<file>"
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}GET/api/public/lead-lists/leads/searchFind a lead by LinkedIn URL
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
Path parameters
No path parameters.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| linkedinUrl | string · URL | Yes | LinkedIn profile URL to find. |
| leadListId | string · UUID | No | Restrict the search to one lead list. |
| limit | integer | No | Maximum matches, from 1 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 | Find a lead by LinkedIn URL result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"linkedinUrl": "https://www.linkedin.com/in/example/",
"leadListId": "00000000-0000-4000-8000-000000000000",
"limit": 10
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}GET/api/public/lead-lists/leads/{leadId}Get lead details
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Workspace API key. |
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
| leadId | string · UUID | Yes | leadId path identifier. |
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| includeProfileDetails | boolean | No | Include enriched profile details.Example: true |
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 lead details result. The exact data fields depend on the selected resource. |
| error | string | null | Yes | Null on success; a developer-readable message on failure. |
{
"includeProfileDetails": true
}{
"status": 200,
"data": "<endpoint-specific response data>",
"error": null
}{
"status": 400,
"data": null,
"error": "Developer-readable error message"
}