Developer API · v1
InterviewFi API
Schedule interviews, manage candidates and positions, and fetch results — straight from your ATS or app.
1
Get a key
Create an org API key under Settings → API Keys. It's shown once.
2
Authenticate
Send it as a Bearer token: Authorization: Bearer ifk_…
3
Schedule
POST /api/v1/interviews and send the candidate the invite URL.
Schedule an interview
curl -X POST https://interviewfi.ai/api/v1/interviews \
-H "Authorization: Bearer ifk_your_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Senior Backend Engineer",
"candidate": { "email": "jane@example.com", "name": "Jane Doe" },
"positionId": "65b0c0ffee0c0ffee0c0ffee",
"duration": 45
}'A successful call returns { "data": { "inviteUrl", "id", "status" } } — send the candidate the invite URL.
Endpoints
| GET | /api/v1/me | Identify the calling key (org + scopes) | read |
| POST | /api/v1/candidates | Create a candidate | write |
| GET | /api/v1/candidates | List candidates | read |
| GET | /api/v1/positions | List positions | read |
| POST | /api/v1/positions | Create a position | write |
| POST | /api/v1/interviews | Schedule an interview | write |
| GET | /api/v1/interviews | List interviews | read |
| GET | /api/v1/interviews/{id} | Interview status | read |
| GET | /api/v1/interviews/{id}/evaluation | Interview results | read |
| DELETE | /api/v1/interviews/{id} | Cancel an interview | write |
| GET | /api/v1/hiring-flows | List hiring flows | read |
| GET | /api/v1/hiring-flows/{id} | Hiring-flow detail | read |
| POST | /api/v1/hiring-flows/{id}/candidates | Enroll a candidate into a flow | write |
| POST | /api/v1/webhooks | Register a webhook (returns secret once) | admin |
| GET | /api/v1/webhooks | List webhooks | read |
| GET | /api/v1/webhooks/{id} | Webhook detail | read |
| DELETE | /api/v1/webhooks/{id} | Delete a webhook | admin |
| POST | /api/v1/ai/job-description | Generate a job description (AI) | write |
| GET | /api/v1/tasks/{id} | Poll an async AI task | read |
See the full interactive reference for every parameter, response schema, and a live try-it console.