Overview
Base URL
https://www.happyscribe.com/api/v1
https://www.happyscribe.com/api/v1
Authentication is the same Bearer token as the Product API — see the Authentication section.
The Intelligence API extracts a structured graph of companies and people from your organization's meeting transcripts. As your team records calls and meetings, HappyScribe automatically identifies the external participants and their employers, enriches their profiles with firmographic data, and makes them queryable through a dedicated API.
What's included
Enrolling your organization unlocks three capabilities:
Transcription Extensions — The GET /transcriptions endpoint gains four additional filter parameters (person_id, person_email, company_id, company_domain) and two new response fields (people, companies) that embed linked contacts directly on each transcription.
Companies — List and retrieve companies discovered from your transcripts, enriched with industry, employee count, funding stage, and other firmographic data.
People — List and retrieve individual contacts discovered from your transcripts. People are linked to their company and can optionally be enriched with job title, seniority, and LinkedIn profile (opt-in, disabled by default).
Enrichment
Company enrichment (industry, employee count, website, LinkedIn, etc.) runs automatically for all enrolled organizations when a new company is discovered.
Person enrichment (job title, seniority, LinkedIn profile) is disabled by default and must be opted in separately. Contact support@happyscribe.com to enable it. Until enrichment has run, those fields on a person record are null.
Transcription Extensions
The Intelligence API extends the existing GET /transcriptions endpoint with additional filter parameters and new response fields. No changes are needed to your existing transcription workflow — the extensions are additive and silently ignored for non-enrolled organizations.
Additional Filter Parameters
curl "https://www.happyscribe.com/api/v1/transcriptions?organization_id=123&company_domain=acme.com" \
-H "Authorization: Bearer **your_api_key_here**"
fetch(
'https://www.happyscribe.com/api/v1/transcriptions?organization_id=123&company_domain=acme.com',
{
headers: {
authorization: 'Bearer **your_api_key_here**',
},
},
);
Returns all transcriptions where anyone from acme.com was a participant:
{
"results": [
{
"id": "e458099e7f8da14f9625854ba7b6a026917ad306",
"name": "Q4 sync — 2024-01-15",
"state": "automatic_done",
"people": [
{
"id": 1,
"name": "Jane Smith",
"primaryEmail": "jane@acme.com",
"company": { "id": 1, "name": "Acme Corp", "primaryDomain": "acme.com" },
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/people/1" } }
}
],
"companies": [
{
"id": 1,
"name": "Acme Corp",
"primaryDomain": "acme.com",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/companies/1" } }
}
],
"_links": {
"self": {
"editorUrl": "https://www.happyscribe.com/api/v1/transcriptions/e458099e7f8da14f9625854ba7b6a026917ad306"
}
}
}
],
"_links": {}
}
The following query parameters are available on GET /api/v1/transcriptions for enrolled organizations:
| Parameter | Description |
|---|---|
person_id |
Filter to transcriptions where the person with this ID was linked. |
person_email |
Same as person_id but resolved by email address. |
company_id |
Filter to transcriptions where any person from the company with this ID was linked. |
company_domain |
Same as company_id but resolved by domain — matches primaryDomain or any entry in the company's domains array (e.g. company_domain=acme.com). |
Embedded People and Companies
For enrolled organizations, transcription responses include two additional top-level arrays: people and companies. These appear on both the list endpoint and the retrieve endpoint.
Example transcription response with embedded people and companies:
{
"id": "e458099e7f8da14f9625854ba7b6a026917ad306",
"name": "Q4 sync — 2024-01-15",
"state": "automatic_done",
"people": [
{
"id": 1,
"name": "Jane Smith",
"primaryEmail": "jane@acme.com",
"company": { "id": 1, "name": "Acme Corp", "primaryDomain": "acme.com" },
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/people/1" } }
}
],
"companies": [
{
"id": 1,
"name": "Acme Corp",
"primaryDomain": "acme.com",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/companies/1" } }
}
]
}
| Field | Type | Description |
|---|---|---|
people |
array of Person | Every Person linked to this transcription via the Intelligence API. |
companies |
array of Company | The distinct Companies of those people. |
Companies
The Companies API lets you list and retrieve companies discovered from your organization's meeting transcripts.
List Companies
curl "https://www.happyscribe.com/api/v1/companies?organization_id=123" \
-H "Authorization: Bearer **your_api_key_here**"
fetch('https://www.happyscribe.com/api/v1/companies?organization_id=123', {
headers: {
authorization: 'Bearer **your_api_key_here**',
},
});
The above command returns JSON structured like this:
{
"results": [
{
"id": 1,
"name": "Acme Corp",
"primaryDomain": "acme.com",
"domains": ["acme.com", "acme.co"],
"industry": "Technology",
"employeeCount": 500,
"foundedYear": 2010,
"shortDescription": "Project management software for modern teams.",
"keywords": ["saas", "productivity", "collaboration"],
"city": "San Francisco",
"country": "United States",
"websiteUrl": "https://acme.com",
"linkedinUrl": "https://linkedin.com/company/acme-corp",
"logoUrl": "https://example.com/logo.png",
"totalFunding": null,
"annualRevenue": null,
"latestFundingStage": null,
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-06-01T12:00:00Z",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/companies/1" } }
}
],
"_links": {
"next": {
"url": "https://www.happyscribe.com/api/v1/companies?organization_id=123&page=2"
}
}
}
Returns a paginated list of companies associated with your organization, sorted by name ascending. _links.next is omitted on the last page.
HTTP Request
GET https://www.happyscribe.com/api/v1/companies
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| organization_id | - | (required) ID of the organization to list companies from. |
| search | - | Case-insensitive substring search on company name only. |
| domain | - | Exact-match filter on primaryDomain or any entry in domains (e.g. ?domain=acme.com). |
| page | 1 | Page number to retrieve. |
| per_page | 5 | Number of results per page. Maximum 100. |
Response Fields
| Field | Type | Description |
|---|---|---|
id |
integer | Unique identifier for the company. |
name |
string | Company name. |
primaryDomain |
string | The primary web domain for the company. |
domains |
array of strings | All known domains for the company, including primaryDomain. |
industry |
string | Industry classification from enrichment. |
employeeCount |
integer | Approximate number of employees from enrichment. |
foundedYear |
integer | Year the company was founded, from enrichment. |
shortDescription |
string | Brief description of the company from enrichment. |
keywords |
array of strings | Tags and keywords associated with the company from enrichment. |
city |
string | City where the company is headquartered. |
country |
string | Country where the company is headquartered. |
websiteUrl |
string | Company website URL. |
linkedinUrl |
string | LinkedIn company page URL. |
logoUrl |
string | Company logo image URL. |
totalFunding |
number | Total funding raised in USD. May be null if not available. |
annualRevenue |
number | Estimated annual revenue in USD. May be null if not available. |
latestFundingStage |
string | Most recent funding stage (e.g. "Series A"). May be null if not available. |
createdAt |
ISO 8601 | When the company record was first created. |
updatedAt |
ISO 8601 | When the company record was last updated. |
_links.self.url |
string | The canonical API URL for this company. |
Retrieve a Company
curl "https://www.happyscribe.com/api/v1/companies/1" \
-H "Authorization: Bearer **your_api_key_here**"
fetch('https://www.happyscribe.com/api/v1/companies/1', {
headers: {
authorization: 'Bearer **your_api_key_here**',
},
});
The above command returns JSON structured like this:
{
"id": 1,
"name": "Acme Corp",
"primaryDomain": "acme.com",
"domains": ["acme.com", "acme.co"],
"industry": "Technology",
"employeeCount": 500,
"foundedYear": 2010,
"shortDescription": "Project management software for modern teams.",
"keywords": ["saas", "productivity", "collaboration"],
"city": "San Francisco",
"country": "United States",
"websiteUrl": "https://acme.com",
"linkedinUrl": "https://linkedin.com/company/acme-corp",
"logoUrl": "https://example.com/logo.png",
"totalFunding": null,
"annualRevenue": null,
"latestFundingStage": null,
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-06-01T12:00:00Z",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/companies/1" } }
}
Returns a single Company resource by ID.
HTTP Request
GET https://www.happyscribe.com/api/v1/companies/:id
Error Reference
| Status | Cause |
|---|---|
| 401 | Missing or invalid Authorization header. |
| 400 | Missing or invalid organization_id parameter. |
| 400 | :id is not an integer. |
| 404 | Organization is not enrolled in the Intelligence API; company not found; or company belongs to another organization. |
People
The People API lets you list and retrieve contacts discovered from your organization's meeting transcripts.
List People
curl "https://www.happyscribe.com/api/v1/people?organization_id=123" \
-H "Authorization: Bearer **your_api_key_here**"
fetch('https://www.happyscribe.com/api/v1/people?organization_id=123', {
headers: {
authorization: 'Bearer **your_api_key_here**',
},
});
The above command returns JSON structured like this:
{
"results": [
{
"id": 1,
"name": "Jane Smith",
"fullName": "Jane Smith",
"emails": ["jane@acme.com", "jsmith@acme.com"],
"primaryEmail": "jane@acme.com",
"company": {
"id": 1,
"name": "Acme Corp",
"primaryDomain": "acme.com",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/companies/1" } }
},
"jobTitle": null,
"seniority": null,
"headline": null,
"linkedinUrl": null,
"city": null,
"country": null,
"photoUrl": "https://example.com/photo.png",
"avatarUrl": "https://example.com/avatar.png",
"enrichedAt": null,
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-06-01T12:00:00Z",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/people/1" } }
}
],
"_links": {
"next": {
"url": "https://www.happyscribe.com/api/v1/people?organization_id=123&page=2"
}
}
}
Returns a paginated list of people associated with your organization, sorted by name ascending. _links.next is omitted on the last page.
HTTP Request
GET https://www.happyscribe.com/api/v1/people
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| organization_id | - | (required) ID of the organization to list people from. |
| search | - | Full-text search across name, full name, and email fields. |
| - | Filter to the person with this exact email address (matched case-insensitively). | |
| company_id | - | Filter to people who belong to the company with this ID. Must be an integer. |
| page | 1 | Page number to retrieve. |
| per_page | 5 | Number of results per page. Maximum 100. |
Response Fields
| Field | Type | Description |
|---|---|---|
id |
integer | Unique identifier for the person. |
name |
string | Display name (typically first name + last initial, or first name alone). |
fullName |
string | Full name when available. |
emails |
array of strings | All email addresses recorded for this person. See primary email caveat below. |
primaryEmail |
string | The first email address recorded for this person. See primary email caveat below. |
company |
object | Full Company resource for the person's primary company, or null if no company is linked. See the Companies section for field descriptions. |
jobTitle |
string | Job title from enrichment. See enrichment caveat below. |
seniority |
string | Seniority level from enrichment. See enrichment caveat below. |
headline |
string | Professional headline from enrichment. See enrichment caveat below. |
linkedinUrl |
string | LinkedIn profile URL from enrichment. See enrichment caveat below. |
city |
string | City from enrichment. See enrichment caveat below. |
country |
string | Country from enrichment. See enrichment caveat below. |
photoUrl |
string | Full-size photo URL. |
avatarUrl |
string | Thumbnail avatar URL. |
enrichedAt |
ISO 8601 | Timestamp of the last enrichment run for this person, or null if enrichment has not run. |
createdAt |
ISO 8601 | When the person record was first created. |
updatedAt |
ISO 8601 | When the person record was last updated. |
_links.self.url |
string | The canonical API URL for this person. |
Retrieve a Person
curl "https://www.happyscribe.com/api/v1/people/1" \
-H "Authorization: Bearer **your_api_key_here**"
fetch('https://www.happyscribe.com/api/v1/people/1', {
headers: {
authorization: 'Bearer **your_api_key_here**',
},
});
The above command returns JSON structured like this:
{
"id": 1,
"name": "Jane Smith",
"fullName": "Jane Smith",
"emails": ["jane@acme.com", "jsmith@acme.com"],
"primaryEmail": "jane@acme.com",
"company": {
"id": 1,
"name": "Acme Corp",
"primaryDomain": "acme.com",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/companies/1" } }
},
"jobTitle": null,
"seniority": null,
"headline": null,
"linkedinUrl": null,
"city": null,
"country": null,
"photoUrl": "https://example.com/photo.png",
"avatarUrl": "https://example.com/avatar.png",
"enrichedAt": null,
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-06-01T12:00:00Z",
"_links": { "self": { "url": "https://www.happyscribe.com/api/v1/people/1" } }
}
Returns a single Person resource by ID.
HTTP Request
GET https://www.happyscribe.com/api/v1/people/:id
Error Reference
| Status | Cause |
|---|---|
| 401 | Missing or invalid Authorization header. |
| 400 | Missing or invalid organization_id parameter. |
| 400 | :id is not an integer, or ?company_id is not an integer. |
| 404 | Organization is not enrolled in the Intelligence API; person not found; or person belongs to another organization. |