{"name":"LeadTitan Control API","origin":"https://leadtitan.pro","docs":"https://leadtitan.pro/api","openapi":"https://leadtitan.pro/api/openapi.json","auth":{"header":"X-Api-Key","alt":"Authorization: Bearer <LEADTITAN_API_KEY>","env":"Optional Hostinger fallback LEADTITAN_API_KEY. Prefer Settings → API in the CRM.","actorEnv":"LEADTITAN_API_USER_EMAIL","note":"The key acts as that approved admin. Same permissions as logging into the CRM as that user. Keep it secret — it can create jobs, text customers, and change settings."},"loginFallback":{"path":"https://leadtitan.pro/api/session","method":"POST","body":{"email":"admin@example.com","password":"your-password"},"then":"Use session.access_token as Authorization: Bearer"},"endpoints":[{"method":"GET","path":"/api/control","purpose":"Who the API key is acting as","url":"https://leadtitan.pro/api/control"},{"method":"GET","path":"/api/control/key","purpose":"Show whether this admin has an API key (prefix only)","url":"https://leadtitan.pro/api/control/key"},{"method":"POST","path":"/api/control/key","purpose":"Generate or replace this admin API key (plaintext shown once)","url":"https://leadtitan.pro/api/control/key"},{"method":"DELETE","path":"/api/control/key","purpose":"Revoke this admin API key","url":"https://leadtitan.pro/api/control/key"},{"method":"GET","path":"/api/profiles/me","purpose":"Current actor profile","url":"https://leadtitan.pro/api/profiles/me"},{"method":"GET","path":"/api/profiles","purpose":"List team (admins + techs)","url":"https://leadtitan.pro/api/profiles"},{"method":"POST","path":"/api/profiles/create","purpose":"Create a user login","url":"https://leadtitan.pro/api/profiles/create"},{"method":"GET","path":"/api/jobs","purpose":"List open jobs","url":"https://leadtitan.pro/api/jobs"},{"method":"GET","path":"/api/jobs/search?q=","purpose":"Search jobs by name, phone, address, code","url":"https://leadtitan.pro/api/jobs/search?q="},{"method":"GET","path":"/api/jobs/:id","purpose":"Get one job","url":"https://leadtitan.pro/api/jobs/:id"},{"method":"POST","path":"/api/jobs","purpose":"Create a job (admin). Needs customer_name, job_type, assigned_tech_id unless draft (no phone).","url":"https://leadtitan.pro/api/jobs"},{"method":"PATCH","path":"/api/jobs/:id","purpose":"Update a job","url":"https://leadtitan.pro/api/jobs/:id"},{"method":"POST","path":"/api/jobs/:id/close","purpose":"Close a job","url":"https://leadtitan.pro/api/jobs/:id/close"},{"method":"GET","path":"/api/jobs/follow-ups","purpose":"Scheduled follow-ups","url":"https://leadtitan.pro/api/jobs/follow-ups"},{"method":"GET","path":"/api/jobs/appointments","purpose":"Appointments","url":"https://leadtitan.pro/api/jobs/appointments"},{"method":"GET","path":"/api/leads","purpose":"Lead inbox","url":"https://leadtitan.pro/api/leads"},{"method":"PATCH","path":"/api/leads/:id","purpose":"Update a lead","url":"https://leadtitan.pro/api/leads/:id"},{"method":"POST","path":"/api/leads/:id/approve","purpose":"Approve lead → job","url":"https://leadtitan.pro/api/leads/:id/approve"},{"method":"GET","path":"/api/brands","purpose":"Companies / trade names","url":"https://leadtitan.pro/api/brands"},{"method":"GET","path":"/api/settings","purpose":"Office settings","url":"https://leadtitan.pro/api/settings"},{"method":"PATCH","path":"/api/settings","purpose":"Update office settings","url":"https://leadtitan.pro/api/settings"},{"method":"GET","path":"/api/reports/summary","purpose":"Reports summary","url":"https://leadtitan.pro/api/reports/summary"},{"method":"GET","path":"/api/expenses","purpose":"Expenses (filter, month, category). Pending items are not in totals.","url":"https://leadtitan.pro/api/expenses"},{"method":"POST","path":"/api/expenses","purpose":"Add an expense. repeat_monthly also saves a recurring rule.","url":"https://leadtitan.pro/api/expenses"},{"method":"GET","path":"/api/expenses/rules","purpose":"Recurring expense rules","url":"https://leadtitan.pro/api/expenses/rules"},{"method":"POST","path":"/api/expenses/recurring/run","purpose":"Run the recurring expense job for this company (admin)","url":"https://leadtitan.pro/api/expenses/recurring/run"},{"method":"POST","path":"/api/signalwire/sms/send","purpose":"Send SMS via SignalWire (admin). From is masked to +12398375392. Delivery can still fail until 10DLC is Approved.","url":"https://leadtitan.pro/api/signalwire/sms/send"},{"method":"POST","path":"/api/vonage/sms/send","purpose":"Deprecated alias — forwards to SignalWire. Vonage SMS is retired.","url":"https://leadtitan.pro/api/vonage/sms/send"},{"method":"GET","path":"/api/vonage/status","purpose":"Voice / numbers status","url":"https://leadtitan.pro/api/vonage/status"},{"method":"GET","path":"/api/settings/call-history","purpose":"Call history","url":"https://leadtitan.pro/api/settings/call-history"},{"method":"GET","path":"/api/health","purpose":"Uptime (no API key required)","url":"https://leadtitan.pro/api/health"}],"createJobExample":{"method":"POST","url":"https://leadtitan.pro/api/jobs","headers":{"Content-Type":"application/json","X-Api-Key":"<LEADTITAN_API_KEY>"},"body":{"customer_name":"Jane Doe","customer_phone":"+18135551212","customer_address":"123 Main St, Tampa, FL","job_type":"Locksmith","company_brand":"keys_now_locksmith","notes":"Locked out of Honda Civic","assigned_tech_id":"<tech profile uuid from GET /api/profiles>","source":"manual"}}}