← RealLead

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: true once 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; 409 if 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.