V2 API
Beta
Released: 2024-05-01
Base URL
https://api.chamberlink.com/v2
V2 API Documentation
The beta version with enhanced features and improved performance.
Authentication
All API requests must be authenticated using OAuth 2.0 with the Client
Credentials grant type. You'll need to obtain an access token by making a request to the
/auth/token
endpoint.
Example Request
curl -X POST https://api.chamberlink.com/v2/auth/token \
-H "Content-Type: application/json" \
-d '{
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"grant_type": "client_credentials"
}'
Example Response
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600
}
Making API Requests
Once you have an access token, include it in the Authorization header of your API requests:
curl -X GET https://api.chamberlink.com/v2/chambers \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Authentication
Endpoints for authentication and authorization.
POST
/auth/token
Generate an access token
Parameters
Name | Type | Required | Description |
---|---|---|---|
client_id | string | Yes | Your API client ID |
client_secret | string | Yes | Your API client secret |
grant_type | string | Yes | The grant type (client_credentials) |
Example Request
curl -X POST https://api.chamberlink.com/v2/auth/token \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Responses
200
Success
{"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600}
401
Unauthorized
{"error": "invalid_client", "error_description": "Client authentication failed"}
Chambers
Endpoints for managing chambers.
GET
/chambers
List all chambers
Parameters
Name | Type | Required | Description |
---|---|---|---|
page | integer | No | Page number (default: 1) |
per_page | integer | No | Items per page (default: 20, max: 100) |
filter[type] | string | No | Filter by chamber type (hq, subsidiary) |
filter[status] | string | No | Filter by status (active, inactive, pending) |
sort | string | No | Sort field and direction (e.g., name, -created_at) |
Example Request
curl -X GET https://api.chamberlink.com/v2/chambers \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Responses
200
Success
{"data": [...], "meta": {"current_page": 1, "total": 50, "per_page": 20}}
GET
/chambers/{id}
Get a specific chamber
Parameters
Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | Chamber ID |
include | string | No | Include related resources (e.g., members, events) |
Example Request
curl -X GET https://api.chamberlink.com/v2/chambers/{id} \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Responses
200
Success
{"id": "123", "name": "Example Chamber", ...}
404
Not Found
{"error": "Chamber not found"}
POST
/chambers
Create a new chamber
Parameters
Name | Type | Required | Description |
---|---|---|---|
name | string | Yes | Chamber name |
type | string | Yes | Chamber type (hq, subsidiary) |
hq_id | string | No | HQ chamber ID (required if type is subsidiary) |
address | object | Yes | Chamber address |
Example Request
curl -X POST https://api.chamberlink.com/v2/chambers \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Responses
201
Created
{"id": "123", "name": "New Chamber", ...}
422
Validation Error
{"error": "Validation failed", "fields": {"name": ["The name field is required."]}}
Members
Endpoints for managing chamber members.
GET
/chambers/{chamber_id}/members
List members of a chamber
Parameters
Name | Type | Required | Description |
---|---|---|---|
chamber_id | string | Yes | Chamber ID |
page | integer | No | Page number (default: 1) |
per_page | integer | No | Items per page (default: 20, max: 100) |
filter[status] | string | No | Filter by status (active, inactive, pending) |
sort | string | No | Sort field and direction (e.g., name, -joined_at) |
Example Request
curl -X GET https://api.chamberlink.com/v2/chambers/{chamber_id}/members \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Responses
200
Success
{"data": [...], "meta": {"current_page": 1, "total": 50, "per_page": 20}}
POST
/chambers/{chamber_id}/members
Add a member to a chamber
Parameters
Name | Type | Required | Description |
---|---|---|---|
chamber_id | string | Yes | Chamber ID |
name | string | Yes | Member name |
string | Yes | Member email | |
phone | string | No | Member phone number |
membership_type | string | Yes | Membership type |
Example Request
curl -X POST https://api.chamberlink.com/v2/chambers/{chamber_id}/members \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Responses
201
Created
{"id": "456", "name": "John Doe", ...}
422
Validation Error
{"error": "Validation failed", "fields": {"email": ["The email must be a valid email address."]}}
Events
Endpoints for managing chamber events.
GET
/chambers/{chamber_id}/events
List events for a chamber
Parameters
Name | Type | Required | Description |
---|---|---|---|
chamber_id | string | Yes | Chamber ID |
page | integer | No | Page number (default: 1) |
per_page | integer | No | Items per page (default: 20, max: 100) |
filter[status] | string | No | Filter by status (upcoming, past, canceled) |
filter[date_from] | string | No | Filter by start date (ISO 8601 format) |
filter[date_to] | string | No | Filter by end date (ISO 8601 format) |
Example Request
curl -X GET https://api.chamberlink.com/v2/chambers/{chamber_id}/events \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Responses
200
Success
{"data": [...], "meta": {"current_page": 1, "total": 50, "per_page": 20}}