Skip to main content
POST
Create a new lead

Authorizations

X-API-Key
string
header
required

Body

application/json
customerName
string
required

Full display name

Example:

"Jan de Vries"

title
string
required
Example:

"Lekkage badkamer"

street
string
Example:

"Keizersgracht"

streetNumber
string
Example:

"123"

streetNumberAddition
string
Example:

"A"

postalCode
string
Example:

"1015 CJ"

city
string
Example:

"Amsterdam"

country
string
Example:

"Nederland"

firstName
string
Example:

"Jan"

lastName
string
Example:

"de Vries"

email
string
phone
string
Example:

"+31612345678"

companyName
string
Example:

"Installatiebedrijf De Vries B.V."

description
string
Example:

"Klant meldt waterschade aan het plafond"

category
string

Job type / category

Example:

"Loodgieter"

priority
enum<string>
default:medium
Available options:
low,
medium,
high,
urgent
budgetQuote
string

Budget range

Example:

"€500 - €1000"

notes
string
Example:

"Graag zo snel mogelijk contact opnemen"

photoUrls
string[]

Publicly downloadable https image URLs to attach to the lead (max 10). Downloaded server-side and attached as brand assets; best-effort, so a failed download never fails the lead and is reported per URL in the photos field of the response.

Maximum array length: 10
Example:

Response

createdAt
string<date-time>
required
Example:

"2026-06-17T10:30:45.000Z"

updatedAt
string<date-time>
required
Example:

"2026-06-17T10:30:45.000Z"

createdBy
string | null
required

Brand member who created the record, or null when created by the system (e.g. a lead created through the public API).

Example:

null

updatedBy
string | null
required
Example:

null

deletedAt
string<date-time> | null
required
Example:

null

archivedAt
string<date-time> | null
required
Example:

null

id
string
required
Example:

"WKIabc123def456ghi789jkl"

brandId
string
required
Example:

"BRDabc123def456ghi789jkl"

customerId
string
required
Example:

"CUSabc123def456ghi789jkl"

title
string
required
Example:

"Lekkage badkamer"

description
string
required
Example:

"Klant meldt waterschade aan het plafond"

status
enum<string>
required

Lead-phase statuses (request, contacted, quote_sent, inspection, lost) are returned by GET /leads; job-phase statuses (pending, scheduled, in_progress, completed, cancelled) by GET /work-items.

Available options:
request,
contacted,
quote_sent,
inspection,
lost,
pending,
scheduled,
in_progress,
completed,
cancelled
Example:

"request"

priority
enum<string>
required
Available options:
low,
medium,
high,
urgent
Example:

"medium"

category
string | null
required
Example:

"Loodgieter"

customerSignature
string | null
required
Example:

null

scheduledStart
string<date-time> | null
required
Example:

null

scheduledEnd
string<date-time> | null
required
Example:

null

actualStart
string<date-time> | null
required
Example:

null

actualEnd
string<date-time> | null
required
Example:

null

source
enum<string>
required
Available options:
web,
phone,
chat,
referral,
other,
whatsapp,
email,
manual
Example:

"web"

receivedAt
string<date-time>
required
Example:

"2026-06-17T10:30:45.000Z"

addressId
string | null
required
Example:

"ADRabc123def456ghi789jkl"

customStatusId
string | null
required
Example:

null

estimatedCost
number | null
required

Estimated cost in cents.

Example:

null

finalCost
number | null
required

Final cost in cents.

Example:

null

budgetQuote
string | null
required
Example:

"€500 - €1000"

notes
string | null
required
Example:

null

completionNotes
string | null
required
Example:

null

tags
string[] | null
required
Example:

null

customer
object

Populated in the list endpoints (GET /leads, GET /work-items).

address
object | null

Populated in the list endpoints; null when the lead is address-less.

photos
object[]

Present only when photoUrls were supplied. One entry per URL, in order.