API Overview

Introduction

The ChamberForge API lets other software read and update ChamberForge data on behalf of a member. It is organized around REST, accepts form-encoded or JSON request bodies, and returns JSON.

  • The API is served from the api. subdomain of the ChamberForge website, for example https://api.chamberforge.com/v4/....
  • All requests must use HTTPS. Requests without authentication fail.
  • Each request acts as the member who authorized the token and can only reach data that member can see.

To request access to a test server that does not affect your live data, submit a ticket through the Help Desk.

API Versions

  • v4 (/v4/...) is the current version. It is used by the ChamberForge mobile apps and covers your profile, referrals and revenue, 1-to-1s, groups and members, meetings and calendar events, connections, contacts, notifications and more. An interactive v4 reference is available at /swagger/v4.
  • v3 (/v3/...) is deprecated. It still works, but responses include a Deprecation: true header, may include a Sunset header with the date v3 will stop working, and include a Link header pointing to the v4 reference. Move to v4 for new work.

The Organization and Contact pages describe those endpoints in both versions.

Authentication

The API uses OAuth 2.0 access tokens. Send the token in the Authorization header of every request:

Authorization: Bearer {access_token}
Accept: application/json

There are two ways to get a token, both from My Account > Developer:

  • Personal Access Tokens: for your own scripts and integrations. Click Create Personal Access Token and copy the token right away; it is not shown again. Personal access tokens expire after 60 days.
  • OAuth Clients: for applications that act on behalf of other members. Create an OAuth2 application to get a client ID and secret, then follow the authorization code flow.

Your tokens carry the same access as your account. Keep them secret: do not put them in public code repositories or in code that runs in a browser.

Responses

v4 wraps every response in the same envelope.

A successful response:

{
    "success": true,
    "data": { }
}

An error:

{
    "success": false,
    "error": {
        "code": "VALIDATION_ERROR",
        "message": "The given data was invalid.",
        "fields": {
            "email": ["The email must be a valid email address."]
        }
    }
}

data is an object for a single item and an array for a list. fields is only present for validation errors.

Errors

ChamberForge uses standard HTTP status codes. Codes in the 2xx range mean success, 4xx mean the request could not be completed as sent, and 5xx mean something went wrong on ChamberForge's side (these are rare).

Status Code Meaning
200 OK. Everything worked as expected.
201 Created.
400 Bad Request. Often a missing required parameter.
401 Unauthorized. No valid access token was provided, or it has expired.
403 Forbidden. The token's member is not allowed to do this.
404 Not Found. The item does not exist or the member cannot see it.
409 Conflict. The request conflicts with the item's current state, for example answering a request that was already answered.
422 Unprocessable. Validation failed; see error.fields.
429 Too Many Requests. Slow down and retry with exponential backoff.
500, 502, 503, 504 Server error on ChamberForge's side.