Arbolus API
Access transcripts, customer insights, and company intelligence through a simple REST API.
v1 · StableOverview
The Arbolus API enables seamless integration with Arbolus's expert network platform. Through this API, partners can programmatically access:
| Feature | Description |
|---|---|
| Transcripts | Retrieve expert call transcripts with metadata and expert details |
| Customer Library | Access company data, customer insights, NPS scores, and reviews |
| Health Monitoring | Verify 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:
| Scope | Access |
|---|---|
Transcripts | All transcript-related endpoints |
CustomerLibrary | All 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
- Include the
x-api-keyheader in every request - The API validates your key and checks its assigned scope
- If the key is valid and has the required scope, the request proceeds
- If the key is missing, invalid, or lacks the required scope, an error is returned
Scopes
| Scope | Endpoints |
|---|---|
Transcripts | GET /v1/transcripts/* |
CustomerLibrary | GET /v1/customer-library/* |
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
- API key validations are cached for 15 minutes to optimize performance
- There is no strict per-request rate limit currently enforced, but we recommend keeping requests to a reasonable rate
- Contact [email protected] if you anticipate high-volume usage
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
| Scenario | Status | Description |
|---|---|---|
| Missing API key | 401 | No x-api-key header provided |
| Invalid API key | 401 | The provided key does not exist or is deactivated |
| Insufficient scope | 403 | Your key does not have access to this endpoint |
| Resource not found | 404 | The requested transcript or company does not exist |
| Invalid parameters | 400 | Request parameters failed validation |
| Server error | 500 | An unexpected error occurred on the server |
API Reference
Health Check
Check service availability. This endpoint does not require authentication.
Returns the current health status of the API.
Response
{
"status": "Healthy",
"timestamp": "2026-04-24T12:00:00Z"
}
| Field | Type | Description |
|---|---|---|
status | string | Service health status (Healthy) |
timestamp | string (ISO 8601) | Current server time in UTC |
Transcripts
Access expert consultation transcripts with full metadata and expert details.
Transcripts scope.Retrieve a list of all transcripts available to your account.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
fromDate | string (ISO 8601) | Yes | Start date filter for call date (inclusive) |
tillDate | string (ISO 8601) | No | End 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
| Field | Type | Description |
|---|---|---|
expertNetwork | string | Name of the expert network |
transcriptId | string (UUID) | Unique identifier for the transcript |
caseCode | string | null | Case or project code |
callDate | string (ISO 8601) | Date and time of the call (UTC) |
callDuration | integer | Duration of the call in seconds |
consultationTitle | string | null | Title of the consultation |
Example
curl -X GET "https://api.arbolus.com/v1/transcripts" \
-H "x-api-key: your_api_key_here"
Retrieve the full transcript for a specific interaction, including metadata, expert profile, and speaker-level dialogue.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | UUID | Yes | The 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
| Field | Type | Description |
|---|---|---|
expertNetwork | string | Name of the expert network |
transcriptId | string (UUID) | Unique transcript identifier |
caseCode | string | null | Case or project code |
projectName | string | null | Name of the associated project |
callDate | string (ISO 8601) | Call date and time (UTC) |
callDuration | integer | Call duration in seconds |
consultationTitle | string | null | Title of the consultation |
callSummary | string | null | AI-generated summary of the call |
invitees | array of strings | Email addresses of invitees |
office | string | null | Office location associated with the call |
expert | object | null | Expert profile (see below) |
transcript | array | Ordered list of transcript segments |
transcript[].speaker | string | null | Speaker role (Expert, Client, or Others) |
transcript[].text | string | null | Spoken text content |
transcript[].timeStamp | string | null | Timestamp in HH:MM:SS format |
Expert Object
| Field | Type | Description |
|---|---|---|
expertId | string (UUID) | null | Expert's unique identifier |
firstName | string | null | Expert's first name |
lastName | string | null | Expert's last name |
country | string | null | Expert's country |
profileSummary | string | null | Brief summary of the expert's professional background |
relevantExperience | object | null | Most relevant work experience |
otherExperiences | array | Additional work history entries |
Experience Object
| Field | Type | Description |
|---|---|---|
title | string | null | Job title |
employer | string | null | Company name |
startDate | string | null | Start date (ISO format) |
endDate | string | null | End 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.
CustomerLibrary scope.Retrieve a list of companies filtered by website, with optional name filtering.
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website | string | Yes | — | Filter companies by website domain |
companyName | string | No | — | Filter 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
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Company's unique identifier |
name | string | null | Company name |
website | string | null | Company website URL |
logoUrl | string | null | URL to company logo image |
nps | integer | null | Net Promoter Score |
numberOfCustomers | integer | null | Total 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"
Retrieve customer insights for a specific company, including spend, NPS, renewal intent, and competitive data.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
companyId | UUID | Yes | The 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
| Field | Type | Description |
|---|---|---|
expertCurrentCompanyName | string | null | Expert's current company |
expertCurrentCompanyLogoUrl | string | null | Logo URL of expert's company |
persona | string | null | Expert's job role/title |
spend | integer | null | Annual spend amount |
nps | integer | null | Net Promoter Score (0–10) |
renewalIntent | string | null | Yes, No, or NotSure |
implementationStage | string | null | Pilot, User, or OffBoarding |
competitorsNames | array of strings | null | Names 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"
Retrieve customer reviews for a specific company.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
companyId | UUID | Yes | The 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
| Field | Type | Description |
|---|---|---|
answerId | string (UUID) | Unique answer identifier |
created | string (ISO 8601) | null | Submission date |
questionId | string (UUID) | null | Associated question identifier |
questionTitle | string | null | The survey question text |
sortOrder | integer | null | Display order of the question |
answerText | string | null | The 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
| Value | Description |
|---|---|
Yes | Customer intends to renew |
No | Customer does not intend to renew |
NotSure | Customer is undecided about renewal |
Implementation Stage
| Value | Description |
|---|---|
Pilot | Product is in pilot/trial phase |
User | Product is in active use |
OffBoarding | Customer 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
| Code | Meaning | When It Occurs |
|---|---|---|
200 OK | Request succeeded | Data returned successfully |
400 Bad Request | Invalid input | Validation errors in query parameters |
401 Unauthorized | Authentication failed | Missing or invalid API key |
403 Forbidden | Insufficient permissions | API key lacks the required scope |
404 Not Found | Resource not found | Transcript or company does not exist |
500 Internal Server Error | Server error | Unexpected error — contact support |
Quick Reference
Support
For questions, issues, or to request an API key:
- Email: [email protected]
- Website: https://www.arbolus.com
- Terms of Service: https://www.arbolus.com/terms-of-use