REST API Reference
Complete REST API reference for Trackr.
Trackr REST API Reference
The Trackr REST API provides comprehensive programmatic access to all core platform features, including authentication, applications, company tracking, calendar events, AI-driven insights, and webhooks. This document details the available endpoints, required parameters, and expected responses to help you integrate Trackr seamlessly into your workflows.
Authentication
All API requests must be authenticated. Trackr supports authentication via JWT (JSON Web Tokens) for client applications and Internal API Keys for server-to-server integrations.
JWT Authentication
Client applications authenticate using a JWT token obtained via the login endpoint. The token must be included in the Authorization header of all subsequent requests.
Header Format:
Authorization: Bearer <your_jwt_token>Generate JWT Token
Endpoint: POST /api/v1/auth/login
Request Body:
{
"email": "user@example.com",
"password": "securepassword123"
}cURL Example:
curl -X POST https://api.trackr.io/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"securepassword123"}'Response (200 OK):
{
"status": "success",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 3600,
"user": {
"id": "usr_9a8b7c6d5e",
"name": "Jane Doe",
"email": "user@example.com"
}
}
}Internal API Keys
For internal microservices or trusted server environments, use an API key. Pass the key via the X-API-Key header.
Header Format:
X-API-Key: <your_internal_api_key>Applications (Jobs)
The Applications API allows you to create, read, update, and delete job applications tracked within the platform.
List Applications
Retrieve a paginated list of your job applications.
Endpoint: GET /api/v1/applications
Headers:
Authorization: Bearer <token>
Query Parameters:
page(optional, integer): Page number. Default is 1.limit(optional, integer): Items per page. Default is 20.status(optional, string): Filter by status (e.g.,Applied,Interviewing,Rejected,Offer).
cURL Example:
curl -X GET "https://api.trackr.io/v1/applications?status=Interviewing&page=1" \
-H "Authorization: Bearer eyJhbGciOiJIUz..."Response (200 OK):
{
"status": "success",
"meta": {
"total": 42,
"page": 1,
"limit": 20
},
"data": [
{
"id": "app_123456",
"company_id": "comp_789",
"position": "Senior Software Engineer",
"status": "Interviewing",
"applied_date": "2026-07-15T10:00:00Z",
"salary_expectation": 150000,
"notes": "First round with HM went well."
}
]
}Create Application
Add a new job application to your tracker.
Endpoint: POST /api/v1/applications
Headers:
Authorization: Bearer <token>Content-Type: application/json
Request Body:
{
"company_name": "TechNova Solutions",
"position": "Backend Developer",
"status": "Applied",
"applied_date": "2026-07-25T08:00:00Z",
"url": "https://technova.io/careers/backend",
"salary_expectation": 140000
}cURL Example:
curl -X POST https://api.trackr.io/v1/applications \
-H "Authorization: Bearer eyJhbGciOiJIUz..." \
-H "Content-Type: application/json" \
-d '{"company_name":"TechNova Solutions","position":"Backend Developer","status":"Applied"}'Response (201 Created):
{
"status": "success",
"data": {
"id": "app_987654",
"company_id": "comp_321",
"position": "Backend Developer",
"status": "Applied",
"applied_date": "2026-07-25T08:00:00Z",
"created_at": "2026-07-25T15:00:00Z"
}
}Companies
Manage the profiles and metadata for companies you are interacting with.
Get Company Details
Retrieve detailed information about a specific company, including aggregated data on applications and contacts.
Endpoint: GET /api/v1/companies/{company_id}
Headers:
Authorization: Bearer <token>
cURL Example:
curl -X GET https://api.trackr.io/v1/companies/comp_789 \
-H "Authorization: Bearer eyJhbGciOiJIUz..."Response (200 OK):
{
"status": "success",
"data": {
"id": "comp_789",
"name": "GlobalTech Inc.",
"website": "https://globaltech.example.com",
"industry": "Software",
"size": "1000-5000",
"location": "San Francisco, CA",
"total_applications": 3,
"last_interaction": "2026-07-20T14:30:00Z"
}
}Calendar
The Calendar API manages scheduling for interviews, follow-ups, and deadlines. It integrates directly with your tracked applications.
Create Calendar Event
Schedule an interview or important date related to an application.
Endpoint: POST /api/v1/calendar/events
Headers:
Authorization: Bearer <token>Content-Type: application/json
Request Body:
{
"title": "Technical Interview - GlobalTech",
"description": "System design interview with the engineering team.",
"application_id": "app_123456",
"start_time": "2026-07-28T14:00:00Z",
"end_time": "2026-07-28T15:00:00Z",
"event_type": "interview"
}cURL Example:
curl -X POST https://api.trackr.io/v1/calendar/events \
-H "Authorization: Bearer eyJhbGciOiJIUz..." \
-H "Content-Type: application/json" \
-d '{"title":"Technical Interview","application_id":"app_123456","start_time":"2026-07-28T14:00:00Z","end_time":"2026-07-28T15:00:00Z","event_type":"interview"}'Response (201 Created):
{
"status": "success",
"data": {
"id": "evt_abc123",
"title": "Technical Interview - GlobalTech",
"application_id": "app_123456",
"start_time": "2026-07-28T14:00:00Z",
"end_time": "2026-07-28T15:00:00Z",
"event_type": "interview",
"meeting_link": null
}
}AI Insights
Leverage the built-in AI engine to analyze resumes against job descriptions, predict interview questions, and assess application strength.
Analyze Job Description
Submit a job description to extract key skills and evaluate match against your profile.
Endpoint: POST /api/v1/ai/analyze-job
Headers:
Authorization: Bearer <token>Content-Type: application/json
Request Body:
{
"job_title": "Senior Frontend Developer",
"job_description": "We are looking for an experienced frontend developer proficient in React, TypeScript, and modern CSS frameworks. You should have a deep understanding of web performance and accessibility.",
"include_cover_letter_draft": true
}cURL Example:
curl -X POST https://api.trackr.io/v1/ai/analyze-job \
-H "Authorization: Bearer eyJhbGciOiJIUz..." \
-H "Content-Type: application/json" \
-d '{"job_title":"Senior Frontend Developer","job_description":"We are looking for..."}'Response (200 OK):
{
"status": "success",
"data": {
"match_score": 85,
"key_skills_found": ["React", "TypeScript", "CSS", "Web Performance", "Accessibility"],
"missing_skills": ["GraphQL"],
"suggested_interview_questions": [
"How do you approach optimizing a React application for performance?",
"Can you describe your experience implementing web accessibility standards?"
],
"cover_letter_draft": "Dear Hiring Manager, I am writing to express my strong interest in the Senior Frontend Developer position..."
}
}Webhooks
Trackr allows you to subscribe to real-time events via Webhooks. When an event occurs (e.g., an application status changes), a payload is sent to your configured endpoint.
Create a Webhook Subscription
Endpoint: POST /api/v1/webhooks
Headers:
Authorization: Bearer <token>Content-Type: application/json
Request Body:
{
"target_url": "https://yourdomain.com/webhooks/trackr",
"events": ["application.status_changed", "calendar.event_created"],
"secret": "your_secure_webhook_secret_key"
}cURL Example:
curl -X POST https://api.trackr.io/v1/webhooks \
-H "Authorization: Bearer eyJhbGciOiJIUz..." \
-H "Content-Type: application/json" \
-d '{"target_url":"https://yourdomain.com/webhook","events":["application.status_changed"],"secret":"mysecret"}'Response (201 Created):
{
"status": "success",
"data": {
"id": "wh_998877",
"target_url": "https://yourdomain.com/webhooks/trackr",
"events": ["application.status_changed", "calendar.event_created"],
"status": "active",
"created_at": "2026-07-25T15:10:00Z"
}
}Webhook Event Payload Example
When an event triggers, Trackr sends a POST request to your target_url with the following structure.
Headers sent to your server:
X-Trackr-Signature: HMAC SHA256 signature using your webhook secret for verification.Content-Type:application/json
Payload:
{
"event_id": "evt_hook_554433",
"event_type": "application.status_changed",
"timestamp": "2026-07-25T15:12:00Z",
"data": {
"application_id": "app_123456",
"company_id": "comp_789",
"old_status": "Applied",
"new_status": "Interviewing"
}
}Verifying Webhooks
To ensure the webhook is genuinely from Trackr, calculate the HMAC SHA256 signature of the raw request body using your configured secret. Compare your computed signature with the X-Trackr-Signature header.