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
email 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}}