Docs menu

REST API

Workspaces

Read workspaces available to the PAT owner and retrieve workspace settings. The list can include a workspace where PAT access is disabled, so a returned slug does not guarantee workspace-scoped API access.

GET/v2/workspaces

Workspace list search

List workspaces accessible to the requester.

Parameters

  • statusWorkspaceStatus | nullquery
    Workspace status to retrieve.
  • only_activeboolean | nullquery
    Whether to return only active workspaces.
  • offsetintegerqueryDefault 0
    Zero-based offset of the first returned item.
  • limitintegerqueryDefault 20
    Maximum number of items returned.

Request example

curl --request GET \
  --url "https://api.callabo.ai/v2/workspaces" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer $CALLABO_PAT"

Success responses

Response body

  • itemsRequiredV2Workspace[]
    Workspaces.
  • idRequiredinteger
    Workspace identifier.
  • slugRequiredstring
    Current workspace slug used in the request path.
  • nameRequiredstring
    Workspace name.
  • emailstring | null
    Workspace contact email address.
  • billing_emailRequiredstring
    Workspace billing email address.
  • keywordsRequiredstring[]
    Default workspace keywords.
  • colorRequiredstring
    Workspace display color.
  • use_2faRequiredboolean
    Whether two-factor authentication is enabled.
  • ip_block_typeRequiredIpBlockType
    Workspace IP access restriction mode.
  • statusRequiredWorkspaceStatus
    Workspace status.
  • referrer_codestring | null
    Workspace referral code.
  • domainsRequiredstring[]
    Email domains registered to the workspace.
  • pat_enabledRequiredboolean
    Whether workspace-scoped APIs can be called using a personal access token.
  • base_roleRequiredBaseWorkspaceRole
    Requester's default workspace role.
  • settingsRequiredV2WorkspaceSettings
    Default record and retention settings for the workspace.
  • created_atRequiredstring (date-time)
    Date and time when the workspace was created.
  • updated_atRequiredstring (date-time)
    Date and time when the workspace was last updated.
  • pageRequiredV2Pagination
    Workspace pagination information.
  • offsetRequiredinteger
    Zero-based offset of the first returned item.
  • limitRequiredinteger
    Requested maximum number of items.
  • totalRequiredinteger
    Total number of matching items.

Response example

{
  "items": [
    {
      "id": 1,
      "slug": "your-workspace",
      "name": "Example",
      "billing_email": "developer@example.com",
      "keywords": [
        "string"
      ],
      "color": "string",
      "use_2fa": true,
      "ip_block_type": "none",
      "status": "created",
      "domains": [
        "string"
      ],
      "pat_enabled": true,
      "base_role": "workspace_manager",
      "settings": {
        "default_access_scope": "all",
        "default_transcribe_language": "detect",
        "save_media": true,
        "save_dialog": true,
        "provision_type": "scim_auto",
        "request_insight_extract_type": "custom"
      },
      "created_at": "2026-08-27T03:00:00Z",
      "updated_at": "2026-08-27T03:00:00Z"
    }
  ],
  "page": {
    "offset": 1,
    "limit": 1,
    "total": 1
  }
}

Errors

StatusError codeDescription
401UNAUTHORIZEDUnauthenticated request
422VALIDATION_ERRORUnprocessable content
429RATE_LIMIT_EXCEEDEDRequest limit exceededLearn more
GET/v2/workspaces/{slug}/quota

Check workspace usage and limits

View the current usage and limits of your workspace.

Parameters

  • slugRequiredstringpath
    Workspace slug

Request example

curl --request GET \
  --url "https://api.callabo.ai/v2/workspaces/your-workspace/quota" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer $CALLABO_PAT"

Success responses

Response body

  • planRequiredApiSubscriptionPlan
    Currently active subscription plan.
  • codeRequiredstring
    Subscription plan code.
  • planRequiredstring
    Human-readable subscription plan name.
  • usage_reset_cycleRequiredSubscriptionCycle
    Cycle on which included usage is reset.
  • priceRequiredApiSubscriptionPlanPrice
    Subscription plan price information.
  • includedRequiredApiSubscriptionPlanIncluded
    Resources included in the subscription plan.
  • featuresRequiredSubscriptionPlanFeature[]
    Features enabled for the subscription plan.
  • purchase_policyRequiredApiSubscriptionPlanPurchasePolicy
    Subscription plan purchase policy.
  • usage_periodRequiredApiWorkspaceQuotaUsagePeriod
    Current usage period.
  • start_dateRequiredstring (date)
    Usage period start date.
  • end_dateRequiredstring (date)
    Usage period end date.
  • quotaRequiredApiWorkspaceQuotaMetrics
    Quota provided by the current plan.
  • seatRequiredinteger
    Number of archivist members.
  • viewerRequiredinteger | null
    Number of viewer members, or null when unlimited.
  • recording_secondsRequirednumber
    Recording time in seconds.
  • usageRequiredApiWorkspaceQuotaMetrics
    Current usage.
  • seatRequiredinteger
    Number of archivist members.
  • viewerRequiredinteger | null
    Number of viewer members, or null when unlimited.
  • recording_secondsRequirednumber
    Recording time in seconds.
  • remainingRequiredApiWorkspaceQuotaMetrics
    Current remaining quota.
  • seatRequiredinteger
    Number of archivist members.
  • viewerRequiredinteger | null
    Number of viewer members, or null when unlimited.
  • recording_secondsRequirednumber
    Recording time in seconds.
  • allows_overageRequiredboolean
    Whether recording usage beyond the limit can be billed later.
  • rate_limitRequiredApiWorkspaceRateLimit
    V2 public API request limit policy.
  • scopestring
    Scope used to apply the request limit.
  • limitRequiredinteger
    Maximum number of requests allowed within the fixed window.
  • window_secondsRequiredinteger
    Length of the fixed request-counting window in seconds.

Response example

{
  "plan": {
    "code": "string",
    "plan": "string",
    "usage_reset_cycle": "monthly",
    "price": {
      "base": 1,
      "seat": 1,
      "recording_minutes": 1
    },
    "included": {
      "seat": 1,
      "viewer": 1,
      "unlimited_viewer": true,
      "recording_minutes": 1,
      "labels": 1,
      "restricted_event_words": 1
    },
    "features": [
      "ai_recording"
    ],
    "purchase_policy": {
      "additional_seat": true
    }
  },
  "usage_period": {
    "start_date": "2026-08-27",
    "end_date": "2026-08-27"
  },
  "quota": {
    "seat": 1,
    "viewer": 1,
    "recording_seconds": 1
  },
  "usage": {
    "seat": 1,
    "viewer": 1,
    "recording_seconds": 1
  },
  "remaining": {
    "seat": 1,
    "viewer": 1,
    "recording_seconds": 1
  },
  "allows_overage": true,
  "rate_limit": {
    "scope": "workspace",
    "limit": 1,
    "window_seconds": 1
  }
}

Errors

StatusError codeDescription
401UNAUTHORIZEDUnauthenticated request
403FORBIDDENInsufficient requester permissions
404WORKSPACE_NOT_FOUNDNot found
422VALIDATION_ERRORUnprocessable content
429RATE_LIMIT_EXCEEDEDRequest limit exceededLearn more
GET/v2/workspaces/{slug}

Workspace details inquiry

Retrieve details of the workspace identified by the slug.

Parameters

  • slugRequiredstringpath
    Workspace slug

Request example

curl --request GET \
  --url "https://api.callabo.ai/v2/workspaces/your-workspace" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer $CALLABO_PAT"

Success responses

Response body

  • idRequiredinteger
    Workspace identifier.
  • slugRequiredstring
    Current workspace slug used in the request path.
  • nameRequiredstring
    Workspace name.
  • emailstring | null
    Workspace contact email address.
  • billing_emailRequiredstring
    Workspace billing email address.
  • keywordsRequiredstring[]
    Default workspace keywords.
  • colorRequiredstring
    Workspace display color.
  • use_2faRequiredboolean
    Whether two-factor authentication is enabled.
  • ip_block_typeRequiredIpBlockType
    Workspace IP access restriction mode.
  • statusRequiredWorkspaceStatus
    Workspace status.
  • referrer_codestring | null
    Workspace referral code.
  • domainsRequiredstring[]
    Email domains registered to the workspace.
  • pat_enabledRequiredboolean
    Whether workspace-scoped APIs can be called using a personal access token.
  • base_roleRequiredBaseWorkspaceRole
    Requester's default workspace role.
  • settingsRequiredV2WorkspaceSettings
    Default record and retention settings for the workspace.
  • default_access_scopeRequiredDefaultAccessScope
    Default access scope for new records.
  • default_transcribe_languageRequiredTranscribeLanguage
    Default transcription language for new records.
  • save_mediaRequiredboolean
    Whether the original media is stored.
  • save_dialogRequiredboolean
    Whether the transcript is stored.
  • provision_typeRequiredProvisionType
    Member provisioning method.
  • max_device_session_countinteger | null
    Maximum number of device sessions per member.
  • request_insight_extract_typeRequiredWorkspaceInsightExtractType
    Default insight generation type.
  • default_custom_insight_template_idinteger | null
    Default custom insight template identifier.
  • record_lifecycle_daysinteger | null
    Number of days to retain the record.
  • media_lifecycle_daysinteger | null
    Number of days to retain the original media.
  • dialog_lifecycle_daysinteger | null
    Number of days to retain the transcript.
  • created_atRequiredstring (date-time)
    Date and time when the workspace was created.
  • updated_atRequiredstring (date-time)
    Date and time when the workspace was last updated.

Response example

{
  "id": 1,
  "slug": "your-workspace",
  "name": "Example",
  "billing_email": "developer@example.com",
  "keywords": [
    "string"
  ],
  "color": "string",
  "use_2fa": true,
  "ip_block_type": "none",
  "status": "created",
  "domains": [
    "string"
  ],
  "pat_enabled": true,
  "base_role": "workspace_manager",
  "settings": {
    "default_access_scope": "all",
    "default_transcribe_language": "detect",
    "save_media": true,
    "save_dialog": true,
    "provision_type": "scim_auto",
    "request_insight_extract_type": "custom"
  },
  "created_at": "2026-08-27T03:00:00Z",
  "updated_at": "2026-08-27T03:00:00Z"
}

Errors

StatusError codeDescription
401UNAUTHORIZEDUnauthenticated request
403FORBIDDENInsufficient requester permissions
404WORKSPACE_NOT_FOUNDNot found
422VALIDATION_ERRORUnprocessable content
429RATE_LIMIT_EXCEEDEDRequest limit exceededLearn more
© 2026 Return Zero, Inc.