REST API for PropIntel AI — build integrations, automations, and custom workflows
All authenticated endpoints require a Bearer token in the Authorization header.
Generate API keys from Settings → API Keys. Keys start with pk_live_ or pk_test_.
All responses are JSON with shape { success, data, error? }.
/api/leadsList leads with optional filters: status, search, limit, page, projectId
/api/leadsCreate a new lead. Body: firstName, lastName, email?, phone?, source, budget?, location?, notes?
/api/leads/:idGet lead by ID with full AI analysis
/api/leads/:idUpdate lead fields
/api/leads/:idDelete lead permanently
/api/leads/:id/analyzeRun Agent 1 on lead — returns score + full analysis
/api/leads/importBulk import leads. Body: { rows: [{ firstName, lastName, ... }] }
/api/leads/:id/activitiesGet activity timeline for a lead
/api/leads/:id/score-historyGet score change history
/api/projectsList all projects
/api/projectsCreate project. Body: name, location?, propertyType?, budget?, description?
/api/projects/:idGet project by ID
/api/projects/:idUpdate project
/api/projects/:idDelete project
/api/projects/:id/matchRun Agent 3 match for all leads against this project
/api/marketing/generateRun Agent 2. Body: type (property_description|email_sequence|whatsapp|social_post), projectId, leadId?
/api/marketingList saved marketing content
/api/marketing/:idDelete marketing content
/api/ai/negotiate/:leadIdRun Agent 4 Negotiation Coach. Body: projectId?, dealMarginPercent?
/api/ai/negotiate/:leadId/historyPast negotiation sessions for a lead
/api/ai/voice-to-leadExtract lead data from transcript. Body: { transcript: string }
/api/ai/brand-voiceGet current brand voice summary
/api/ai/brand-voiceTrain brand voice. Body: { examples: string[] }
/api/analytics/pipelineRevenue pipeline stages with weighted probability
/api/analytics/funnelConversion funnel with drop-off rates
/api/analytics/heatmapBangalore zone-level lead density and scores
/api/analytics/agentsAgent performance metrics
/api/analytics/digestGenerate weekly AI digest
/api/billing/plansPublic plan list (no auth required)
/api/billing/subscriptionCurrent subscription status and usage
/api/billing/checkoutCreate Stripe checkout session. Body: { planKey, returnUrl }
/api/billing/portalOpen Stripe billing portal. Body: { returnUrl }
/api/billing/invoicesInvoice history with PDF download links
/api/teamList all team members and pending invites
/api/team/inviteInvite team member. Body: { email, role: AGENT|ADMIN }
/api/team/member/:id/roleChange member role. Body: { role }
/api/team/member/:idRemove member from company
/api/team/assignAssign lead to agent. Body: { leadId, userId }
/api/webhooks-outList configured outgoing webhooks
/api/webhooks-outCreate webhook. Body: { url, events: string[] }
/api/webhooks-out/:idDelete webhook
PropIntel AI signs all outgoing webhook payloads with HMAC-SHA256. Verify with your webhook secret:
X-PropIntel-Signature: sha256=<hex>
X-PropIntel-Event: lead.analyzed