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.

Manage API keys
Canonical contract

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

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key.

Path parameters

No path parameters.

Query parameters

FieldTypeRequiredDescription
pageintegerNoPage number, starting at 1.Example: 1
limitintegerNoLead lists per page.Example: 25

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesList lead lists result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Query example
{
  "page": 1,
  "limit": 25
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/lead-listsCreate a lead list

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key.
Content-TypestringYesMust be multipart/form-data.Example: multipart/form-data

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body · multipart/form-data

FieldTypeRequiredDescription
namestringYesLead-list name.
csvfile · CSVNoOptional CSV containing leads.

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesCreate a lead list result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "name": "<string>",
  "csv": "<file>"
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/lead-lists/leadsAdd leads to a lead list

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key.
Content-TypestringYesMust be multipart/form-data.Example: multipart/form-data

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body · multipart/form-data

FieldTypeRequiredDescription
leadListIdstring · UUIDYesTarget lead list. lead_list_id is also accepted.
leadsView leads[] definitionobject[]NoJSON lead records. Supply this or csv, not both.
csvfile · CSVNoCSV 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.

FieldTypeRequiredDescription
linkedinUrlstring · URLYesLinkedIn profile URL. Common LinkedIn/profile URL column names are detected.
{column}stringNoAny additional lead column. Keys are normalized and stored as lead details.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesAdd leads to a lead list result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "leadListId": "00000000-0000-4000-8000-000000000000",
  "leads": [
    {
      "linkedinUrl": "https://www.linkedin.com/in/example/",
      "firstName": "Ada",
      "company": "Example Inc."
    }
  ],
  "csv": "<file>"
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/lead-lists/leads/{leadId}Get lead details

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key.

Path parameters

FieldTypeRequiredDescription
leadIdstring · UUIDYesleadId path identifier.

Query parameters

FieldTypeRequiredDescription
includeProfileDetailsbooleanNoInclude enriched profile details.Example: true

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesGet lead details result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Query example
{
  "includeProfileDetails": true
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}