Skip to content

Contacts

Full CRUD operations for contacts in your graph8 workspace.


List Contacts

GET /contacts

Returns a paginated list of contacts.

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number (1-indexed)
limitinteger50Items per page (1-200)
emailstringFilter by work email (exact match)
list_idintegerFilter by list membership

Example

Terminal window
curl "https://be.graph8.com/api/v1/contacts?limit=10&page=1" \
-H "Authorization: Bearer $API_KEY"

Response

{
"data": [
{
"id": 1,
"first_name": "Jane",
"last_name": "Smith",
"work_email": "jane@acme.com",
"direct_phone": "+1-555-0100",
"mobile_phone": null,
"job_title": "VP of Engineering",
"seniority_level": "VP",
"linkedin_url": "https://linkedin.com/in/janesmith",
"city": "San Francisco",
"state": "CA",
"country": "US",
"company_id": 42
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 243,
"has_next": true
}
}

Get Contact

GET /contacts/{contact_id}

Returns detailed information about a single contact, including associated company data.

Path Parameters

ParameterTypeDescription
contact_idintegerContact ID

Example

Terminal window
curl "https://be.graph8.com/api/v1/contacts/1" \
-H "Authorization: Bearer $API_KEY"

Response

{
"data": {
"id": 1,
"first_name": "Jane",
"last_name": "Smith",
"full_name": "Jane Smith",
"work_email": "jane@acme.com",
"personal_emails": null,
"direct_phone": "+1-555-0100",
"mobile_phone": null,
"job_title": "VP of Engineering",
"job_department": "Engineering",
"seniority_level": "VP",
"linkedin_url": "https://linkedin.com/in/janesmith",
"twitter_url": null,
"facebook_url": null,
"city": "San Francisco",
"state": "CA",
"country": "US",
"about": null,
"confidence_score": 0.95,
"company": {
"id": 42,
"name": "Acme Inc",
"domain": "acme.com",
"website": "https://acme.com",
"industry": "Technology",
"employee_count": 500,
"city": "San Francisco",
"state": "CA",
"country": "US",
"linkedin_url": "https://linkedin.com/company/acme",
"logo_url": "https://logo.clearbit.com/acme.com"
},
"meta_data": null,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-01T14:20:00Z"
}
}

Errors

StatusMeaning
404Contact not found

Create Contact

POST /contacts

Create a new contact and add it to a list.

Request Body

FieldTypeRequiredDescription
list_idintegerYesTarget list to add the contact to
first_namestringNoFirst name
last_namestringNoLast name
work_emailstringNoWork email address
personal_emailsstringNoPersonal email addresses
direct_phonestringNoDirect phone number
mobile_phonestringNoMobile phone number
job_titlestringNoJob title
job_departmentstringNoDepartment
seniority_levelstringNoSeniority level
linkedin_urlstringNoLinkedIn profile URL
citystringNoCity
statestringNoState or province
countrystringNoCountry
company_domainstringNoCompany domain for matching

Example

Terminal window
curl -X POST "https://be.graph8.com/api/v1/contacts" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"list_id": 5,
"first_name": "John",
"last_name": "Doe",
"work_email": "john@techcorp.io",
"job_title": "CTO",
"company_domain": "techcorp.io"
}'

Response 201 Created

{
"data": {
"status": "success",
"count": 1,
"validation_errors": []
}
}

Update Contact

PATCH /contacts/{contact_id}

Update one or more fields on a contact. Only include the fields you want to change.

Path Parameters

ParameterTypeDescription
contact_idintegerContact ID

Request Body

All fields are optional. Include only the fields to update.

FieldTypeDescription
first_namestringFirst name
last_namestringLast name
work_emailstringWork email address
direct_phonestringDirect phone number
mobile_phonestringMobile phone number
job_titlestringJob title
job_departmentstringDepartment
seniority_levelstringSeniority level
linkedin_urlstringLinkedIn profile URL
citystringCity
statestringState or province
countrystringCountry

Example

Terminal window
curl -X PATCH "https://be.graph8.com/api/v1/contacts/1" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"job_title": "CTO", "city": "New York"}'

Response

{
"data": {
"updated": 1
}
}

Errors

StatusMeaning
400No fields provided to update
404Contact not found

Delete Contact

DELETE /contacts/{contact_id}

Soft-delete a contact. The contact is marked as deleted but not permanently removed.

Path Parameters

ParameterTypeDescription
contact_idintegerContact ID

Example

Terminal window
curl -X DELETE "https://be.graph8.com/api/v1/contacts/1" \
-H "Authorization: Bearer $API_KEY"

Response

{
"data": {
"deleted": true
}
}

Errors

StatusMeaning
404Contact not found