API Reference
Users
Create, retrieve, update, and delete users who apply for jobs through your platform.
Create a 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 |
curl -X PUT https://apply-api.boringproject.ai/api/v1/users/usr_abc123 \
-H "Authorization: Bearer bp_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "John Doe", "email": "john@example.com", "maxTotalJobApplications": 2000, "maxJobApplicationsPerMonth": 150, "status": "active"}'Delete User
Delete a user and all associated data including profiles, sessions, and applications. This action is irreversible. Consider setting status: inactive first if you may need to recover the user.
/users/:userIdcurl -X DELETE https://apply-api.boringproject.ai/api/v1/users/usr_abc123 \
-H "Authorization: Bearer bp_live_..."List 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 |
curl "https://apply-api.boringproject.ai/api/v1/users?page=1&limit=20&status=active" \
-H "Authorization: Bearer bp_live_..."{
"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/usagecurl https://apply-api.boringproject.ai/api/v1/users/usr_abc123/usage \
-H "Authorization: Bearer bp_live_..."{
"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.