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.

POST/users
NameTypeRequiredDescription
externalUserIdstringRequiredYour system's user ID
namestringRequiredUser's full name
emailstringRequiredUser's email address
maxTotalJobApplicationsintegerOptionalLifetime application limit (default: 1000)
maxJobApplicationsPerMonthintegerOptionalMonthly 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}'
Response200 OK
{
  "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.

GET/users/:userId
curl 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.

PUT/users/:userId
NameTypeRequiredDescription
namestringOptionalUser's full name
emailstringOptionalUser's email address
externalUserIdstringOptionalYour system's user ID
maxTotalJobApplicationsintegerOptionalLifetime application limit
maxJobApplicationsPerMonthintegerOptionalMonthly application limit
statusstringOptionalactive or inactive

Delete User

Delete a user and all associated data including profiles, sessions, and applications. This action is irreversible.

Deleting a user permanently removes all their profiles, sessions, and application history. This cannot be undone.
DELETE/users/:userId

List Users

Retrieve a paginated list of all users. Filter by status to find active or inactive users.

GET/users
NameTypeRequiredDescription
pageintegerOptionalPage number (default: 1)
limitintegerOptionalItems per page, max 100 (default: 20)
statusstringOptionalFilter by status: active, inactive
Response200 OK
{
  "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.

GET/users/:userId/usage
Response200 OK
{
  "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" }
}