Contacts API
Manage your contacts via the FluenzR REST API.
Contacts API
Endpoints to create, read, update, and delete contacts.
Contact object
{
"id": "con_abc123",
"email": "john.smith@example.com",
"firstName": "John",
"lastName": "Smith",
"company": "Acme Corp",
"jobTitle": "Sales Director",
"phone": "+1234567890",
"website": "https://acme.com",
"status": "active",
"groups": [
{
"id": "grp_xyz789",
"name": "LinkedIn Leads"
}
],
"tags": ["prospect", "fintech"],
"customFields": {
"sector": "Fintech",
"company_size": "50-100"
},
"pipelineStage": {
"id": "stg_qualified",
"name": "Qualified"
},
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-01-15T14:45:00Z"
}
List contacts
Retrieves the paginated list of contacts.
GET /contacts
Query parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
perPage | integer | Items per page (default: 20, max: 100) |
email | string | Filter by email (contains) |
status | string | Filter by status |
groupId | string | Filter by group |
tag | string | Filter by tag |
sort | string | Sort field |
order | string | asc or desc |
Example
curl -X GET "https://api.fluenzr.co/v1/contacts?groupId=grp_xyz789&status=active&perPage=50" \
-H "Authorization: Bearer flz_sk_xxx"
Response
{
"success": true,
"data": [
{
"id": "con_abc123",
"email": "john.smith@example.com",
"firstName": "John",
...
},
...
],
"meta": {
"page": 1,
"perPage": 50,
"total": 234,
"totalPages": 5
}
}
Get a contact
Retrieves details of a specific contact.
GET /contacts/:id
Example
curl -X GET "https://api.fluenzr.co/v1/contacts/con_abc123" \
-H "Authorization: Bearer flz_sk_xxx"
Response
{
"success": true,
"data": {
"id": "con_abc123",
"email": "john.smith@example.com",
...
}
}
Create a contact
Creates a new contact.
POST /contacts
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address (unique) |
firstName | string | First name | |
lastName | string | Last name | |
company | string | Company | |
jobTitle | string | Job title | |
phone | string | Phone | |
website | string | Website | |
groupIds | array | Group IDs | |
tags | array | Tag list | |
customFields | object | Custom fields | |
pipelineStageId | string | Pipeline stage ID |
Example
curl -X POST "https://api.fluenzr.co/v1/contacts" \
-H "Authorization: Bearer flz_sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"email": "mary.johnson@startup.io",
"firstName": "Mary",
"lastName": "Johnson",
"company": "StartupIO",
"jobTitle": "CEO",
"groupIds": ["grp_xyz789"],
"tags": ["prospect", "saas"],
"customFields": {
"sector": "SaaS",
"company_size": "10-50"
}
}'
Response (201 Created)
{
"success": true,
"data": {
"id": "con_def456",
"email": "mary.johnson@startup.io",
...
}
}
Possible errors
| Code | Message | Description |
|---|---|---|
| 400 | Email is required | Missing email |
| 400 | Invalid email format | Invalid email format |
| 409 | Email already exists | Email already in use |
Update a contact
Updates an existing contact.
PUT /contacts/:id
Request body
Same fields as creation. Only provided fields are updated.
Example
curl -X PUT "https://api.fluenzr.co/v1/contacts/con_abc123" \
-H "Authorization: Bearer flz_sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"jobTitle": "VP Sales",
"customFields": {
"company_size": "100-500"
}
}'
Response
{
"success": true,
"data": {
"id": "con_abc123",
"jobTitle": "VP Sales",
...
}
}
Delete a contact
Permanently deletes a contact.
DELETE /contacts/:id
Example
curl -X DELETE "https://api.fluenzr.co/v1/contacts/con_abc123" \
-H "Authorization: Bearer flz_sk_xxx"
Response (200 OK)
{
"success": true,
"data": {
"id": "con_abc123",
"deleted": true
}
}
Bulk create
Creates multiple contacts in a single request.
POST /contacts/bulk
Request body
{
"contacts": [
{
"email": "contact1@example.com",
"firstName": "Contact",
"lastName": "One"
},
{
"email": "contact2@example.com",
"firstName": "Contact",
"lastName": "Two"
}
],
"groupIds": ["grp_xyz789"],
"onDuplicate": "skip"
}
| Parameter | Description |
|---|---|
contacts | Array of contacts (max 1000) |
groupIds | Groups to assign to all |
onDuplicate | Action on duplicate: skip, update |
Example
curl -X POST "https://api.fluenzr.co/v1/contacts/bulk" \
-H "Authorization: Bearer flz_sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"contacts": [
{"email": "a@example.com", "firstName": "A"},
{"email": "b@example.com", "firstName": "B"}
],
"onDuplicate": "skip"
}'
Response
{
"success": true,
"data": {
"created": 2,
"updated": 0,
"skipped": 0,
"errors": []
}
}
Search contacts
Advanced contact search.
POST /contacts/search
Request body
{
"query": "example.com",
"filters": {
"status": "active",
"groups": ["grp_xyz789"],
"customFields": {
"sector": "Fintech"
}
},
"sort": {
"field": "createdAt",
"order": "desc"
}
}
Example
curl -X POST "https://api.fluenzr.co/v1/contacts/search" \
-H "Authorization: Bearer flz_sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"filters": {
"customFields": {
"sector": "Fintech"
}
}
}'
Manage contact groups
Add to groups
POST /contacts/:id/groups
{
"groupIds": ["grp_abc", "grp_def"]
}
Remove from groups
DELETE /contacts/:id/groups
{
"groupIds": ["grp_abc"]
}
Manage tags
Add tags
POST /contacts/:id/tags
{
"tags": ["vip", "priority"]
}
Remove tags
DELETE /contacts/:id/tags
{
"tags": ["priority"]
}
