Developer platform · API v1

Build with the FastHRM API.

Read the live demo database through a typed, versioned API. Selected integration writes are implemented behind bearer-token authentication.

Public preview access. GET endpoints require no authentication. Writes return 503 until FASTSME_API_TOKEN is configured; enabled clients send Authorization: Bearer <token>.

API contract

Concern Contract
Base URL https://hrm.fastsme.com/api
Version v1 · schema refreshed 2026-08-08
Pagination ?limit=20&offset=0 · maximum limit 200
Filtering ?q=search&status=value · available fields are documented per operation
Errors {"error":{"code":"…","message":"…","details":{}}}
Writes Authorization: Bearer <token> · POST/PATCH/DELETE only where declared in OpenAPI

Resources

Employees

Employee master records and employment state.

GET /api/v1/employeesGET /api/v1/employees/{id}

Departments

Organisation departments.

GET /api/v1/departmentsGET /api/v1/departments/{id}

Leave requests

Employee leave requests and approval status.

GET /api/v1/leaveGET /api/v1/leave/{id}

Attendance

Daily attendance and recorded hours.

GET /api/v1/attendanceGET /api/v1/attendance/{id}

Job openings

Open requisitions and their hiring state.

GET /api/v1/jobsGET /api/v1/jobs/{id}

Candidates

Candidate profiles, including CV-extracted fields.

GET /api/v1/candidatesGET /api/v1/candidates/{id}

Applications

Candidate applications and pipeline stage.

GET /api/v1/applicationsGET /api/v1/applications/{id}

Organizations

Enterprise recruitment organizations and locale defaults.

GET /api/v1/organizationsGET /api/v1/organizations/{id}

Recruitment brands

Brand, domain, and visual identity configuration.

GET /api/v1/brandsGET /api/v1/brands/{id}

Career sites

Candidate-facing careers sites.

GET /api/v1/career-sitesGET /api/v1/career-sites/{id}

Organization teams

Country- and department-scoped enterprise recruiting teams.

GET /api/v1/organization-teamsGET /api/v1/organization-teams/{id}

Job distributions

Localized job placements across career sites and brands.

GET /api/v1/job-distributionsGET /api/v1/job-distributions/{id}

Quick start

curl "https://hrm.fastsme.com/api/v1/employees?limit=20"

python - <<'PY'
import requests
rows = requests.get("https://hrm.fastsme.com/api/v1/employees", timeout=20).json()
print(rows["data"])
PY

Authenticated write example

curl -X PATCH \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{"status":"Approved"}' \
  'https://hrm.fastsme.com/api/v1/leave/1'

Only fields listed in the operation schema are accepted. Unknown fields return a structured validation error; destructive writes remain token-gated.

Runtime OpenAPI: /api/openapi.json · Stable compatibility schema: /swagger.json · Interactive docs: /api/docs