API Reference - Getting Started
Link: https://support.brilliantdirectories.com/support/solutions/articles/12000108046
Brilliant Directories API Reference
Version 2.1 — Last updated April 2026
Introduction
The Brilliant Directories API gives you programmatic access to your directory website's data. You can create, read, update, and delete members, leads, posts, reviews, widgets, and more using standard HTTP requests.
The API follows REST conventions. All requests and responses use JSON. Dates are formatted as YYYYMMDDHHmmss (e.g. 20240115143000) unless noted otherwise.
Base URL
Replace yourdomain.com with your actual Brilliant Directories website domain in every request:
https://www.yourdomain.com/api/v2/
Request Format
Send POST and PUT request bodies as application/x-www-form-urlencoded (standard HTML form encoding). DELETE request bodies follow the same format. GET parameters are sent as query string parameters.
Authentication
Every request must include a valid API key in the X-Api-Key HTTP header. API keys are created and managed in your website's Admin Panel under Developer Hub → Generate API Key.
Verify API Key
Check whether an API key is valid and retrieve the associated website URL and key name.
Example Request
curl -X GET "https://www.yourdomain.com/api/v2/token/verify" \ -H "X-Api-Key: your-api-key-here"
Example Response
{
"status": "success",
"message": {
"website": "https://www.yourdomain.com",
"key": "My API Key Name"
}
}Rate Limiting
The API enforces rate limiting to prevent abuse. The default limit is 100 requests per 60 seconds. This limit can be adjusted in your website's Admin Panel settings (maximum 1,000 requests per minute).
When you exceed the rate limit, the API returns a 429 Too Many Requests response. Wait for the time window to reset before retrying.
Rate Limit Response
{
"status": "error",
"message": "Too many API requests per minute"
}Errors
All error responses follow the same structure: a status field set to "error" and a message field describing the problem.
Error Response Format
{
"status": "error",
"message": "Description of the error"
}HTTP Status Codes
| Status | Meaning |
|---|---|
200 | Success — request processed normally |
400 | Bad Request — missing or invalid parameters (e.g. required field not provided) |
401 | Unauthorized — API key missing, invalid, or disabled |
403 | Forbidden — API key does not have permission to access this endpoint (API Permissions feature) |
405 | Method Not Allowed — wrong HTTP method used for this endpoint |
429 | Too Many Requests — rate limit exceeded |
Pagination
All list endpoints return paginated results. By default, 25 records are returned per page. The maximum is 100 per page.
Pagination Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | string | (none) | Cursor token from a previous response's next_page or prev_page field. Omit on the first request to start at page 1. |
limit | integer | 25 | Number of records per page (max 100) |
Pagination Response Fields
| Field | Type | Description |
|---|---|---|
total | integer | Total number of records matching the query |
current_page | integer | Current page number |
total_pages | integer | Total number of pages |
next_page | string | Cursor token for the next page. Pass as the page parameter to retrieve the next page. Empty string on the last page. |
prev_page | string | Cursor token for the previous page. Pass as the page parameter to go back. Omitted on the first page. |
message | array | Array of resource objects for the current page |
Example Paginated Response
{
"status": "success",
"total": 156,
"current_page": 2,
"total_pages": 7,
"next_page": "MypfKjI1",
"prev_page": "MSpfKjI1",
"message": [ ... ]
}Pagination Flow
First request — omit the page parameter to start at page 1:
curl -X GET "https://www.yourdomain.com/api/v2/user/get?limit=25" \ -H "X-Api-Key: your-api-key-here"
Subsequent requests — pass the next_page token from the previous response:
curl -X GET "https://www.yourdomain.com/api/v2/user/get?page=MipfKjI1" \ -H "X-Api-Key: your-api-key-here"
Filtering and Sorting
All list endpoints support filtering by any field and sorting by any column using query string parameters.
Filter Parameters
| Parameter | Type | Description |
|---|---|---|
property | string or array | Field name to filter on. Pass multiple filters as property[] |
property_value | string or array | Value to match against. Use property_value[] for multiple filters |
property_operator | string or array | Comparison operator: =, LIKE, >, <, >=, <=. Defaults to = |
Sort Parameters
| Parameter | Type | Description |
|---|---|---|
order_column | string | Column name to sort by |
order_type | string | ASC or DESC |
Filter Example — Exact Match
# Get all active users (active = 2) curl -X GET "https://www.yourdomain.com/api/v2/user/get?property=active&property_value=2" \ -H "X-Api-Key: your-api-key-here"
Filter Example — LIKE Search
# Find users whose company name contains "Tech" curl -X GET "https://www.yourdomain.com/api/v2/user/get?property=company&property_value=%25Tech%25&property_operator=LIKE" \ -H "X-Api-Key: your-api-key-here"
Filter Example — Multiple Filters
# Get active users in California curl -X GET "https://www.yourdomain.com/api/v2/user/get?property[]=active&property_value[]=2&property[]=state_code&property_value[]=CA" \ -H "X-Api-Key: your-api-key-here"
The Fields Endpoint
Each resource exposes a /fields endpoint that returns the list of writable fields for that resource. This is useful for discovering available fields dynamically without consulting the documentation.
Example Request
curl -X GET "https://www.yourdomain.com/api/v2/user/fields" \ -H "X-Api-Key: your-api-key-here"
Example Response
[
{ "key": "first_name", "label": "first_name", "required": 0 },
{ "key": "last_name", "label": "last_name", "required": 0 },
{ "key": "email", "label": "email", "required": 0 },
...
]For post types (data_posts and users_portfolio_groups), pass a form_name parameter to retrieve the custom fields specific to that post type:
curl -X GET "https://www.yourdomain.com/api/v2/data_posts/fields?form_name=my-listings-form" \ -H "X-Api-Key: your-api-key-here"
