Lead API

Send leads to FirstFiveMin from any app. Post a lead with your channel token and it gets the same five-minute response. Leads you send must include the person's consent to be contacted if you want us to call them.

POST /api/speed-to-lead/channel-inbound.php

Authentication

Send your channel token in the Authorization header, or in X-STL-Channel-Token if your tool cannot set Authorization. Make the token on your account's Integrations page.

Authorization: Bearer YOUR_CHANNEL_TOKEN

Fields

FieldTypeWhat it is
phonestringThe person's phone number. US numbers only.
emailstringThe person's email address. A lead needs a phone or an email.
first_namestringThe person's first name.
last_namestringThe person's last name.
sourcestringWhere the lead came from. A value not in this list is stored as "form".
form, chatbot, api, hosted_page, sms_inbound, voice_inbound, partner, zapier, import, email, meta_lead_ad, ai_shopper, fb_messenger, ig_dm, whatsapp
source_campaignstringA short campaign tag: letters, numbers, dots, dashes and underscores, up to 64 characters.
property_refstringWhat the person asked about: an address, a service or a listing.
priceintegerA price the person mentioned, in whole dollars.
languagestringThe language to answer the person in.
en, es
timezonestringThe person's time zone, as an IANA name.
contextobjectExtra details stored with the lead, as key-value pairs.
source_event_atstringWhen the person reached out on your side, in ISO 8601 with a time zone.
idempotency_keystringSend the same key when you retry, and the lead is not created twice.
external_lead_idstringYour system's own id for this lead. With platform, one lead per id.
platformstringThe name of the sending system, used with external_lead_id.
testbooleantrue sends a test lead: you can see it arrive, and it is never called.
consentobjectWho collected the person's consent to be called, and when. Send all three fields or none: a partial block is refused. Without it the lead is stored and is never called by the assistant.
consent.sourcestringThe form or system that collected the consent.
consent.referencestringYour record of it: a submission id, a URL or a transcript id.
consent.captured_atstringWhen consent was given, in ISO 8601 with a time zone. Not in the future.

Example

curl -X POST 'https://firstfivemin.com/api/speed-to-lead/channel-inbound.php' \
  -H 'Authorization: Bearer YOUR_CHANNEL_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "first_name": "Pat",
    "last_name": "Rivera",
    "phone": "+14155550123",
    "source": "api",
    "property_ref": "123 Main St",
    "language": "en",
    "idempotency_key": "zap-run-8812",
    "consent": {
        "source": "website-form",
        "reference": "form-submission-99812",
        "captured_at": "2026-10-04T15:03:00Z"
    }
}'

The machine-readable description (OpenAPI 3.1) is at /api/openapi.json

← FirstFiveMin · Español