curl -X PATCH https://api.avina.io/v1/personas/$PERSONA_ID \
-H "Authorization: Bearer $AVINA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_titles": ["VP Sales", "CRO"]
}'
import os
import requests
response = requests.patch(
f"https://api.avina.io/v1/personas/{persona_id}",
headers={"Authorization": f"Bearer {os.environ['AVINA_API_KEY']}"},
json={
"job_titles": ["VP Sales", "CRO"]
},
)
response.raise_for_status()
print(response.json())
const response = await fetch(`https://api.avina.io/v1/personas/${personaId}`, {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.AVINA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"job_titles": ["VP Sales", "CRO"]
}),
});
const data = await response.json();
console.log(data);
{
"object": "persona",
"id": "c92d77d7-cc85-4a62-bcec-518b1d7d6260",
"name": "Sales leaders",
"job_titles": ["VP Sales", "CRO"],
"contacts_per_company": 2,
"enrich_emails": true,
"enrich_phones": false,
"contact_countries": ["US", "CA"],
"created_at": "2026-10-05T17:02:11Z",
"updated_at": "2026-11-12T09:30:00Z"
}
{
"error": {
"code": "invalid_request",
"message": "job_titles: must contain at least one title",
"request_id": "req_8f2a61c09d4e7b3a5f10c2d8",
"details": [
{
"field": "job_titles",
"message": "must contain at least one title"
}
]
}
}
Update a persona
Changes a persona.
PATCH
/
v1
/
personas
/
{persona_id}
curl -X PATCH https://api.avina.io/v1/personas/$PERSONA_ID \
-H "Authorization: Bearer $AVINA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_titles": ["VP Sales", "CRO"]
}'
import os
import requests
response = requests.patch(
f"https://api.avina.io/v1/personas/{persona_id}",
headers={"Authorization": f"Bearer {os.environ['AVINA_API_KEY']}"},
json={
"job_titles": ["VP Sales", "CRO"]
},
)
response.raise_for_status()
print(response.json())
const response = await fetch(`https://api.avina.io/v1/personas/${personaId}`, {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.AVINA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"job_titles": ["VP Sales", "CRO"]
}),
});
const data = await response.json();
console.log(data);
{
"object": "persona",
"id": "c92d77d7-cc85-4a62-bcec-518b1d7d6260",
"name": "Sales leaders",
"job_titles": ["VP Sales", "CRO"],
"contacts_per_company": 2,
"enrich_emails": true,
"enrich_phones": false,
"contact_countries": ["US", "CA"],
"created_at": "2026-10-05T17:02:11Z",
"updated_at": "2026-11-12T09:30:00Z"
}
{
"error": {
"code": "invalid_request",
"message": "job_titles: must contain at least one title",
"request_id": "req_8f2a61c09d4e7b3a5f10c2d8",
"details": [
{
"field": "job_titles",
"message": "must contain at least one title"
}
]
}
}
Fields you omit are unchanged.
Every error uses the same shape. See Errors.
job_titles replaces the whole list.
A search uses each persona as it was when the search started. Changing a persona does not affect searches already running.
Path parameters
string
required
The persona’s
id.Body
string | null
A label for the persona.Maximum 191 characters.
string[]
Replaces the whole list of job titles.
integer
How many contacts to find per company for this persona.Range: 1 to 100.
boolean
Look up an email address for each contact.
boolean
Look up a phone number for each contact. Costs more than email.
string[] | null
Where the contacts are located, as ISO 3166-1 alpha-2 codes.
null or empty means worldwide.Response
200 The updated persona.
string
required
Always
persona.string
required
The persona’s identifier. Use it in
persona_ids.string | null
A label for the persona.
string[]
required
The job titles to look for at each company.
integer
required
How many contacts to find per company for this persona.
boolean
required
Whether to look up email addresses.
boolean
required
Whether to look up phone numbers.
string[] | null
Where the contacts are located, as ISO 3166-1 alpha-2 codes. This is the person’s location, not the company’s headquarters.
null or empty means worldwide.string
required
When the persona was created.
string
required
When the persona was last changed.
Errors
| Status | Code | When |
|---|---|---|
400 | invalid_request | The request is invalid. details names each problem. |
401 | invalid_api_key | The API key is missing, invalid or revoked. |
404 | not_found | No such object in this workspace. |
429 | rate_limited | Too many requests. Retry after Retry-After seconds. |
500 | internal_error | Something went wrong on our side. Retry with backoff, and with the same Idempotency-Key if you sent one. |
curl -X PATCH https://api.avina.io/v1/personas/$PERSONA_ID \
-H "Authorization: Bearer $AVINA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_titles": ["VP Sales", "CRO"]
}'
import os
import requests
response = requests.patch(
f"https://api.avina.io/v1/personas/{persona_id}",
headers={"Authorization": f"Bearer {os.environ['AVINA_API_KEY']}"},
json={
"job_titles": ["VP Sales", "CRO"]
},
)
response.raise_for_status()
print(response.json())
const response = await fetch(`https://api.avina.io/v1/personas/${personaId}`, {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.AVINA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"job_titles": ["VP Sales", "CRO"]
}),
});
const data = await response.json();
console.log(data);
{
"object": "persona",
"id": "c92d77d7-cc85-4a62-bcec-518b1d7d6260",
"name": "Sales leaders",
"job_titles": ["VP Sales", "CRO"],
"contacts_per_company": 2,
"enrich_emails": true,
"enrich_phones": false,
"contact_countries": ["US", "CA"],
"created_at": "2026-10-05T17:02:11Z",
"updated_at": "2026-11-12T09:30:00Z"
}
{
"error": {
"code": "invalid_request",
"message": "job_titles: must contain at least one title",
"request_id": "req_8f2a61c09d4e7b3a5f10c2d8",
"details": [
{
"field": "job_titles",
"message": "must contain at least one title"
}
]
}
}

