REST API Reference

Access your Busy Board data programmatically. All API requests must be authenticated using your API Key and follow standard REST principles.

Base URL
https://api.busyboard.co.za/v1

Pagination

Most list endpoints support pagination via query parameters. We use a standard pagination object in the response body to provide context.

Parameter Default Description
page 1 The page index you wish to retrieve.
limit 10 Number of results per page (Max 100).

GET

/agents

Retrieve a list of all Voice AI Agents configured for your organization. This includes their status, caller ID, and assigned AI profile.

{
  "success": true,
  "data": [
    {
      "id": 105,
      "callerId": "+27825550001",
      "username": "agent_001",
      "agent": "Grok",
      "status": "ONLINE",
      "isRegistered": true,
      "isActive": true
    }
  ],
  "message": "Agents found"
}
Key Attributes
  • callerId The phone number or extension identity the agent uses to make or receive calls.
  • status Real-time status (ONLINE, OFFLINE, BUSY).
GET

/agents/call-history/:agentId

View call logs for a specific agent. Includes metadata like duration, direction, and timestamps.

{
  "success": true,
  "data": [
    {
      "id": 9901,
      "from": "+27825550001",
      "to": "+27110001111",
      "duration": 45,
      "status": "COMPLETED",
      "startTime": "2026-01-23T10:00:00Z",
      "endTime": "2026-01-23T10:00:45Z"
    }
  ],
  "pagination": { "total": 120, "page": 1, "limit": 20 }
}
Log Details
  • duration The total length of the call in seconds.
  • status Result of the call (COMPLETED, MISSED, FAILED).
GET

/organisation/settings

Fetch your organization's public branding and widget configuration, including theme colors and welcome messages.

{
  "success": true,
  "data": {
    "name": "Busy Board HQ",
    "widgetThemeColor": "#0D6EFD",
    "widgetWelcomeMessage": "Hello! How can I help?",
    "widgetKey": "550e8400-e29b-41d4-a716-446655440000",
    "widgetDefaultAgent": "grok"
  }
}
Branding Data
  • widgetThemeColor The primary Hex color code used to brand your Voice Widget.
  • widgetKey The secure public key used to initialize the widget on your website.
GET

/users

List all administrative users who have access to the Busy Board portal for your organization.

{
  "success": true,
  "data": [
    {
      "id": 1,
      "userName": "admin@example.com",
      "firstName": "John",
      "lastName": "Doe",
      "role": "ADMIN",
      "isActive": true
    }
  ]
}
Admin Context
  • role Defines permission level (ADMIN or USER).
  • isActive Boolean indicating if the user is currently permitted to login.
GET

/bookings

Retrieve a list of all appointments scheduled by the AI. These records are pulled directly from the Busy Board internal booking database.

{
  "success": true,
  "data": [
    {
      "id": 55,
      "bookingDate": "2026-02-15T00:00:00.000Z",
      "bookingTime": "2026-02-15T14:30:00.000Z",
      "clientName": "Alice Smith",
      "clientEmail": "alice@example.com",
      "notes": "Interested in package B"
    }
  ]
}
Booking Attributes
  • bookingTime The specific start time of the slot in ISO 8601 format.
  • notes Raw conversation insights captured by the AI during the booking process.
Development Tips
Rate Limiting

Standard keys are limited to 200 requests per minute. If you exceed this, you will receive a 429 Too Many Requests response.

Internal Bookings

Note that this endpoint returns data from the Busy Board Internal Database. To sync with external calendars, please use our Webhooks.