All under /organizations/{orgId}/handbooks, access token. Handbooks themselves are authored in the AirMason editor; the API lets you distribute them and monitor completion.
List and get handbooks
GET /organizations/{orgId}/handbooks
and GET /organizations/{orgId}/handbooks/{handbookId}
{
"id": "hb_3f9…",
"name": "Employee Handbook 2026",
"status": "published",
"currentVersion": 7,
"requiresSignature": true,
"requiresAcknowledgement": false,
"publishedAt": "2026-01-15T16:00:00.000Z",
"url": "https://books.airmason.com/acme-corp/employee-handbook-2026",
"assignedEmployeeCount": 412,
"signedCount": 388,
"createdAt": "2025-11-02T11:20:00.000Z"
}status is one of draft, published, or archived.
Get employees and groups assignments
GET /organizations/{orgId}/handbooks/{handbookId}/assignments
Returns the current assignments.
Assign employees and groups
PUT /organizations/{orgId}/handbooks/{handbookId}/assignments
{
"groups": ["Sales", "Lisbon Office"],
"employees": ["ext:R-10482"]
}Replaces the handbook's full assignment set. Newly assigned employees are notified (by email, or via the employee.handbook_assigned webhook if you've disabled emails).
Signature and acknowledgement status
GET /organizations/{orgId}/handbooks/{handbookId}/signatures
One row per assigned employee.
Filter with status=pending|signed|acknowledged, version=<n> (defaults to the current version), or signedSince=<timestamp>.
{
"data": [
{
"employee": { "id": "e7c1…", "employeeId": "R-10482", "email": "sam.okafor@acme.com" },
"version": 7,
"status": "signed",
"firstViewedAt": "2026-01-16T09:02:11.000Z",
"signedAt": "2026-01-16T09:14:37.000Z",
"acknowledgedAt": null,
"remindersSent": 0
}
],
"summary": { "assigned": 412, "viewed": 401, "signed": 388, "acknowledged": 0, "pending": 24 },
"pagination": { "limit": 25, "offset": 0, "total": 412 }
}status is pending (assigned, not yet actioned), signed, or acknowledged, depending on what the handbook requires. firstViewedAt is populated as soon as the employee opens the handbook, regardless of status.
Activity log
GET /organizations/{orgId}/handbooks/{handbookId}/activity
A chronological, paginated log of everything that happened to the handbook. Filter with type and since.
{
"data": [
{
"id": "al_91…",
"type": "handbook.published",
"occurredAt": "2026-01-15T16:00:00.000Z",
"actor": { "type": "collaborator", "email": "hr@acme.com" },
"details": { "version": 7, "publishType": "manual" }
},
{
"id": "al_92…",
"type": "employee.signed",
"occurredAt": "2026-01-16T09:14:37.000Z",
"actor": { "type": "employee", "employeeId": "R-10482" },
"details": { "version": 7 }
}
],
"pagination": { "limit": 25, "offset": 0, "total": 1204 }
}Types include handbook.created, handbook.published, handbook.launched, handbook.assignment_changed, employee.viewed, employee.signed, employee.acknowledged, employee.reminder_sent, policy.added, policy.updated, handbook.downloaded.
An organization-wide log (employees, groups, settings, integrations) is available at GET /organizations/{orgId}/activity.
Partner API documentation: