Overview
Safety Square provides REST APIs for Enterprise customers to integrate with existing systems. This documentation covers authentication, endpoints, and best practices.
Note: API access requires Enterprise tier subscription.
Authentication
All API requests require authentication via API key:
Authorization: Bearer YOUR_API_KEY
API keys are generated in the Admin Console under Settings > API Access.
Base URL
https://api.safetysquareplatform.com/v1
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /projects | List all projects |
| GET | /projects/{id} | Get project details |
| GET | /sessions | List active sessions |
| GET | /sessions/{id} | Get session details |
| GET | /incidents | List incidents |
| GET | /incidents/{id} | Get incident details |
| POST | /webhooks | Register webhook |
| DELETE | /webhooks/{id} | Remove webhook |
Projects API
List Projects
GET /projects
Query Parameters:
status- Filter by status (draft, approved, active, completed)limit- Results per page (default 50)offset- Pagination offset
Response:
{
"projects": [
{
"id": "proj_abc123",
"name": "Unit 4 Turnaround",
"client": "Acme Refining",
"site": "Deer Park Refinery",
"status": "active",
"activeSquares": 3,
"createdAt": "2026-01-15T08:00:00Z"
}
],
"total": 42,
"limit": 50,
"offset": 0
}Sessions API
List Active Sessions
GET /sessions?status=active
Response includes:
- Session ID
- Project reference
- Task name
- Location (unit/area)
- Crew count
- Status
- Last activity timestamp
Incidents API
List Incidents
GET /incidents
Query Parameters:
projectId- Filter by projecttype- Filter by type (near_miss, injury, property, environmental)severity- Filter by severityfrom- Start date (ISO 8601)to- End date (ISO 8601)
Webhooks
Register webhooks to receive real-time notifications:
Register Webhook
POST /webhooks
{
"url": "https://your-system.com/safety-square-webhook",
"events": ["incident.created", "session.signed_off"],
"secret": "your_webhook_secret"
}Available Events
incident.created- New incident reportedincident.updated- Incident details changedsession.started- New session createdsession.signed_off- Session completedproject.approved- Mother JSA approvedbroadcast.sent- Message sent to field
Rate Limits
- 100 requests per minute per API key
- Webhook delivery: 3 retries with exponential backoff
Support
API support available for Enterprise customers:
- api-support@safetysquareplatform.com
- Dedicated Slack channel (upon request)