Leads represent inbound prospects before they are converted to pipeline deals or contacts. The leads API uses cursor-based pagination for efficient traversal of large lead lists, and supports custom fields defined in your tenant configuration.Documentation Index
Fetch the complete documentation index at: https://developers.novala.ai/llms.txt
Use this file to discover all available pages before exploring further.
Required scopes
| Operation | Required scope |
|---|---|
| List / retrieve leads | leads.lead.read |
| Create a lead | leads.lead.write |
Lead statuses
A lead moves through the following statuses:| Status | Meaning |
|---|---|
new | Just created, not yet actioned. |
contacted | Initial outreach sent. |
qualifying | Qualification in progress. |
qualified | Lead meets your criteria. |
converted | Converted to a deal or contact. |
disqualified | Does not meet your criteria. |
lost | Previously engaged, now lost. |
Lead sources
When creating a lead,source tells Novala where it originated:
web_form · referral · agent_chat · inbound_call · mcp · import
List leads
GET /api/v1/leads
Returns a cursor-paginated list of leads for the authenticated tenant.
Query parameters
Maximum number of results to return.
Opaque cursor from the previous response’s
nextCursor field. Omit for the first page.Filter by lead status. One of:
new, contacted, qualifying, qualified, converted, disqualified, lost.Filter by the UUID of the assigned user.
Response
Paginating through all leads
TypeScript
Create a lead
POST /api/v1/leads
Creates a new lead. Use this to capture leads from external web forms, CRM integrations, or any channel that produces inbound interest.
Request body
Lead’s first name. Maximum 255 characters.
Lead’s last name. Maximum 255 characters.
Origin of the lead. One of:
web_form, referral, agent_chat, inbound_call, mcp, import.Free-text channel descriptor (for example,
"instagram" or "trade_show").Lead’s email address.
Lead’s phone number. Maximum 50 characters.
Name of the lead’s company. Maximum 255 characters.
Short description of what the lead is interested in.
Internal notes about the lead.
UUID of the user to assign this lead to.
Free-form attribution metadata, for example UTM parameters or ad campaign IDs.
Custom field key-value map. Any required custom fields your tenant has configured must be included.
Response
Returns201 Created with { "data": { lead object } }.
Example: capturing a web form submission
Get a lead
GET /api/v1/leads/{id}
Retrieves a single lead by ID.
Path parameters
UUID of the lead.