- Home
- /
- Help Center
- /
- ReactIn APIs
- /
- Update leads via API
Update leads via API
Need to change a lead's data after it was added? The Update Lead API lets you patch an existing lead in place — email, name, company, or custom variables — without creating a duplicate.
Already added a lead and need to change its data later — fix a typo, attach a fresh custom variable, or push an updated email from your CRM? The Update Lead API lets you patch an existing lead in place, without creating a duplicate.
✅ What you'll need before you start
Before using this API, make sure you have:
-
Your Organization ID, List ID, and API Key
-
The lead's
idyou want to update
📘 👉 Not sure how to get your API credentials? Follow this guide
💡 You get a lead's
idfrom the Get Leads endpoint (theidfield on each lead).
🔗 API Endpoint
Send a PATCH request to this endpoint to update a lead:
PATCH https://app.reactin.io/api/[organizationId]/lists/[listId]/leads
🔐 Authentication & Headers
| Header | Value | Description |
|---|---|---|
| Authorization | YOUR_API_KEY | Your secret API key from ReactIn |
| Content-Type | application/json | Required for all requests |
🔒 Keep your API key private and only use it from secure backend code — never from the browser.
🧾 What to include in your request (Body)
The only required field is leadId. Every other field is optional — send just the ones you want to change. This is a true partial update: fields you omit are left untouched.
| Field | Required | Description |
|---|---|---|
leadId | Yes | The id of the lead you want to update |
email | Optional | New email |
firstName | Optional | New first name |
lastName | Optional | New last name |
linkedinUrl | Optional | New LinkedIn profile URL |
companyName | Optional | New company name |
customVariable1–5 | Optional | Any custom variable to add or overwrite |
⚠️ Updating a lead resets its enrichment status, so ReactIn will try to auto-enrich it again with the new data. It also fires the
LEAD_UPDATEDwebhook if you have one connected.
🧪 Example (JavaScript)
await fetch("https://app.reactin.io/api/[organizationId]/lists/[listId]/leads", {
method: "PATCH",
headers: {
'Content-Type': 'application/json',
'Authorization': 'YOUR_API_KEY'
},
body: JSON.stringify({
leadId: 'lead_a1b2c3',
email: 'john.doe@newcompany.com',
companyName: 'New Company',
customVariable1: 'Renewed'
})
});
🧾 Response format
{
"success": true
}
🚫 Common Errors
| Code | Description |
|---|---|
| 400 | Bad request – leadId is missing |
| 401 | Unauthorized – invalid or missing API key |
| 404 | Not found – the list or the lead doesn't exist in your organization |
| 429 | Too many requests – rate limit exceeded |
| 500 | Internal server error – try again later |
💡 Best Practices
-
🔎 Fetch the lead's
idfrom the Get Leads endpoint before updating -
✂️ Only send the fields you actually want to change
-
🔐 Keep your API key private — use a backend server or proxy
-
🔁 Add retry logic for occasional network or server errors
💡 Pro tip: Because updates re-trigger enrichment, batching several changes into a single PATCH is cheaper than sending one request per field.