BigContacts offers a REST API for securely accessing, adding, updating, and deleting data within your CRM. This guide explains each available endpoint, its purpose, and how to use it.
All API requests must include your access token either in the URL or as a bearer token in the Authorization header.
Option 1: In the URL
https://app.bigcontacts.com/api/contacts.json?access_token=YOUR_TOKEN
Option 2: In the header
Authorization: Bearer YOUR_TOKEN
All responses follow this structure:
{ "status": "success" or "error", "message": "Description of the result", "payload": data_object_or_array, "page": 1, // only for paginated results "totalcount": total_number_of_records }
Endpoint:
GET /api/users.{format}
Purpose:
Returns details of all users (team members) in your BigContacts account. Use this when you need to view the user directory or assign records.
Endpoint:
GET /api/contacts.{format}
Purpose:
Retrieves all contact records visible to the user making the request. Supports pagination.
Query Parameters:
page: Page number (optional)
results: Results per page (default is 100)
Endpoint:
GET /api/contacts.{format}&{operator}={datetime}
Operators:
updated, updated_gt, updated_lt, updated_gte, updated_lte
created, created_gt, created_lt, created_gte, created_lte
Example:
/api/contacts.json?updated_gt=20240101
Endpoint:
GET /api/contacts.{format}&q={search_term}
Purpose:
Returns contacts matching the given search string in fields like name, company, or associated emails.
Endpoint:
GET /api/contact/{id}.{format}
Purpose:
Returns full contact details for the contact with the given ID.
Endpoint:
POST /api/contacts.{format}
Purpose:
Adds a new contact. Send data in JSON format. Required fields:
first_name
last_name
emails.email
Example:
{ "first_name": "John", "last_name": "Doe", "emails": [{"email": "john@example.com"}] }
Endpoint:
PUT /api/contact/{id}.{format}
Purpose:
Updates an existing contact. Fields not included in the request remain unchanged. For array fields (like emails), include all desired values—existing entries will be overwritten.
Endpoint:
DELETE /api/contact/{id}.{format}
Purpose:
Deletes a specific contact, if the user has appropriate permissions.
Endpoint:
GET /api/contact/{id}/activity.{format}
Purpose:
Returns a list of all activities (calls, meetings, notes, etc.) associated with the contact.
Endpoint:
GET /api/contact/{id}/activity/{activityid}.{format}
Purpose:
Fetches a single activity record for the contact.
Endpoint:
POST /api/contact/{id}/activity.{format}
Fields:
title
activity_type (e.g., "Call", "Meeting")
description
Example:
{ "title": "Follow-up call", "activity_type": "Phone call", "description": "Discussed renewal timeline" }
Endpoint:
PUT /api/contact/{id}/activity/{activityid}.{format}
Purpose:
Updates an activity record tied to a specific contact.
Endpoint:
DELETE /api/contact/{id}/activity/{activityid}.{format}
Purpose:
Deletes an activity record by ID.
Endpoint:
GET /api/tasks.{format}?event=task_new
Purpose:
Returns all assigned tasks.
Endpoint:
GET /api/tasks.{format}?event=meeting_new
Purpose:
Returns all scheduled meetings.
Endpoint:
GET /api/tasks.{format}?event=note_new
Purpose:
Returns all notes logged in the system.