curl --request PATCH \
--url https://api.aura-app.ai/v1/leads/{id} \
--header 'Content-Type: application/json' \
--data '
{
"company": "Acme Corp",
"email": "john@example.com",
"full_name": "John Doe",
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"phone": "+14155552671",
"status": "qualified",
"timezone": "America/New_York"
}
'import requests
url = "https://api.aura-app.ai/v1/leads/{id}"
payload = {
"company": "Acme Corp",
"email": "john@example.com",
"full_name": "John Doe",
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"phone": "+14155552671",
"status": "qualified",
"timezone": "America/New_York"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
company: 'Acme Corp',
email: 'john@example.com',
full_name: 'John Doe',
notes: [
{
content: '<string>',
created_at: '2026-05-08T14:23:11.000Z',
user_id: '<string>'
}
],
phone: '+14155552671',
status: 'qualified',
timezone: 'America/New_York'
})
};
fetch('https://api.aura-app.ai/v1/leads/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aura-app.ai/v1/leads/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'company' => 'Acme Corp',
'email' => 'john@example.com',
'full_name' => 'John Doe',
'notes' => [
[
'content' => '<string>',
'created_at' => '2026-05-08T14:23:11.000Z',
'user_id' => '<string>'
]
],
'phone' => '+14155552671',
'status' => 'qualified',
'timezone' => 'America/New_York'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aura-app.ai/v1/leads/{id}"
payload := strings.NewReader("{\n \"company\": \"Acme Corp\",\n \"email\": \"john@example.com\",\n \"full_name\": \"John Doe\",\n \"notes\": [\n {\n \"content\": \"<string>\",\n \"created_at\": \"2026-05-08T14:23:11.000Z\",\n \"user_id\": \"<string>\"\n }\n ],\n \"phone\": \"+14155552671\",\n \"status\": \"qualified\",\n \"timezone\": \"America/New_York\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.aura-app.ai/v1/leads/{id}")
.header("Content-Type", "application/json")
.body("{\n \"company\": \"Acme Corp\",\n \"email\": \"john@example.com\",\n \"full_name\": \"John Doe\",\n \"notes\": [\n {\n \"content\": \"<string>\",\n \"created_at\": \"2026-05-08T14:23:11.000Z\",\n \"user_id\": \"<string>\"\n }\n ],\n \"phone\": \"+14155552671\",\n \"status\": \"qualified\",\n \"timezone\": \"America/New_York\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aura-app.ai/v1/leads/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"company\": \"Acme Corp\",\n \"email\": \"john@example.com\",\n \"full_name\": \"John Doe\",\n \"notes\": [\n {\n \"content\": \"<string>\",\n \"created_at\": \"2026-05-08T14:23:11.000Z\",\n \"user_id\": \"<string>\"\n }\n ],\n \"phone\": \"+14155552671\",\n \"status\": \"qualified\",\n \"timezone\": \"America/New_York\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"attribution": {
"am_wuid": "wuid_4o251b0b130v3z6d5q0n",
"fbclid": "IwAR_sample_fbclid",
"utm_source": "facebook"
},
"company": "Acme Corp",
"consent": [
{
"agreed": true,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000001",
"kind": "custom",
"label": "I agree to receive appointment reminder texts from Acme Inc. Msg & data rates may apply. Reply STOP to opt out.",
"links": [
{
"text": "SMS Terms",
"url": "https://example.com/sms-terms"
},
{
"text": "Privacy Policy",
"url": "https://example.com/privacy"
}
],
"phone": "+15551234567",
"source": "booking_form",
"state": "granted"
},
{
"agreed": false,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000002",
"kind": "custom",
"label": "I agree to receive promotional texts from Acme Inc.",
"links": [],
"phone": "+15551234567",
"source": "booking_form",
"state": "declined"
}
],
"created_at": "2026-01-17T08:00:00Z",
"disqualification_data": {
"archived_at": "<string>",
"booking_link_id": "<string>",
"field_key": "<string>",
"field_label": "<string>",
"reason": "<string>",
"timestamp": "2026-05-08T14:23:11.000Z",
"value": "<unknown>"
},
"email": "john@example.com",
"full_name": "John Doe",
"id": "550e8400-e29b-41d4-a716-446655440000",
"last_payment_at": "<string>",
"metadata": {
"city": "<string>",
"country": "<string>",
"countryCode": "US",
"dataConsentAcceptedAt": "2026-05-08T14:23:11.000Z",
"dclid": "<string>",
"epik": "<string>",
"fbclid": "<string>",
"gadSource": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"gclsrc": "<string>",
"hyclid": "<string>",
"ipAddress": "<string>",
"landingPage": "acme.com/sales-manager",
"landingUrl": "https://acme.com/sales-manager?utm_source=google&variant=b",
"language": "en-US",
"latitude": 123,
"liFatId": "<string>",
"longitude": 123,
"msclkid": "<string>",
"partner": "<string>",
"rdtCid": "<string>",
"ref": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "<string>",
"scCid": "<string>",
"screenHeight": 123,
"screenWidth": 123,
"setterCode": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"userAgent": "<string>",
"utmCampaign": "spring-2026",
"utmContent": "<string>",
"utmId": "<string>",
"utmMedium": "cpc",
"utmSource": "google",
"utmTerm": "<string>",
"wbraid": "<string>",
"yclid": "<string>"
},
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"payment_count": 123,
"payment_status": "<string>",
"phone": "+14155552671",
"source": {
"attribution_platform": "google",
"city": "San Francisco",
"country": "US",
"country_code": "US",
"epik": "<string>",
"fbc": "<string>",
"fbclid": "<string>",
"fbp": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"hyclid": "<string>",
"landing_page": "acme.com/sales-manager",
"li_fat_id": "<string>",
"msclkid": "<string>",
"rdt_cid": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "CA",
"sc_cid": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"utm_campaign": "summer_promo",
"utm_content": "<string>",
"utm_id": "1234567890",
"utm_medium": "cpc",
"utm_source": "google",
"utm_term": "<string>",
"wbraid": "<string>",
"landing_url": "https://acme.com/sales-manager?utm_source=google&variant=b"
},
"status": "new",
"timezone": "America/New_York",
"total_paid_cents": 123,
"updated_at": "2026-01-17T09:30:00Z"
},
"success": true
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}Update lead
Update fields on an existing lead.
Only provided fields will be updated; all others remain unchanged.
Updatable fields:
full_name,email,phone,company,status,timezone,notes
At least one field is required — an empty body returns 400 VALIDATION_ERROR.
curl --request PATCH \
--url https://api.aura-app.ai/v1/leads/{id} \
--header 'Content-Type: application/json' \
--data '
{
"company": "Acme Corp",
"email": "john@example.com",
"full_name": "John Doe",
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"phone": "+14155552671",
"status": "qualified",
"timezone": "America/New_York"
}
'import requests
url = "https://api.aura-app.ai/v1/leads/{id}"
payload = {
"company": "Acme Corp",
"email": "john@example.com",
"full_name": "John Doe",
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"phone": "+14155552671",
"status": "qualified",
"timezone": "America/New_York"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
company: 'Acme Corp',
email: 'john@example.com',
full_name: 'John Doe',
notes: [
{
content: '<string>',
created_at: '2026-05-08T14:23:11.000Z',
user_id: '<string>'
}
],
phone: '+14155552671',
status: 'qualified',
timezone: 'America/New_York'
})
};
fetch('https://api.aura-app.ai/v1/leads/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aura-app.ai/v1/leads/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'company' => 'Acme Corp',
'email' => 'john@example.com',
'full_name' => 'John Doe',
'notes' => [
[
'content' => '<string>',
'created_at' => '2026-05-08T14:23:11.000Z',
'user_id' => '<string>'
]
],
'phone' => '+14155552671',
'status' => 'qualified',
'timezone' => 'America/New_York'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aura-app.ai/v1/leads/{id}"
payload := strings.NewReader("{\n \"company\": \"Acme Corp\",\n \"email\": \"john@example.com\",\n \"full_name\": \"John Doe\",\n \"notes\": [\n {\n \"content\": \"<string>\",\n \"created_at\": \"2026-05-08T14:23:11.000Z\",\n \"user_id\": \"<string>\"\n }\n ],\n \"phone\": \"+14155552671\",\n \"status\": \"qualified\",\n \"timezone\": \"America/New_York\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.aura-app.ai/v1/leads/{id}")
.header("Content-Type", "application/json")
.body("{\n \"company\": \"Acme Corp\",\n \"email\": \"john@example.com\",\n \"full_name\": \"John Doe\",\n \"notes\": [\n {\n \"content\": \"<string>\",\n \"created_at\": \"2026-05-08T14:23:11.000Z\",\n \"user_id\": \"<string>\"\n }\n ],\n \"phone\": \"+14155552671\",\n \"status\": \"qualified\",\n \"timezone\": \"America/New_York\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aura-app.ai/v1/leads/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"company\": \"Acme Corp\",\n \"email\": \"john@example.com\",\n \"full_name\": \"John Doe\",\n \"notes\": [\n {\n \"content\": \"<string>\",\n \"created_at\": \"2026-05-08T14:23:11.000Z\",\n \"user_id\": \"<string>\"\n }\n ],\n \"phone\": \"+14155552671\",\n \"status\": \"qualified\",\n \"timezone\": \"America/New_York\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"attribution": {
"am_wuid": "wuid_4o251b0b130v3z6d5q0n",
"fbclid": "IwAR_sample_fbclid",
"utm_source": "facebook"
},
"company": "Acme Corp",
"consent": [
{
"agreed": true,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000001",
"kind": "custom",
"label": "I agree to receive appointment reminder texts from Acme Inc. Msg & data rates may apply. Reply STOP to opt out.",
"links": [
{
"text": "SMS Terms",
"url": "https://example.com/sms-terms"
},
{
"text": "Privacy Policy",
"url": "https://example.com/privacy"
}
],
"phone": "+15551234567",
"source": "booking_form",
"state": "granted"
},
{
"agreed": false,
"at": "2026-10-08T10:00:00.000Z",
"disclosure": null,
"granted_at": null,
"id": "6f1b2c3d-0000-4000-8000-000000000002",
"kind": "custom",
"label": "I agree to receive promotional texts from Acme Inc.",
"links": [],
"phone": "+15551234567",
"source": "booking_form",
"state": "declined"
}
],
"created_at": "2026-01-17T08:00:00Z",
"disqualification_data": {
"archived_at": "<string>",
"booking_link_id": "<string>",
"field_key": "<string>",
"field_label": "<string>",
"reason": "<string>",
"timestamp": "2026-05-08T14:23:11.000Z",
"value": "<unknown>"
},
"email": "john@example.com",
"full_name": "John Doe",
"id": "550e8400-e29b-41d4-a716-446655440000",
"last_payment_at": "<string>",
"metadata": {
"city": "<string>",
"country": "<string>",
"countryCode": "US",
"dataConsentAcceptedAt": "2026-05-08T14:23:11.000Z",
"dclid": "<string>",
"epik": "<string>",
"fbclid": "<string>",
"gadSource": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"gclsrc": "<string>",
"hyclid": "<string>",
"ipAddress": "<string>",
"landingPage": "acme.com/sales-manager",
"landingUrl": "https://acme.com/sales-manager?utm_source=google&variant=b",
"language": "en-US",
"latitude": 123,
"liFatId": "<string>",
"longitude": 123,
"msclkid": "<string>",
"partner": "<string>",
"rdtCid": "<string>",
"ref": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "<string>",
"scCid": "<string>",
"screenHeight": 123,
"screenWidth": 123,
"setterCode": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"userAgent": "<string>",
"utmCampaign": "spring-2026",
"utmContent": "<string>",
"utmId": "<string>",
"utmMedium": "cpc",
"utmSource": "google",
"utmTerm": "<string>",
"wbraid": "<string>",
"yclid": "<string>"
},
"notes": [
{
"content": "<string>",
"created_at": "2026-05-08T14:23:11.000Z",
"user_id": "<string>"
}
],
"payment_count": 123,
"payment_status": "<string>",
"phone": "+14155552671",
"source": {
"attribution_platform": "google",
"city": "San Francisco",
"country": "US",
"country_code": "US",
"epik": "<string>",
"fbc": "<string>",
"fbclid": "<string>",
"fbp": "<string>",
"gbraid": "<string>",
"gclid": "<string>",
"hyclid": "<string>",
"landing_page": "acme.com/sales-manager",
"li_fat_id": "<string>",
"msclkid": "<string>",
"rdt_cid": "<string>",
"referrer": "https://acme.com/book-a-call",
"region": "CA",
"sc_cid": "<string>",
"ttclid": "<string>",
"twclid": "<string>",
"utm_campaign": "summer_promo",
"utm_content": "<string>",
"utm_id": "1234567890",
"utm_medium": "cpc",
"utm_source": "google",
"utm_term": "<string>",
"wbraid": "<string>",
"landing_url": "https://acme.com/sales-manager?utm_source=google&variant=b"
},
"status": "new",
"timezone": "America/New_York",
"total_paid_cents": 123,
"updated_at": "2026-01-17T09:30:00Z"
},
"success": true
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "NOT_FOUND",
"error": "Lead not found",
"success": false,
"requestId": "req_abc123"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}{
"code": "<string>",
"error": "<string>",
"success": false,
"requestId": "<string>"
}full_name,email,phone,company,status,timezone,notes
400 VALIDATION_ERROR.Path Parameters
Lead ID (UUID)
"550e8400-e29b-41d4-a716-446655440000"
Body
Company name
"Acme Corp"
Email address
"john@example.com"
Full name of the lead
"John Doe"
Internal notes attached to the lead. See the LeadNotes schema for the array shape (each note has content + created_at + optional user_id). Replaces the existing notes array. Pass null or omit to skip.
Show child attributes
Show child attributes
Phone number in E.164 format (validated): + followed by country code and digits, no spaces or hyphens.
^\+[1-9]\d{1,14}$"+14155552671"
Lead status. Before the lead books, its form answers set its status. After it books, its calls set it. You can still write a status here, and it is saved as sent, but Aura's status sync later puts back the status its calls give. The sync checks up to 100 of an organization's leads each hour, so in a large organization this can take days. To change it for good, change the call's outcome. A won call beats a disqualifying form: while the lead's current call is won, the sync never puts back disqualified.
"qualified"
Lead's timezone. Must be an IANA zone (e.g. Europe/Berlin); the common aliases EST, CET, PST8PDT and US/Pacific are accepted, and surrounding whitespace is trimmed. Anything else is DISCARDED rather than rejected: the request still succeeds and every other field is applied. On create the timezone is left empty; on update the lead's existing timezone is left UNCHANGED, never cleared. If an unusable timezone is the only field supplied to an update, the request is rejected, because nothing would have been applied. Rejecting outright at the boundary is planned once telemetry shows nobody depends on the current leniency (AUR-2090).
"America/New_York"