Skip to content

Leads

GET /api/v1/leads

Scope: leads:read

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger50Results per page (1-100)
statusstringFilter by status
temperaturestringFilter: cold, warm, or hot
searchstringSearch by name, email, or phone
created_afterISO 8601Filter by creation date
created_beforeISO 8601Filter by creation date
sort_bystringcreated_atSort: created_at, updated_at, first_name, last_name, lead_score
sort_dirstringdescDirection: asc or desc
Terminal window
curl "https://api.brightlyai.app/api/v1/leads?temperature=hot&limit=10" \
-H "Authorization: Bearer brk_your_key"
{
"data": [
{
"id": "a1b2c3d4-...",
"first_name": "Jane",
"last_name": "Smith",
"phone": "+15551234567",
"email": "jane@example.com",
"status": "new",
"temperature": "hot",
"lead_score": 85,
"company": "Smith Roofing",
"created_at": "2026-05-10T14:30:00Z",
"updated_at": "2026-05-10T14:30:00Z"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 47,
"total_pages": 5
}
}

GET /api/v1/leads/:id

Scope: leads:read

Terminal window
curl "https://api.brightlyai.app/api/v1/leads/a1b2c3d4-..." \
-H "Authorization: Bearer brk_your_key"

POST /api/v1/leads

Scope: leads:write

FieldTypeRequiredDescription
first_namestringYesMax 100 chars
last_namestringNoMax 100 chars
phonestringNoPhone number
emailstringNoValid email
companystringNoMax 200 chars
address_streetstringNoMax 200 chars
citystringNo
statestringNoMax 2 chars
zipstringNoMax 10 chars
statusstringNoMax 50 chars
temperaturestringNocold, warm, or hot
sourcestringNoDefault: api. Options: manual, api, website, referral, import, other
notesstringNoMax 5000 chars
tagsstring[]NoArray of tag strings
custom_fieldsobjectNoKey-value custom fields
Terminal window
curl -X POST "https://api.brightlyai.app/api/v1/leads" \
-H "Authorization: Bearer brk_your_key" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Smith",
"phone": "+15551234567",
"email": "jane@example.com",
"company": "Smith Roofing"
}'

PUT /api/v1/leads/:id

Scope: leads:write

All create fields are accepted, all optional. Only provided fields are updated.


DELETE /api/v1/leads/:id

Scope: leads:write

{
"data": {
"id": "a1b2c3d4-...",
"deleted": true
}
}