Home
API Reference

Programmatic access to Maven.

Live

REST endpoints for invites, submissions, scoring, and the hiring pipeline. Authenticate with a Bearer token from your employer account.

Authentication

All API requests require a Bearer token in the Authorization header. Tokens are issued at login and expire after 1 hour. Use the refresh endpoint to rotate without re-authenticating.

$ curl -H "Authorization: Bearer <token>" \
https://api.maven.dev/invites
Endpoints
POST
/invites
Send an assessment invite to a candidate email
Employer
POST
/invites/bulk
Send invites to multiple candidates in one call
Employer
GET
/invites
List all invites with status, filtering by task or status
Employer
GET
/submissions/:taskId
List submissions for a task with scores and verdicts
Employer
GET
/results/:submissionId
Full assessment report — score breakdown, timeline, AI interactions
Employer
POST
/results/:submissionId/advance
Advance a candidate to the next hiring stage
Employer
POST
/results/:submissionId/reject
Reject a candidate with optional feedback message
Employer
GET
/tasks
List assessment tasks with configuration and submission counts
Employer
POST
/questions/generate
AI-generate a role-specific coding challenge
Employer
GET
/notifications
Retrieve in-app notifications
Any
Webhook events

Register a webhook URL in Settings → Webhooks to receive real-time POST notifications. Each delivery includes an X-Webhook-Signature header for verification.

invite.acceptedCandidate accepted an assessment invitation
invite.declinedCandidate declined an invitation
submission.completedCandidate submitted their assessment
submission.scoredAI scoring pipeline finished — scores available
candidate.advancedEmployer advanced a candidate to next stage
candidate.rejectedEmployer rejected a candidate
Rate limits

API requests are rate-limited per account:

Free
100 req/hr
Starter
1,000 req/hr
Growth+
10,000 req/hr

Rate-limited responses return 429 with a Retry-After header.

OpenAPI specification

Full OpenAPI 3.0 spec with interactive Swagger UI available at your backend's /api-docs endpoint. Import into Postman, Insomnia, or your API client of choice.