Get an API key
- 1Sign in to ENBOQ Hire
Head to the dashboard and sign in with your company admin account.
- 2Open Company Settings
Navigate to Settings → API Access and choose “Generate API Key”.
- 3Name & Scope the Key
Give the key a descriptive label, choose the scopes required, and save the secret somewhere safe.
- 4Start Building
Use the key with our integration endpoints. You can regenerate or revoke keys at any time.
Authentication basics
- Include your key in the
x-api-keyheader. Format:prefix.secret. - Keys are company scoped—requests only operate on data owned by the issuing organization.
- Rotate or revoke at any time from Settings → API Access in the dashboard.
Permissions
Scopes & access control
| Scope | Description |
|---|---|
| jobs.read | List or fetch job records. |
| jobs.create | Create new job postings via the integration API. |
| jobs.update | Modify job fields such as title, salary, or description. |
| jobs.delete | Remove a job and its associated candidates. |
| jobs.status | Publish, pause, or close a job. |
| candidates.read | List or fetch candidate records. |
| candidates.create | Add new candidates to a job. |
| candidates.update | Update candidate attributes such as stage, rating, or tags. |
| candidates.delete | Delete a candidate record. |
Reference
Requests & responses per endpoint
GET
/v1/public/jobsjobs.read
Jobs · List
Retrieve a paginated set of jobs for the company associated with the API key.
https://api.enboqhire.com/v1/public/jobs
Notes
- • Supports filters: status, department, search, updatedAfter, updatedBefore.
- • Pagination parameters: page (starting at 1) and perPage (max 100).
Request examples
cURL example
Fetch the first 10 jobs.
curl \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
"https://api.enboqhire.com/v1/public/jobs?page=1&perPage=10"Example response
200 OK
{
"jobs": [
{
"id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"title": "Senior Robotics Engineer",
"department": "Hardware",
"employment_type": "full_time",
"location": "Austin, TX",
"status": "published",
"created_at": "2024-11-04T13:43:21.918Z"
}
],
"pagination": {
"page": 1,
"perPage": 10,
"total": 14
}
}POST
/v1/public/jobsjobs.create
Jobs · Create
Create a new job posting. Provide at least title, employmentType, locationType, and description.
https://api.enboqhire.com/v1/public/jobs
Notes
- • Optional fields include salaryMin/salaryMax, benefits, qualifications, and customQuestions.
Request examples
cURL example
Create a full-time onsite job in Austin.
curl -X POST \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"title": "Senior Robotics Engineer",
"employmentType": "full_time",
"locationType": "onsite",
"location": "Austin, TX",
"description": "Lead our robotics engineering initiatives.",
"salaryMin": 120000,
"salaryMax": 150000,
"salaryVisible": true
}' \
"https://api.enboqhire.com/v1/public/jobs"Example response
201 Created
{
"job": {
"id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"company_id": "f50a7f3b-94de-4641-9e93-04a5166a442f",
"title": "Senior Robotics Engineer",
"employment_type": "full_time",
"location_type": "onsite",
"location": "Austin, TX",
"status": "draft",
"created_at": "2024-11-07T09:21:15.000Z"
}
}GET
/v1/public/jobs/:jobIdjobs.read
Jobs · Retrieve
Fetch a single job by ID. Returns 404 if the job does not belong to the authenticated company.
https://api.enboqhire.com/v1/public/jobs/:jobId
Request examples
cURL example
Retrieve a job payload by ID.
curl \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
"https://api.enboqhire.com/v1/public/jobs/69e8e4c4-7bb7-4fb9-82f4-314ed60968cb"Example response
200 OK
{
"job": {
"id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"title": "Senior Robotics Engineer",
"employment_type": "full_time",
"location_type": "onsite",
"location": "Austin, TX",
"status": "published",
"description": "Lead our robotics engineering initiatives.",
"created_at": "2024-11-04T13:43:21.918Z"
}
}PUT
/v1/public/jobs/:jobIdjobs.update
Jobs · Update
Update one or more fields on an existing job. Provide only the fields that changed.
https://api.enboqhire.com/v1/public/jobs/:jobId
Notes
- • Validation ensures salaryMin ≤ salaryMax when both are provided.
Request examples
cURL example
Update salary and description for a job.
curl -X PUT \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"salaryMin": 130000,
"salaryMax": 160000,
"description": "Lead and mentor the robotics engineering team."
}' \
"https://api.enboqhire.com/v1/public/jobs/69e8e4c4-7bb7-4fb9-82f4-314ed60968cb"Example response
200 OK
{
"job": {
"id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"title": "Senior Robotics Engineer",
"salary_min": 130000,
"salary_max": 160000,
"benefits": [
"401k match",
"Comprehensive health plan",
"Stock options"
],
"updated_at": "2024-11-08T10:22:44.000Z"
}
}PATCH
/v1/public/jobs/:jobId/statusjobs.status
Jobs · Update status
Change a job's workflow status. Accepted values: draft, published, closed.
https://api.enboqhire.com/v1/public/jobs/:jobId/status
Request examples
cURL example
Publish a job.
curl -X PATCH \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"status": "published"
}' \
"https://api.enboqhire.com/v1/public/jobs/69e8e4c4-7bb7-4fb9-82f4-314ed60968cb/status"Example response
200 OK
{
"job": {
"id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"status": "published",
"published_at": "2024-11-08T12:00:00.000Z"
}
}DELETE
/v1/public/jobs/:jobIdjobs.delete
Jobs · Delete
Delete a job and cascade to related candidates. Use with caution—deletions are permanent.
https://api.enboqhire.com/v1/public/jobs/:jobId
Request examples
cURL example
Delete a job by ID.
curl -X DELETE \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
"https://api.enboqhire.com/v1/public/jobs/69e8e4c4-7bb7-4fb9-82f4-314ed60968cb"Example response
204 No Content
No response body is returned.
The job and its dependent records have been deleted.
GET
/v1/public/candidatescandidates.read
Candidates · List
Retrieve candidates across the company with optional filters for job, stage, email, and date ranges.
https://api.enboqhire.com/v1/public/candidates
Notes
- • Use jobId to scope results to a single job pipeline.
- • Pagination parameters: page (starting at 1) and perPage (max 100).
Request examples
cURL example
List candidates for a job pipeline.
curl \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
"https://api.enboqhire.com/v1/public/candidates?jobId=69e8e4c4-7bb7-4fb9-82f4-314ed60968cb&perPage=5"Example response
200 OK
{
"candidates": [
{
"id": "8071d0b8-5f8e-4dc5-8b2f-22094de3ee8f",
"job_id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"full_name": "Alex Smith",
"email": "[email protected]",
"stage": "interview",
"applied_at": "2024-11-06T09:13:00.000Z"
}
],
"pagination": {
"page": 1,
"perPage": 5,
"total": 12
}
}POST
/v1/public/candidatescandidates.create
Candidates · Create
Add a new candidate to a job pipeline. Provide at minimum jobId, fullName, and email.
https://api.enboqhire.com/v1/public/candidates
Notes
- • jobId must refer to a job owned by the API key's company.
Request examples
cURL example
Submit a new candidate.
curl -X POST \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"jobId": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"fullName": "Taylor Morgan",
"email": "[email protected]",
"stage": "new"
}' \
"https://api.enboqhire.com/v1/public/candidates"Example response
201 Created
{
"candidate": {
"id": "8071d0b8-5f8e-4dc5-8b2f-22094de3ee8f",
"job_id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"full_name": "Taylor Morgan",
"email": "[email protected]",
"stage": "new",
"applied_at": "2024-11-08T09:45:00.000Z"
}
}GET
/v1/public/candidates/:candidateIdcandidates.read
Candidates · Retrieve
Fetch a candidate by ID. The candidate must belong to the company linked to the API key.
https://api.enboqhire.com/v1/public/candidates/:candidateId
Request examples
cURL example
Retrieve a candidate profile.
curl \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
"https://api.enboqhire.com/v1/public/candidates/8071d0b8-5f8e-4dc5-8b2f-22094de3ee8f"Example response
200 OK
{
"candidate": {
"id": "8071d0b8-5f8e-4dc5-8b2f-22094de3ee8f",
"job_id": "69e8e4c4-7bb7-4fb9-82f4-314ed60968cb",
"full_name": "Taylor Morgan",
"email": "[email protected]",
"stage": "new",
"application_responses": {
"cover_letter": "Excited about robotics leadership opportunities."
}
}
}PUT
/v1/public/candidates/:candidateIdcandidates.update
Candidates · Update
Update candidate metadata such as stage, rating, application responses, or tags.
https://api.enboqhire.com/v1/public/candidates/:candidateId
Notes
- • Sending an empty body returns a 400 response.
Request examples
cURL example
Move a candidate to the interview stage and add a rating.
curl -X PUT \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"stage": "interview",
"rating": 4,
"tags": ["priority"]
}' \
"https://api.enboqhire.com/v1/public/candidates/8071d0b8-5f8e-4dc5-8b2f-22094de3ee8f"Example response
200 OK
{
"candidate": {
"id": "8071d0b8-5f8e-4dc5-8b2f-22094de3ee8f",
"stage": "interview",
"rating": 4,
"tags": ["priority"],
"stage_changed_at": "2024-11-08T14:05:12.000Z"
}
}DELETE
/v1/public/candidates/:candidateIdcandidates.delete
Candidates · Delete
Remove a candidate from the pipeline. Use sparingly—deletions cannot be undone.
https://api.enboqhire.com/v1/public/candidates/:candidateId
Request examples
cURL example
Delete a candidate by ID.
curl -X DELETE \
-H "x-api-key: YOUR_PREFIX.YOUR_SECRET" \
"https://api.enboqhire.com/v1/public/candidates/8071d0b8-5f8e-4dc5-8b2f-22094de3ee8f"Example response
204 No Content
No response body is returned.
Candidate record removed successfully.