Skip to main content
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.

Required scopes

Lead statuses

A lead moves through the following statuses:

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

integer
default:"25"
Maximum number of results to return.
string
Opaque cursor from the previous response’s nextCursor field. Omit for the first page.
string
Filter by lead status. One of: new, contacted, qualifying, qualified, converted, disqualified, lost.
string
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

string
required
Lead’s first name. Maximum 255 characters.
string
required
Lead’s last name. Maximum 255 characters.
string
default:"web_form"
Origin of the lead. One of: web_form, referral, agent_chat, inbound_call, mcp, import.
string
Free-text channel descriptor (for example, "instagram" or "trade_show").
string
Lead’s email address.
string
Lead’s phone number. Maximum 50 characters.
string
Name of the lead’s company. Maximum 255 characters.
string
Short description of what the lead is interested in.
string
Internal notes about the lead.
string
UUID of the user to assign this lead to.
object
Free-form attribution metadata, for example UTM parameters or ad campaign IDs.
object
Custom field key-value map. Any required custom fields your tenant has configured must be included.

Response

Returns 201 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

string
required
UUID of the lead.

Response fields

object