API Reference Support

Arbolus API

Access transcripts, customer insights, and company intelligence through a simple REST API.

v1 · Stable

Overview

The Arbolus API enables seamless integration with Arbolus's expert network platform. Through this API, partners can programmatically access:

FeatureDescription
TranscriptsRetrieve expert call transcripts with metadata and expert details
Customer LibraryAccess company data, customer insights, NPS scores, and reviews
Health MonitoringVerify API availability and service status

The API follows RESTful conventions, returns JSON responses, and uses API key authentication.

Getting Started

Obtain Your API Key

Contact [email protected] to request an API key. Each key is scoped to specific features:

ScopeAccess
TranscriptsAll transcript-related endpoints
CustomerLibraryAll customer library endpoints

Make Your First Request

curl -X GET "https://api.arbolus.com/v1/health" \
  -H "Accept: application/json"

Authenticate & Fetch Data

curl -X GET "https://api.arbolus.com/v1/transcripts" \
  -H "x-api-key: your_api_key_here" \
  -H "Accept: application/json"

Authentication

All endpoints (except /v1/health) require an API key passed via the x-api-key HTTP header.

Request Header

x-api-key: your_api_key_here

How It Works

  1. Include the x-api-key header in every request
  2. The API validates your key and checks its assigned scope
  3. If the key is valid and has the required scope, the request proceeds
  4. If the key is missing, invalid, or lacks the required scope, an error is returned

Scopes

ScopeEndpoints
TranscriptsGET /v1/transcripts/*
CustomerLibraryGET /v1/customer-library/*
Attempting to access an endpoint outside your key's scope will return a 403 Forbidden response.

Example — Authenticated Request

curl -X GET "https://api.arbolus.com/v1/transcripts" \
  -H "x-api-key: pk_live_abc123def456" \
  -H "Accept: application/json"

Example — Error Responses

// 401 Unauthorized — missing or invalid API key
{
  "statusCode": 401,
  "message": "Unauthorized"
}
// 403 Forbidden — valid key but insufficient scope
{
  "statusCode": 403,
  "message": "Forbidden"
}

Base URL

All API requests are made to:

https://api.arbolus.com

All endpoints are prefixed with the API version (/v1).

Versioning

The API uses URL path versioning. The current version is v1.

https://api.arbolus.com/v1/{endpoint}

When a new version is released, existing endpoints will continue to function under their original version prefix.

Rate Limiting & Caching

Error Handling

The API uses standard HTTP status codes and returns consistent error responses.

Error Response Format

{
  "statusCode": 400,
  "message": "One or more validation errors occurred.",
  "errors": {
    "website": ["Website is required."]
  }
}

Common Error Scenarios

ScenarioStatusDescription
Missing API key401No x-api-key header provided
Invalid API key401The provided key does not exist or is deactivated
Insufficient scope403Your key does not have access to this endpoint
Resource not found404The requested transcript or company does not exist
Invalid parameters400Request parameters failed validation
Server error500An unexpected error occurred on the server

API Reference

Health Check

Check service availability. This endpoint does not require authentication.

GET /v1/health

Returns the current health status of the API.

No Auth Required

Response

{
  "status": "Healthy",
  "timestamp": "2026-04-24T12:00:00Z"
}
FieldTypeDescription
statusstringService health status (Healthy)
timestampstring (ISO 8601)Current server time in UTC

Transcripts

Access expert consultation transcripts with full metadata and expert details.

Authentication required — All transcript endpoints require an API key with the Transcripts scope.
GET /v1/transcripts

Retrieve a list of all transcripts available to your account.

🔒 Transcripts

Query Parameters

ParameterTypeRequiredDescription
fromDatestring (ISO 8601)YesStart date filter for call date (inclusive)
tillDatestring (ISO 8601)NoEnd date filter for call date (inclusive)

Response

{
  "transcripts": [
    {
      "expertNetwork": "Arbolus",
      "transcriptId": "550e8400-e29b-41d4-a716-446655440000",
      "caseCode": "CASE-2024-001",
      "callDate": "2026-04-20T14:30:00Z",
      "callDuration": 3600,
      "consultationTitle": "Market Analysis Discussion"
    }
  ]
}

Response Fields

FieldTypeDescription
expertNetworkstringName of the expert network
transcriptIdstring (UUID)Unique identifier for the transcript
caseCodestring | nullCase or project code
callDatestring (ISO 8601)Date and time of the call (UTC)
callDurationintegerDuration of the call in seconds
consultationTitlestring | nullTitle of the consultation

Example

curl -X GET "https://api.arbolus.com/v1/transcripts" \
  -H "x-api-key: your_api_key_here"
GET /v1/transcripts/{id}

Retrieve the full transcript for a specific interaction, including metadata, expert profile, and speaker-level dialogue.

🔒 Transcripts

Path Parameters

ParameterTypeRequiredDescription
idUUIDYesThe transcript identifier

Response

{
  "expertNetwork": "Arbolus",
  "transcriptId": "550e8400-e29b-41d4-a716-446655440000",
  "caseCode": "CASE-2024-001",
  "projectName": "SaaS Market Research",
  "callDate": "2026-04-20T14:30:00Z",
  "callDuration": 3600,
  "consultationTitle": "Market Analysis Discussion",
  "callSummary": "Discussed market trends and growth opportunities.",
  "invitees": ["[email protected]"],
  "office": "New York",
  "expert": {
    "expertId": "660e8400-e29b-41d4-a716-446655440111",
    "firstName": "Michael",
    "lastName": "Johnson",
    "country": "United States",
    "profileSummary": "Seasoned operations executive with 15+ years in SaaS.",
    "relevantExperience": {
      "title": "VP Operations",
      "employer": "TechCorp Inc",
      "startDate": "2020-01-15",
      "endDate": null
    },
    "otherExperiences": [
      {
        "title": "Operations Manager",
        "employer": "DataSoft Ltd",
        "startDate": "2018-06-01",
        "endDate": "2020-01-14"
      }
    ]
  },
  "transcript": [
    {
      "speaker": "Expert",
      "text": "Let's start with the market overview.",
      "timeStamp": "00:00:15"
    },
    {
      "speaker": "Client",
      "text": "The market has grown 20% year-over-year.",
      "timeStamp": "00:00:45"
    }
  ]
}

Response Fields

FieldTypeDescription
expertNetworkstringName of the expert network
transcriptIdstring (UUID)Unique transcript identifier
caseCodestring | nullCase or project code
projectNamestring | nullName of the associated project
callDatestring (ISO 8601)Call date and time (UTC)
callDurationintegerCall duration in seconds
consultationTitlestring | nullTitle of the consultation
callSummarystring | nullAI-generated summary of the call
inviteesarray of stringsEmail addresses of invitees
officestring | nullOffice location associated with the call
expertobject | nullExpert profile (see below)
transcriptarrayOrdered list of transcript segments
transcript[].speakerstring | nullSpeaker role (Expert, Client, or Others)
transcript[].textstring | nullSpoken text content
transcript[].timeStampstring | nullTimestamp in HH:MM:SS format

Expert Object

FieldTypeDescription
expertIdstring (UUID) | nullExpert's unique identifier
firstNamestring | nullExpert's first name
lastNamestring | nullExpert's last name
countrystring | nullExpert's country
profileSummarystring | nullBrief summary of the expert's professional background
relevantExperienceobject | nullMost relevant work experience
otherExperiencesarrayAdditional work history entries

Experience Object

FieldTypeDescription
titlestring | nullJob title
employerstring | nullCompany name
startDatestring | nullStart date (ISO format)
endDatestring | nullEnd date (null if current position)

Example

curl -X GET "https://api.arbolus.com/v1/transcripts/550e8400-e29b-41d4-a716-446655440000" \
  -H "x-api-key: your_api_key_here"

Customer Library

Access company intelligence, customer insights, NPS data, and reviews.

Authentication required — All customer library endpoints require an API key with the CustomerLibrary scope.
GET /v1/customer-library/companies

Retrieve a list of companies filtered by website, with optional name filtering.

🔒 CustomerLibrary

Query Parameters

ParameterTypeRequiredDefaultDescription
websitestringYesFilter companies by website domain
companyNamestringNoFilter companies by name prefix

Response

[
  {
    "id": "770e8400-e29b-41d4-a716-446655440222",
    "name": "TechCorp Inc",
    "website": "https://techcorp.com",
    "logoUrl": "https://logos.arbolus.com/techcorp.png",
    "nps": 72,
    "numberOfCustomers": 150
  }
]

Response Fields

FieldTypeDescription
idstring (UUID)Company's unique identifier
namestring | nullCompany name
websitestring | nullCompany website URL
logoUrlstring | nullURL to company logo image
npsinteger | nullNet Promoter Score
numberOfCustomersinteger | nullTotal number of customers

Example

curl -X GET "https://api.arbolus.com/v1/customer-library/companies?website=techcorp.com&companyName=Tech" \
  -H "x-api-key: your_api_key_here"
GET /v1/customer-library/companies/{companyId}/insights

Retrieve customer insights for a specific company, including spend, NPS, renewal intent, and competitive data.

🔒 CustomerLibrary

Path Parameters

ParameterTypeRequiredDescription
companyIdUUIDYesThe target company's identifier

Parameters

None (besides path parameter above)

Response

[
  {
    "expertCurrentCompanyName": "GlobalBank Ltd",
    "expertCurrentCompanyLogoUrl": "https://logos.arbolus.com/globalbank.png",
    "persona": "VP of Operations",
    "spend": 250000,
    "nps": 8,
    "renewalIntent": "Yes",
    "implementationStage": "User",
    "competitorsNames": ["Competitor A", "Competitor B"]
  }
]

Response Fields

FieldTypeDescription
expertCurrentCompanyNamestring | nullExpert's current company
expertCurrentCompanyLogoUrlstring | nullLogo URL of expert's company
personastring | nullExpert's job role/title
spendinteger | nullAnnual spend amount
npsinteger | nullNet Promoter Score (0–10)
renewalIntentstring | nullYes, No, or NotSure
implementationStagestring | nullPilot, User, or OffBoarding
competitorsNamesarray of strings | nullNames of competing vendors

Example

curl -X GET "https://api.arbolus.com/v1/customer-library/companies/770e8400-e29b-41d4-a716-446655440222/insights" \
  -H "x-api-key: your_api_key_here"
GET /v1/customer-library/companies/{companyId}/reviews

Retrieve customer reviews for a specific company.

🔒 CustomerLibrary

Path Parameters

ParameterTypeRequiredDescription
companyIdUUIDYesThe target company's identifier

Parameters

None (besides path parameter above)

Response

[
  {
    "answerId": "990e8400-e29b-41d4-a716-446655440444",
    "created": "2026-03-15T10:30:00Z",
    "questionId": "aa0e8400-e29b-41d4-a716-446655440555",
    "questionTitle": "What are the main strengths?",
    "sortOrder": 1,
    "answerText": "Excellent customer support and ease of integration."
  }
]

Response Fields

FieldTypeDescription
answerIdstring (UUID)Unique answer identifier
createdstring (ISO 8601) | nullSubmission date
questionIdstring (UUID) | nullAssociated question identifier
questionTitlestring | nullThe survey question text
sortOrderinteger | nullDisplay order of the question
answerTextstring | nullThe review/answer content

Example

curl -X GET "https://api.arbolus.com/v1/customer-library/companies/770e8400-e29b-41d4-a716-446655440222/reviews" \
  -H "x-api-key: your_api_key_here"

Data Models

Enumerations

Renewal Intent

ValueDescription
YesCustomer intends to renew
NoCustomer does not intend to renew
NotSureCustomer is undecided about renewal

Implementation Stage

ValueDescription
PilotProduct is in pilot/trial phase
UserProduct is in active use
OffBoardingCustomer is in the process of leaving

UUID Format

All identifiers use UUID v4 format:

550e8400-e29b-41d4-a716-446655440000

Date & Time Format

All timestamps follow ISO 8601 in UTC:

2026-04-24T14:30:00Z

Status Codes

CodeMeaningWhen It Occurs
200 OKRequest succeededData returned successfully
400 Bad RequestInvalid inputValidation errors in query parameters
401 UnauthorizedAuthentication failedMissing or invalid API key
403 ForbiddenInsufficient permissionsAPI key lacks the required scope
404 Not FoundResource not foundTranscript or company does not exist
500 Internal Server ErrorServer errorUnexpected error — contact support

Quick Reference

GET /v1/health Health check No Auth GET /v1/transcripts List all transcripts Transcripts GET /v1/transcripts/{id} Get full transcript Transcripts GET /v1/customer-library/companies List companies CustomerLibrary GET /v1/.../companies/{id}/insights Get customer insights CustomerLibrary GET /v1/.../companies/{id}/reviews Get customer reviews CustomerLibrary

Support

For questions, issues, or to request an API key: