API Reference
Users
Create, retrieve, update, and delete users who apply for jobs through your platform.
Create User
Create a new user in the system. Each user is identified by your externalUserId and requires a name and email.
/users| Name | Type | Required | Description |
|---|---|---|---|
externalUserId | string | Required | Your system's user ID |
name | string | Required | User's full name |
email | string | Required | User's email address |
maxTotalJobApplications | integer | Optional | Lifetime application limit (default: 1000) |
maxJobApplicationsPerMonth | integer | Optional | Monthly application limit (default: 100) |
curl -X POST https://apply-api.boringproject.ai/api/v1/users \
-H "Authorization: Bearer bp_live_..." \
-H "Content-Type: application/json" \
-d '{"externalUserId": "user_12345", "name": "John Doe", "email": "john@example.com", "maxTotalJobApplications": 1000, "maxJobApplicationsPerMonth": 100}'{
"userId": "usr_abc123",
"clientId": "client_xyz789",
"externalUserId": "user_12345",
"name": "John Doe",
"email": "john@example.com",
"maxTotalJobApplications": 1000,
"maxJobApplicationsPerMonth": 100,
"status": "active",
"createdAt": "2024-02-14T10:30:00Z"
}Get User
Retrieve details of a specific user by their user ID.
/users/:userIdcurl https://apply-api.boringproject.ai/api/v1/users/usr_abc123 \
-H "Authorization: Bearer bp_live_..."Update User
Update user settings including name, email, application limits, and status. All fields are optional — only include fields you want to change.
/users/:userId| Name | Type | Required | Description |
|---|---|---|---|
name | string | Optional | User's full name |
email | string | Optional | User's email address |
externalUserId | string | Optional | Your system's user ID |
maxTotalJobApplications | integer | Optional | Lifetime application limit |
maxJobApplicationsPerMonth | integer | Optional | Monthly application limit |
status | string | Optional | active or inactive |
Delete User
Delete a user and all associated data including profiles, sessions, and applications. This action is irreversible.
/users/:userIdList Users
Retrieve a paginated list of all users. Filter by status to find active or inactive users.
/users| Name | Type | Required | Description |
|---|---|---|---|
page | integer | Optional | Page number (default: 1) |
limit | integer | Optional | Items per page, max 100 (default: 20) |
status | string | Optional | Filter by status: active, inactive |
{
"data": [
{ "userId": "usr_abc123", "externalUserId": "user_12345", "name": "John Doe", "email": "john@example.com", "status": "active", "createdAt": "2024-02-14T10:30:00Z" }
],
"pagination": { "page": 1, "limit": 20, "total": 150, "totalPages": 8 }
}Get User Usage
Get application usage statistics for a specific user including limits, current usage, and remaining quota.
/users/:userId/usage{
"userId": "usr_abc123",
"limits": { "maxTotalJobApplications": 1000, "maxJobApplicationsPerMonth": 100 },
"usage": { "totalApplications": 450, "totalSuccessful": 380, "totalFailed": 70, "monthlyApplications": 45 },
"remaining": { "total": 550, "monthly": 55 },
"period": { "month": "2024-02", "startDate": "2024-02-01T00:00:00Z", "endDate": "2024-02-29T23:59:59Z" }
}Related docs
Continue reading
Job Search
Search for jobs across supported ATS platforms by title, location, and filters. Every returned job can be applied to via the Sessions endpoint.
Candidate Profiles
Manage candidate profiles containing personal information, work experience, education, skills, languages, certifications, achievements, miscellaneous details, and resumes.
Sessions
Create and manage job application sessions — apply to specific jobs, run one-time searches, or set up recurring autopilot campaigns.
Authentication
Authenticate requests to the Boring Project API using Bearer tokens with your API key.