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.

GET/applications/:applicationId
curl https://apply-api.boringproject.ai/api/v1/applications/app_abc123 \
  -H "Authorization: Bearer bp_live_..."
Response200 OK
{
  "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.

Use status=FAILED to find applications that need attention. The error object contains specific error codes and messages to help diagnose failures.
GET/applications
NameTypeRequiredDescription
statusstringOptionalFilter by status: QUEUED, PROCESSING, SUCCESS, FAILED, CANCELLED
sessionIdstringOptionalFilter by session ID
pageintegerOptionalPage number (default: 1)
limitintegerOptionalItems 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_..."
Response200 OK
{
  "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).