| Doc. Number | Article Title | Effective Date | Version |
| FHC-API-05 | Retrieving Contact List Data from outside the FORTH CRM via API | September 25, 2026 | 1.0 |
Target Audience:
Super Admins and CRM administrators who need to extract contact list records using API from the FORTH CRM to external tools or secure storage.
This article provides the technical framework for accessing your FORTH CRM contact records from external environments via API. It is organized into the following sections:
- Overview
- Prerequisites
- How to Access
- Safety and Security
- How it Works
- Troubleshooting / FAQ
- Assistance
Overview
Whether you are building a custom dashboard, syncing data with a third-party marketing tool, or performing an automated audit, the FORTH CRM's contact list API bridges your CRM data and your external applications.
By using our standardized GET requests, you can request a CSV file to be emailed to you directly or to a provided SFTP server, allowing you to extract contact details, including custom fields and tags, without needing to log in to the CRM dashboard.
Prerequisites
To export contact list data, you must have the following permissions and system details:
Super Admin or Developer-level permissions in FORTH CRM.
Read access enabled under Admin > Roles > Admin > Modify API.
An active API key linked to a valid Company Name and User to authenticate your request.
A JSON Parser to read data returned by the CRM.
OPTIONAL - An SFTP Server
How to Access
Log in to the FORTH CRM.
Go to Admin > REST API to locate your active API key credentials.
Go to Contacts > Client Dashboard and select the Contacts dropdown menu (see image below).
Note the number in parentheses next to your list title (for example, in My Contacts (9), 9 is your Contact List ID).
Safety and Security
An API Key grants direct access to sensitive Client Information (PII). Never share your key in public repositories (like GitHub) or via unencrypted email.
How it Works
Setting Up the Query
All requests to the FORTH CRM must include your API-Key in the request header. FORTH uses the GET method to "read" data from your contact lists.
Endpoint: https://api.forthcrm.com/v1/contacts
Method 1: The Quick Test (cURL)
Use this in your terminal or command line to verify your connection immediately.
curl -X GET "https://api.forthcrm.com/v1/contacts?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY_HERE" \
-H "Content-Type: application/json"Method 2: The Data Script (Python)
This is ideal if you are pulling data into a spreadsheet, a database, or another software tool. It includes basic error handling to let you know if your key is invalid.
import requests
# Configuration
API_URL = "https://api.forthcrm.com/v1/contacts"
API_KEY = "YOUR_API_KEY_HERE"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Parameters (Filtering for specific lists or status)
params = {
"status": "active",
"limit": 50
}
def fetch_contacts():
response = requests.get(API_URL, headers=headers, params=params)
if response.status_code == 200:
data = response.json()
print(f"Successfully retrieved {len(data['contacts'])} contacts.")
return data['contacts']
else:
print(f"Error: {response.status_code} - {response.text}")
return None
# Execute
contact_list = fetch_contacts()Understanding the Response
When you query the FORTH CRM, it will return a JSON object. Here is a breakdown of what that data structure typically looks like:
- id: The unique system identifier for the contact.
- first_name / last_name: Primary identity fields.
- custom_fields: An array containing any unique data points you've created in the FORTH CRM (e.g., "Lead Source" or "Credit Score").
- created_at: A timestamp (ISO 8601) showing when the contact entered the system.
Create a Query
You must use your own third party software to create a basic query. See the example below using Postman.
- Open Postman (or other software) > create a new post > and then fill in the following information:
- Change the type to POST
- Enter Endpoint Location where indicated.
- Under the Headers tab/section:
- Select API-key as the Key
- Enter the API-key from the FORTH CRM as the Value.
- Under the Body tab/section:
- Select RAW for the data type.
- Select JSON as the coding language.
-
Paste either of the following JSON formatted code blocks (depending in your import process - direct email or SFTP server).
SUGGESTION: Replace all quotes with new ones, as importing them may impact how the platform processes the query.
- Provide the List ID and other information by replacing the "XXX" in the code pasted above.
- Click Send. If everything is done correctly, you will receive a confirmation message like the one shown below.
Troubleshooting / FAQ
Why did I receive a 429 Too Many Requests error?
FORTH CRM APIs have "Rate Limits" to prevent server overload. This error indicates that requests are reaching the server too quickly. Introduce a small delay (0.5 seconds) between large batches of queries.
Why is my export request failing authentication?
Verify that your API key is actively assigned to both a Company Name and an individual User profile in the Admin tab. Additionally, confirm that your role includes Read permissions for Contact Lists under Admin > Roles.
Assistance
If you have any questions, contact us at api@setforth.com.
Article Version History
| Version | Effective Date |
Description |
| Basic | 06/09/2021 | Initial Release |
| 0.1 | 10/05/2022 | Formatting updates only; no subject matter updates |
| 0.2 | 01/23/2023 | Updated company references to Forth; Added header and version control footer |
| 0.3 | 11/09/2023 | Updated all screenshots to reflect the current user interface. |
| 0.4 | 11/12/2024 | Grammatical updates only; no subject matter updates made. |
| 0.5 | 06/10/2025 | Update link to correct API endpoint. |
| 0.6 | 03/19/2026 | Updated screenshots to reflect updates to the user interface. Made other grammatical and formatting tweaks; updated the article title to improve searchability. |
1.0 |
09/25/2026 |
Clarified the article title to show connection to API; updated the contact email address near the end of the article; restructured the article for consistency; made minor formatting tweaks. |
|
|
|
|
|