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 (e.g. CRM syncs, performance reports, Excel scripts, or internal dashboards).

A
Written by Alexandra Nitu
Updated over 2 months ago

1. Endpoints

User Activity

GET

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

Call Logs

GET

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

Endpoints return data as JSON arrays. By default, they return data for the current day (UTC).


2. 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>"

3. 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; }

4. 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."   } ]

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; }

5. Filtering by Date Range

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"

6. Best Practices

  • Frequency: Since both 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?