Skip to main content
PATCH
/
api
/
lists
/
{id}
/
rows
/
{rowId}
Update a built-in field on a row
curl --request PATCH \
  --url https://app.puffle.ai/api/lists/{id}/rows/{rowId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "field": "name",
  "value": "<string>"
}
'
{ "success": true }

Overview

Update a single built-in field on a person row. Accepted field values:
FieldWhat changes
nameSplits on spaces into profileData.firstName, lastName, fullName
roleSets both profileData.currentRole and profileData.headline
companySets profileData.currentCompany
locationSets profileData.location.linkedinText
domainSets profileData.enrichment.company_domain. Also updates the linked company row’s domain (lowercased) when companyRowId is non-null
linkedinSets the row’s linkedin_url column directly
Enrichment column cells (AI-generated, web-search, etc.) aren’t editable here — use PUT /api/lists/{id}/cells for those.

AI agent notes

Cascade on domain. When you PATCH field=domain on a row whose companyRowId is non-null, the linked company row’s domain is also updated (lowercased). This keeps person-domain and company-domain views consistent without a second call.name is split on whitespace. "Jane Mary Doe" becomes firstName: "Jane", lastName: "Mary Doe", fullName: "Jane Mary Doe". If you need a specific first/last-name split, use POST /api/lists/{id}/rows with explicit firstName and lastName on a fresh row instead.Unknown fields are rejected. This endpoint only updates built-in columns. Passing a custom column name returns 400 "Unknown field: <name>". To update an enrichment cell, call PUT /api/lists/{id}/cells.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

List UUID.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
rowId
string<uuid>
required

Row UUID within the list.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Body

application/json

Update a single built-in field on a row. For enrichment cell updates, use PUT /api/lists/{id}/cells instead.

field
enum<string>
required

Which built-in field to update. name splits on spaces into firstName/lastName/fullName. role also updates headline. domain additionally updates the linked company row's domain (lowercased) when companyRowId is set. linkedin updates the row's LinkedIn URL column directly.

Available options:
name,
role,
company,
location,
domain,
linkedin
value
string
required

New value for the field.

Response

Field updated.

success
enum<boolean>
required
Available options:
true