API Reference
Applications
Track and retrieve individual job application results. Get the status, ATS responses, error details, and attempt history for each submitted application.
Get Application
Retrieve a specific application by its ID. Returns the full application record including status, ATS type, candidate email, results, any errors, and the complete attempt history.
/applications/:applicationIdcurl https://apply-api.boringproject.ai/api/v1/applications/app_abc123 \
-H "Authorization: Bearer bp_live_..."{
"application_id": "app_abc123",
"job_url": "https://boards.greenhouse.io/acme/jobs/12345",
"job_title": "Senior Software Engineer",
"company_name": "Acme Corp",
"ats_type": "greenhouse",
"status": "SUCCESS",
"candidate_email": "john@example.com",
"search_id": "srch_abc123",
"result": {
"confirmationUrl": "https://boards.greenhouse.io/acme/jobs/12345/confirmation"
},
"questions_and_answers": {
"Are you authorized to work in the US?": "Yes",
"Years of experience with Python?": "5"
},
"error": null,
"attempts": [
{ "attempt": 1, "status": "success", "timestamp": "2024-02-14T11:05:00Z" }
],
"created_at": "2024-02-14T11:00:00Z",
"updated_at": "2024-02-14T11:05:00Z"
}List Applications
Retrieve a paginated list of applications. Filter by status to find successful, failed, or queued applications. Filter by session ID to see all applications from a specific session.
/applications| Name | Type | Required | Description |
|---|---|---|---|
status | string | Optional | Filter by status: QUEUED, PROCESSING, SUCCESS, FAILED, CANCELLED |
sessionId | string | Optional | Filter by session ID |
page | integer | Optional | Page number (default: 1) |
limit | integer | Optional | Items per page, 1-100 (default: 20) |
curl "https://apply-api.boringproject.ai/api/v1/applications?status=FAILED&page=1&limit=20" \
-H "Authorization: Bearer bp_live_..."{
"data": [
{
"application_id": "app_def456",
"job_url": "https://jobs.lever.co/company/abc123",
"job_title": "Backend Developer",
"company_name": "Startup Inc",
"ats_type": "lever",
"status": "FAILED",
"candidate_email": "john@example.com",
"search_id": null,
"result": null,
"questions_and_answers": null,
"error": { "code": "FORM_SUBMISSION_FAILED", "message": "Required field 'cover_letter' was not provided" },
"attempts": [
{ "attempt": 1, "status": "failed", "timestamp": "2024-02-14T11:10:00Z", "error": "Required field 'cover_letter' was not provided" }
],
"created_at": "2024-02-14T11:00:00Z",
"updated_at": "2024-02-14T11:10:00Z"
}
],
"pagination": { "page": 1, "limit": 20, "total": 12, "totalPages": 1 }
}Application Status Values
Applications move through the following statuses:
QUEUED — Application has been accepted and is waiting to be processed.
PROCESSING — Application is actively being submitted to the ATS.
SUCCESS — Application was successfully submitted to the ATS.
FAILED — Application submission failed. Check the error field for details.
CANCELLED — Application was cancelled before processing (e.g. session was stopped).