API Overview
Base URL
API Format
All API requests and responses use JSON format. The StrataGRC REST API provides programmatic access to all major platform features including risks, controls, audits, findings, investigations, and more.
Available Modules
Risk Management
CRUD operations for risks, risk responses, and risk mapping
Control Library
Manage controls, control testing, and effectiveness tracking
Audit Management
Audit engagements, fieldwork, and audit planning
Investigations
IMS cases, evidence, and investigation management
API Versioning
Current API version: v1 (implicit)
All endpoints follow RESTful conventions with consistent response formats.
Authentication
Session-Based Authentication
The StrataGRC API uses session-based authentication. Users must be logged in to the web application to access API endpoints.
Authentication Requirements
- Valid user session (logged in to web application)
- Organization context (user must belong to an organization)
- Appropriate permissions for the requested operation
Example Request with Authentication
Response Codes
| Code | Meaning | Description |
|---|---|---|
| 200 | Success | Request completed successfully |
| 401 | Unauthorized | User not logged in or session expired |
| 403 | Forbidden | User lacks required permissions |
| 404 | Not Found | Requested resource not found |
| 500 | Server Error | Internal server error |
Core Endpoints
Authentication Status
Check current authentication status
Response:
Dashboard Data
Get dashboard KPI counts
Response:
Chart Data
Get data for dashboard charts
Query Parameters:
chart_type- Type of chart data (findings_by_risk, audit_phases, vendors_by_risk)
Risk Management API
List Risks
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
action |
string | Must be list |
category |
string | Filter by risk category (optional) |
status |
string | Filter by risk status (optional) |
Response:
Create Risk
Request Body:
Update Risk
Request Body:
Delete Risk
Request Body:
Control Library API
List Controls
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
action |
string | Must be list |
framework_id |
int | Filter by framework (optional) |
status |
string | Filter by status: Active, Draft, Archived (optional) |
Response:
Get Control Details
Response:
Create Control
Request Body:
Update Control Effectiveness
Request Body:
Audit Management API
List Engagements
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
action |
string | Must be list |
phase |
string | Filter by phase: Planning, Fieldwork, Review, Reporting, Completed |
status |
string | Filter by status (optional) |
Response:
Get Engagement Details
Response:
Create Engagement
Request Body:
Update Engagement Phase
Request Body:
Findings API
List Findings
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
action |
string | Must be list |
engagement_id |
int | Filter by engagement (optional) |
status |
string | Filter by status: Open, Approved, Closed (optional) |
assigned_to |
int | Filter by assignee (optional) |
Response:
Create Finding
Request Body:
Update Finding Status
Request Body:
Submit Management Response
Request Body:
Investigations (IMS) API
List Cases
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
action |
string | Must be list |
status |
string | Filter by status: new, assigned, in_progress, review, completed |
priority |
string | Filter by priority: low, medium, high, urgent |
Response:
Create Case
Request Body:
Upload Evidence
Request Body (multipart/form-data):
KPIs & Strategy API
List KPIs
Response:
Get KPI Performance History
Response:
Submit KPI Performance Data
Request Body:
Error Handling
Error Response Format
Common Error Codes
| Error Code | Meaning | Solution |
|---|---|---|
| AUTH_REQUIRED | User not authenticated | Log in to the application |
| PERMISSION_DENIED | Insufficient permissions | Request required permissions from admin |
| NOT_FOUND | Resource not found | Check the resource ID |
| VALIDATION_ERROR | Invalid input data | Review request parameters |
| SERVER_ERROR | Internal server error | Contact support if persists |
Best Practices
API Usage Guidelines
Use Proper HTTP Methods
Follow REST conventions:
- GET: Retrieve data (read-only)
- POST: Create new resources
- PUT: Update existing resources
- DELETE: Remove resources
Handle Errors Gracefully
Always check response status and handle errors:
- Check HTTP status codes
- Parse error messages
- Implement retry logic for transient errors
- Log errors for debugging
Respect Rate Limits
To ensure fair usage:
- Limit request frequency
- Batch operations when possible
- Cache responses when appropriate
- Use webhooks for real-time updates (future)
Secure Your Integration
Security best practices:
- Use HTTPS in production
- Never expose session tokens
- Validate all input data
- Implement proper error handling
Integration Support
For assistance with API integration:
• Review this documentation thoroughly
• Test endpoints using browser or tools like Postman
• Check browser console for error details
• Contact StrataGRC support for complex integrations