API reference
Leads
GET /leads lists leads and messages. Post a new lead to a lead source's URL to have it called back in seconds.
GET /leads
Leads and messages, newest first. Takes the same since and limit as calls.
{
"data": [
{
"id": "a9b8…",
"kind": "lead",
"name": "Sam Rivera",
"phone": "+13125550118",
"email": "sam@larkhaven.example",
"need": "Two-bedroom rental from January",
"fields": { "budget": "2400" },
"status": "new",
"lost_reason": null,
"has_consent": true,
"source_id": "5e6f…",
"created_at": "2026-11-02T14:58:00.000Z"
}
]
}status:new,contacted,qualified,booked,lostorclosed.lost_reason:not_interested,wrong_number,no_responseorother, when lost.
Send a new lead to be called
New leads go to a lead source, not to /api/v1. In Nerro, open Leads, connect a form or CRM, and copy the source's private intake URL. It's shown once and is the only credential, so keep it secret. Then post each lead to it:
curl -X POST https://www.nerro.co/api/leads/intake/YOUR_SOURCE_TOKEN \
-H "Content-Type: application/json" \
-d '{
"name": "Sam Rivera",
"phone": "+13125550118",
"email": "sam@larkhaven.example",
"message": "Looking for a two-bedroom from January",
"consent": true
}'- Form fields work as well as JSON. Common names are understood:
phone,mobileorphone_number;nameorfirst_nameandlast_name;message,notesorcomments. Anything else is kept with the lead. consent: sendtrue, orconsent_textandconsent_urlfrom your form. Without it the lead is saved but not called.- Up to 60 leads a minute per source, 20 KB each.
The answer says what happens next:
{ "ok": true, "leadId": "a9b8…", "status": "calling" }status is calling, scheduled (with callAt, when it came in outside calling hours) or stored (with a reason, like a duplicate or no consent). The source's own rules apply: out-of-hours handling, retries and duplicates. See Lead sources.
Still stuck? Email support@nerro.si. A person replies within 24 business hours.
