GET/api/v1/tcs/companies/meread_onlyReturn the Company tied to the authenticated API key — verifies tenant binding before fan-out queries.
Response
{
"ok": true,
"data": {
"id": "co_a3b9...",
"name": "Acme Electric, Inc.",
"legal_name": "Acme Electric, Inc.",
"subscription_tier": "smb",
"employee_count": 12,
"states_operating": ["TX", "FL", "OH"],
"industry": "electrical_contractor"
},
"request_id": "req_a1b2c3d4e5f6g7h8"
}
GET/api/v1/tcs/employeesread_onlyList every employee in the caller's tenant. Tenant boundary enforced server-side.
Response
{
"ok": true,
"data": {
"employees": [
{
"id": "p_x1y2...",
"email": "j.doe@acme.com",
"full_name": "Jane Doe",
"role_at_company": "electrician",
"primary_state_abbr": "TX",
"external_hris_id": null
}
],
"count": 1
}
}
POST/api/v1/tcs/employeesread_writeCreate / upsert an employee from your HRIS.
Request body
{
"email": "j.doe@acme.com",
"first_name": "Jane",
"last_name": "Doe",
"external_hris_id": "bhr-101",
"primary_state_abbr": "TX",
"job_title": "Master Electrician",
"start_date": "2022-04-11",
"hris_provider": "bamboohr"
}
Response
{
"ok": true,
"data": {
"status": "queued",
"email": "j.doe@acme.com",
"external_hris_id": "bhr-101"
}
}
GET/api/v1/tcs/employees/{id}read_onlyFetch one employee with their compliance summary.
Response
{
"ok": true,
"data": {
"id": "p_x1y2...",
"email": "j.doe@acme.com",
"full_name": "Jane Doe",
"compliance_summary": {
"total_licenses": 3,
"active": 2,
"expiring_soon": 1,
"expired": 0,
"pending": 0
}
}
}
PUT/api/v1/tcs/employees/{id}read_writeUpdate an existing employee.
Request body
{
"primary_state_abbr": "FL",
"job_title": "Senior Master Electrician",
"employment_status": "active"
}
Response
{
"ok": true,
"data": {
"status": "queued",
"id": "p_x1y2...",
"updates": {
"primary_state_abbr": "FL",
"job_title": "Senior Master Electrician"
}
}
}
GET/api/v1/tcs/employees/{id}/licensesread_onlyList every electrical license held by one employee — state, type, number, expiration, CE progress, bucket.
Response
{
"ok": true,
"data": {
"licenses": [
{
"id": "lic_a1b2...",
"state_abbr": "TX",
"state_name": "Texas",
"license_type": "Master Electrician",
"license_number": "152679",
"issue_date": "2018-09-01",
"expiration_date": "2026-09-01",
"status": "Active",
"bucket": "active",
"days_to_expiration": 487,
"ceu_requirement_current_cycle": 4,
"ceus_completed_current_cycle": 4,
"managed_by_tcs": true
}
],
"count": 1
}
}
POST/api/v1/tcs/employees/{id}/licensesread_writeAdd a license to an employee's record.
Request body
{
"state_abbr": "TX",
"license_type": "Master Electrician",
"license_number": "152679",
"issue_date": "2018-09-01",
"expiration_date": "2026-09-01",
"status": "Active"
}
Response
{
"ok": true,
"data": {
"status": "queued",
"employee_id": "p_x1y2...",
"state_abbr": "TX",
"license_type": "Master Electrician"
}
}
GET/api/v1/tcs/employees/{id}/audit-trailread_onlyPer-employee audit log. Used for SOX / ISO 27001 internal-audit packets.
Response
{
"ok": true,
"data": {
"entries": [
{
"ts": "2026-05-04T17:42:11.000Z",
"request_id": "req_...",
"api_key_id_suffix": "a3b9c4d5",
"method": "POST",
"pathname": "/api/v1/tcs/employees/p_.../licenses",
"status": 202,
"duration_ms": 124
}
],
"count": 1
}
}
GET/api/v1/tcs/compliance/state/{state_code}read_onlyPer-state compliance summary — workforce-wide buckets + per-employee drill-down.
Response
{
"ok": true,
"data": {
"state_abbr": "TX",
"summary": {
"state_abbr": "TX",
"total_employees_with_license": 5,
"compliant": 3,
"at_risk": 1,
"expired": 1,
"percent_compliant": 60
},
"employees": [...]
}
}
POST/api/v1/tcs/webhook/{slug}webhook_onlyInbound webhook receiver. Slug: 'bamboohr' | 'rippling' | 'gusto'. Auth is HMAC-SHA256 signature, not Bearer.
Response
{
"ok": true,
"provider": "bamboohr",
"received": { "external_id": "bhr-101" }
}