API
Publishers can send leads from their own software. Contractors can pull confirmed appointments and buy them from theirs. Create a key in Settings → API (publishers) or Settings → Appointment delivery (contractors) after you sign up.
Authentication and limits
Send your key on every request: Authorization: Bearer rl_live_…. Keys are shown once when created; revoke a key in Settings if it leaks.
- Up to 120 requests a minute per key, and 20 lead submissions a minute. Over that you get
429; wait a minute and retry. - Leads per 24 hours by publisher level: New 25, Trusted 100, Elite 300.
- Errors come back as
{"error":{"message":"…"}}with a 4xx status.
Publishers: submit a lead
POST /api/v1/submissions with JSON (proof files as base64) or multipart/form-data (same field names, files under optin, signup and ad). Your account must be approved and the Publisher Agreement accepted.
curl -X POST https://getreallead.com/api/v1/submissions \
-H "Authorization: Bearer rl_live_…" -H "Content-Type: application/json" \
-d '{
"category": "HVAC", "job_type": "repair",
"first_name": "Ana", "last_name": "Lopez",
"phone": "5125550142", "email": "ana@example.com",
"address": "12 Oak St", "city": "Austin", "state": "TX", "zip": "78701",
"details": "AC not cooling, 15 years old",
"appointment_at": "2026-11-02T14:30",
"source": "website", "source_detail": "Landing page form, paid search",
"consent_text": "I agree to be contacted about my request…", "consent": true,
"evidence": {
"optin": [{ "name": "optin.png", "data_base64": "…" }],
"signup": [{ "name": "call.mp3", "data_base64": "…" }],
"ad": [{ "name": "page.png", "data_base64": "…" }]
}
}'- Required: category, job_type, first_name, last_name, phone, address, city, state, zip, details, appointment_at (homeowner's local time, YYYY-MM-DDTHH:mm), source, source_detail, consent_text, consent: true.
- Proof: an opt-in screenshot (optin) and the recording, text or email used to sign the homeowner up (signup). Online sources (ad, social post, website) also need a screenshot of the ad or landing page (ad). Up to 15 MB per file, 12 files.
- Optional: email, ad_url, certificate (TrustedForm URL or Jornaya LeadiD), shared_consent.
- Service fees: Air Duct Cleaning carries a $99 on-site fee. Send
fee_agreed: trueonce the homeowner agreed; our verification call confirms it. - Don't put the homeowner's name, address or phone in
details: contractors see it before they buy.
Responses: 201 with the lead and its status, or 422 with a list of fields to fix.
GET /api/v1/submissions lists your leads; GET /api/v1/submissions/L-1042 returns one (status, verification, payout).
Contractors: buy appointments
GET /api/v1/leads: appointments you can buy now in your trades and ZIP codes. No name, phone, email or street address until you buy.POST /api/v1/leads/L-1042/purchase: buy one (from your balance, else your saved card). Returns the full appointment;409if someone else got it first.GET /api/v1/leads/purchased?since=2026-10-01T00:00:00Z: everything you've bought.GET /api/v1/me: your coverage, balance and prices.
You can also receive each purchase by webhook, HubSpot or GoHighLevel, or bid in real time with ping/post. Set these up in Settings → Appointment delivery.
Reference values
category: HVAC, Plumbing, Roofing, Electrical, Solar, Cleaning, Windows, Bathroom Remodel, Kitchen Remodel, Gutters, Siding, Flooring, Garage Door, Chimney, Air Duct Cleaning.
job_type: install, repair, maintenance, estimate.
source: online_ad, social_post, website, phone, sms, door, event, referral, other.
Questions: support@getreallead.com.