Leads

Update a lead

PATCH
/api/v1/leads/{leadId}

Write back to a lead. external_ref stamps your CRM reference; ai_paused pauses/resumes the agent on this lead; status: "closed" marks the conversation over (the only stage the API may set — see the echo-loop contract on the Webhooks page). Provide at least one field.

Authorization

bearerAuth
AuthorizationBearer <token>

Org-scoped token, created at Settings → Integrations → Webhook. Looks like rf_org_…, shown once, sent as Authorization: Bearer rf_org_…. Rate limit: 120 requests/minute per token.

In: header

Path Parameters

leadId*string

The lead's id.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/api/v1/leads/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "ai_paused": true,    "external_ref": {      "system": "my-crm",      "id": "crm-123"    }  }'
{  "lead": {    "id": "3f1c2e00-9a1b-4c77-8d2e-2b6a1f0e9c34",    "name": "Jane Buyer",    "email": null,    "phone": "+971501234567",    "channel": "whatsapp",    "qualification_stage": "qualified",    "route_target": "hotLead",    "profile": {      "budget": "1.5M AED",      "bedrooms": 2,      "area": "Dubai Marina"    },    "external_ref": {      "system": "my-crm",      "id": "crm-123",      "url": "https://crm.example.com/leads/123"    },    "conversation_url": "https://replyfirst.ae/app/chats/3f1c2e00-9a1b-4c77-8d2e-2b6a1f0e9c34",    "created_at": "2026-07-15T09:30:00.000Z",    "updated_at": "2026-07-15T09:31:12.000Z"  }}
{  "error": "Invalid JSON body"}
{  "error": "Unauthorized"}
{  "error": "Lead not found"}
{  "error": "Provide at least one of external_ref, ai_paused, status."}
{  "error": "Rate limit exceeded"}