Skip to main content

Accessing the TalentLynk API

You can use the TalentLynk API to retrieve detailed user activity and call log data for your organisation. These endpoints are designed for partner integrations (performance reports, Excel scripts, internal dashboards or Power BI).

Endpoints

User Activity

GET

https://api.talentlynk.ai/v1/partners/reports/user-activity

Returns data as a JSON array. By default, it returns data for the current day (UTC).

Call Logs

GET

https://api.talentlynk.ai/v1/partners/reports/call-logs

Returns data as a JSON array. By default, it returns data for the current day (UTC).

Call Transcript

GET

https://api.talentlynk.ai/v1/partners/transcripts/:callId

The callId is obtained by fetching the Call Logs


Authentication

You can pass your appId and apiKey either:

  • As query parameters, or

  • Preferably via HTTP headers, for cleaner and more secure requests.

Example using headers

curl -X GET "https://api.talentlynk.ai/v1/partners/reports/user-activity" \
-H "x-app-id: YOUR_APP_ID" \
-H "x-api-key: YOUR_API_KEY"

Example using query parameters

curl -X GET "https://api.talentlynk.ai/v1/partners/reports/user-activity?appId=YOUR_APP_ID&apiKey=YOUR_API_KEY"


Fetching User Activity

This endpoint returns an array of activity records, one per user, summarising their TalentLynk usage for the given time period.

Example request

curl -X GET "https://api.talentlynk.ai/v1/partners/reports/user-activity?startDate=2025-10-01T00:00:00Z&endDate=2025-10-07T23:59:59Z" \
-H "x-app-id: YOUR_APP_ID" \
-H "x-api-key: YOUR_API_KEY"

Example response

[
{
"id": "user_123",
"name": "Jane Smith",
"email": "[email protected]",
"inboundCalls": 34,
"inboundSeconds": 4580,
"outboundCalls": 41,
"outboundSeconds": 6030,
"missedCalls": 2,
"noAnswerCalls": 1,
"callSummaries": 75,
"callSummariesSynced": 74,
"inboundSMS": 3,
"outboundSMS": 4,
"spentSMSCredits": 0.8,
"inboundWhatsapp": 5,
"outboundWhatsapp": 5,
"inboundEmails": 17,
"outboundEmails": 14,
"transcriptionSeconds": 1260
}
]

Returned data matches the interface:

export interface UserActivity {
id: string;
name: string;
email: string;
inboundCalls: number;
inboundSeconds: number;
outboundCalls: number;
outboundSeconds: number;
missedCalls: number;
noAnswerCalls: number;
callSummaries: number;
callSummariesSynced: number;
inboundSMS: number;
outboundSMS: number;
spentSMSCredits: number;
inboundWhatsapp: number;
outboundWhatsapp: number;
inboundEmails: number;
outboundEmails: number;
transcriptionSeconds: number;
}


Fetching Call Logs

This endpoint returns detailed call data, one record per call made or received by users in your organisation.

Example request

curl -X GET "https://api.talentlynk.ai/v1/partners/reports/call-logs?startDate=2025-10-10T00:00:00Z&endDate=2025-10-16T23:59:59Z" \
-H "x-app-id: YOUR_APP_ID" \
-H "x-api-key: YOUR_API_KEY"

⚠️ Maximum 7 days of call logs can be retrieved in a single request.

Example response

[
{
"id": "call_abc123",
"direction": "outbound",
"status": "answered",
"fromName": "Jane Smith",
"fromNumber": "+441234567890",
"toName": "John Doe",
"toNumber": "+447890123456",
"startDate": "2025-10-15T09:21:34Z",
"endDate": "2025-10-15T09:22:48Z",
"talkDuration": 74,
"totalDuration": 90,
"callRecordingUrl": "https://recordings.talentlynk.ai/call_abc123.mp3",
"userEmail": "[email protected]",
"contactType": "candidate",
"syncedToCrm": true,
"crmLabel": "BD Call",
"crmId": "12345",
"summary": "Follow-up call completed successfully.",
"hasTranscript": true
}
]

Returned data matches the interface:

export interface PartnerCallLog {
id: string;
direction: "inbound" | "outbound";
status: "answered" | "unanswered" | "missed" | "voicemail" | "ongoing";
fromName: string | null;
fromNumber: string;
toName: string | null;
toNumber: string;
startDate: string;
endDate: string | null;
talkDuration: number;
totalDuration: number;
callRecordingUrl: string;
userEmail: string;
contactType: ContactType;
syncedToCrm: boolean;
crmLabel: string | null;
crmId: string | null;
summary: string | null;
}


Fetching a Call Transcript

You can retrieve the transcript of a specific call using its message ID. The message ID can be found in the call log data returned by the /call-logs endpoint.

Example request

curl -H "X-API-Key: your-api-key" \
-H "X-App-ID: your-app-id" \
"https://api.talentlynk.ai/v1/partners/transcripts/507f1f77bcf86cd799439011"

Example response

{
"data": {
"status": "completed",
"utterances": [
{
"speaker": "A",
"text": "Hi, thanks for taking my call today.",
"start": 0,
"end": 2500,
"confidence": 0.95
},
{
"speaker": "B",
"text": "No problem, happy to chat.",
"start": 2600,
"end": 4200,
"confidence": 0.93
}
],
"conversation": "A: Hi, thanks for taking my call today.\nB: No problem, happy to chat.",
"duration": 45.5,
"confidence": 0.94,
"languageCode": "en",
"error": null,
"createdAt": "2025-03-20T10:30:00.000Z"
}
}

Response Fields

Field

Type

Description

status

string

The transcription status: processing, completed, or error

utterances

array

Individual speaker turns with speaker label, text, start/end timestamps (in milliseconds), and confidence score

conversation

string

The full transcript formatted as a readable conversation (e.g. A: Hello\nB: Hi)

duration

number

Duration of the call audio in seconds

confidence

number

Overall transcription confidence score between 0 and 1

languageCode

string

Detected language code (e.g. en)

error

string | null

Error message if the transcription failed, otherwise null

createdAt

string

ISO 8601 timestamp of when the call took place

Note: If the transcript is still being processed, the status will be processing and the utterances and conversation fields will not be available yet. Poll the endpoint again after a short delay.


Filtering by Date Range

For User Activity and Call Logs, you can limit results using the query parameters:

Parameter

Type

Example

Description

startDate

string (ISO 8601)

2025-10-16T00:00:00Z

Start of range (UTC)

endDate

string (ISO 8601)

2025-10-16T23:59:59Z

End of range (UTC)

You can also use simpler ISO formats like 2025-10-16 or 2025-10-16T09:00, which will be automatically parsed and normalised.

Dates are interpreted as UTC internally.

Example: fetch activity for a single day

curl -X GET "https://api.talentlynk.ai/v1/partners/reports/user-activity?startDate=2025-10-16&endDate=2025-10-16" \
-H "x-app-id: YOUR_APP_ID" \
-H "x-api-key: YOUR_API_KEY"


Best Practices

  • Frequency: Since both User Activity and Call Logs endpoints default to “today’s data”, it’s best to call them once at the end of each day for reporting or syncing.

  • Date limits:

    • Up to 31 days for user activity.

    • Up to 7 days for call logs.

  • Storage: Save the responses locally or in your CRM/reporting database.

  • Time zone: Always send and interpret dates in UTC for consistency across regions.

Did this answer your question?