Skip to main content
PATCH
/
api
/
leads
Update Lead
curl --request PATCH \
  --url https://app.puffle.ai/api/leads \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "id": "<string>",
  "title": "<string>",
  "company": {
    "name": "<string>",
    "id": "<string>",
    "domain": "<string>"
  },
  "location": {
    "city": "<string>",
    "state": "<string>",
    "country": "<string>",
    "raw": "<string>"
  },
  "socials": [
    {
      "url": "<string>"
    }
  ],
  "contacts": [
    {
      "value": "<string>"
    }
  ],
  "domain": "<string>",
  "industry": "<string>",
  "size": "<string>",
  "attributes": {},
  "raw": {}
}
'
{
  "lead": {
    "id": "<string>",
    "type": "person",
    "name": {
      "full": "<string>",
      "short": "<string>",
      "aliases": [
        "<string>"
      ],
      "first": "<string>",
      "last": "<string>"
    },
    "lists": [
      {
        "id": "<string>",
        "name": "<string>"
      }
    ],
    "sources": [
      {
        "id": "<string>"
      }
    ],
    "createdAt": "<string>",
    "updatedAt": "<string>",
    "location": {
      "city": "<string>",
      "state": "<string>",
      "country": "<string>",
      "raw": "<string>"
    },
    "socials": [
      {
        "url": "<string>"
      }
    ],
    "contacts": [
      {
        "value": "<string>"
      }
    ],
    "attributes": {},
    "raw": {},
    "title": "<string>",
    "company": {
      "name": "<string>",
      "id": "<string>",
      "domain": "<string>"
    }
  }
}
CLI:
puffle lead update --id <id>
puffle lead update --id <id> --name <name> --title <title> --company <company> --location <location> --socials <socials> --contacts <contacts> --domain <domain> --industry <industry> --size <size> --attributes <attributes> --raw <raw>

Overview

Updates mutable base fields and attributes on a Lead. The Lead type is intentionally not writable; person and company Leads have different identity rules and must stay in their original category. Use this when a user corrects core Lead data such as name, company, title, domain, profile fields, custom attributes, or enrichment outputs.

AI agent notes

Pass the Lead id plus only the fields or attributes that should change. The response returns { lead } with the updated object.Do not use this endpoint to move a Lead between Lists. List membership is managed by the List Lead endpoints.

Authorizations

Authorization
string
header
required

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

Body

application/json
id
string
required
Minimum string length: 1
name
object
title
string | null
company
object
location
object
socials
object[]
contacts
object[]
domain
string | null
industry
string | null
size
string | null
attributes
object
raw
object

Response

Lead updated.

lead
object
required