Update a contact field
PATCH
/api/v1/contact-attributes/{key}
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Patch, RequestUri = new Uri("https://dashboard.azimea.com/api/v1/contact-attributes/example"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"label\": \"Subscription plan\", \"description\": null, \"archived\": false }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}const url = 'https://dashboard.azimea.com/api/v1/contact-attributes/example';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"label":"Subscription plan","description":null,"archived":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://dashboard.azimea.com/api/v1/contact-attributes/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "label": "Subscription plan", "description": null, "archived": false }'Renames or describes a custom attribute, or archives it (archived: true hides it from pickers and keeps every stored value; false brings it back). Its key and type never change: rules and stored values rely on them. Needs contacts:write.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”key
required
string
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
label
string
Example
Subscription plandescription
string
Example
nullarchived
boolean
Example
falseExample
{ "label": "Subscription plan", "description": null, "archived": false}Responses
Section titled “Responses”The field as it is now
Media typeapplication/json
object
isSuccess
boolean
value
One of:
object
key
string
label
string
type
string
description
string
createdFrom
string
createdAt
string format: date-time
archivedAt
string format: date-time
status
integer format: int32
errors
Array<object>
object
code
string
message
string
params
object
key
additional properties
fieldErrors
object
key
additional properties
Array<object>
object
code
string
message
string
params
object
key
additional properties
Example
{ "isSuccess": true, "value": { "key": "plan", "label": "Subscription plan", "type": "Text", "description": "The subscription plan the person is on.", "createdFrom": "Api", "createdAt": "2026-10-05T09:30:00+00:00", "archivedAt": null }, "status": 0, "errors": [], "fieldErrors": null}Validation failed: see errors[].code and fieldErrors
Media typeapplication/problem+json
object
statusCode
integer format: int32
message
string
errors
object
key
additional properties
Array<string>
Example
{ "statusCode": 400, "message": "One or more errors occurred!"}Missing or invalid API key
The key lacks the contacts:write permission