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 |
| string (ISO 8601) |
| Start of range (UTC) |
| string (ISO 8601) |
| 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.