Skip to content

Create Contact

POST /external/v1/contacts

Creates a new contact in your account.

Retry-safe

Send an Idempotency-Key header to make retries safe — a repeated request with the same key replays the original response instead of creating a duplicate.

Authentication

Requires contacts:write permission.

Request Body

FieldTypeRequiredDescription
namestringYesFull name of the contact
emailstringNoEmail address
phonestringNoPhone number with country code
companystringNoCompany name
titlestringNoJob title/position
locationstringNoLocation
linkedin_profile_urlstringNoLinkedIn profile URL
sourcestringNoLead source (default: api)
tagsarrayNoArray of tag IDs (UUIDs) to attach
custom_fieldsobjectNoCustom field key-value pairs

Request

bash
curl --request POST \
  --url "https://app.getraze.com/external/v1/contacts" \
  --header "Content-Type: application/json" \
  --header "X-API-Key: YOUR_API_KEY" \
  --data '{
    "name": "Jane Smith",
    "email": "jane@company.com",
    "phone": "+5511988888888",
    "company": "Tech Corp",
    "title": "CTO",
    "tags": ["tag_01", "tag_02"]
  }'
javascript
const axios = require('axios');

const response = await axios.post(
  'https://app.getraze.com/external/v1/contacts',
  {
    name: 'Jane Smith',
    email: 'jane@company.com',
    phone: '+5511988888888',
    company: 'Tech Corp',
    title: 'CTO',
    tags: ['tag_01', 'tag_02']
  },
  {
    headers: {
      'X-API-Key': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
python
import requests

response = requests.post(
    'https://app.getraze.com/external/v1/contacts',
    headers={
        'X-API-Key': 'YOUR_API_KEY',
        'Content-Type': 'application/json'
    },
    json={
        'name': 'Jane Smith',
        'email': 'jane@company.com',
        'phone': '+5511988888888',
        'company': 'Tech Corp',
        'title': 'CTO',
        'tags': ['tag_01', 'tag_02']
    }
)

print(response.json())

Response

json
{
  "success": true,
  "data": {
    "id": "cnt_xyz789abc123",
    "name": "Jane Smith",
    "email": "jane@company.com",
    "phone": "+5511988888888",
    "company": "Tech Corp",
    "title": "CTO",
    "location": null,
    "linkedin_profile_url": null,
    "source": "api",
    "custom_fields": null,
    "created_at": "2026-01-25T09:00:00Z",
    "updated_at": "2026-01-25T09:00:00Z",
    "tags": [
      { "id": "tag_01", "name": "hot-lead", "color": "red" }
    ]
  }
}

The response returns the full contact record together with the resolved tags objects.

Errors

StatusCodeDescription
400VALIDATION_ERRORname is missing or empty
409DUPLICATE_ERRORA contact with this email already exists

GetRaze - AI-Powered Lead Generation