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

ParameterTypeDescription
pageintegerPage number (default: 1)
perPageintegerItems per page (default: 20, max: 100)
emailstringFilter by email (contains)
statusstringFilter by status
groupIdstringFilter by group
tagstringFilter by tag
sortstringSort field
orderstringasc 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

FieldTypeRequiredDescription
emailstringYesEmail address (unique)
firstNamestringFirst name
lastNamestringLast name
companystringCompany
jobTitlestringJob title
phonestringPhone
websitestringWebsite
groupIdsarrayGroup IDs
tagsarrayTag list
customFieldsobjectCustom fields
pipelineStageIdstringPipeline 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

CodeMessageDescription
400Email is requiredMissing email
400Invalid email formatInvalid email format
409Email already existsEmail 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"
}
ParameterDescription
contactsArray of contacts (max 1000)
groupIdsGroups to assign to all
onDuplicateAction 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"]
}