API Documentation
API Documentation that will walk you through how to create your API key, common use cases, and security best practices.
Overview
The Herd API provides programmatic access to training completion data, user information, and tag management. All endpoints require API key authentication and are scoped to your organization.
Creating your API Key
Getting Your API Key
Log into your Herd dashboard
Navigate to Administration on the left sidebar > API Keys
Click "Create New API Key"
Save the key securely - Please note: The key will only be shown once

Using Your API Key
Include your API key in the 'X-API-Key' header with every request:
API Key Format: herd_<8chars>_<64chars> (73 characters total)
Response Format
All API responses follow this structure:
Endpoints
Get Training Completions
Retrieves all training enrollments and completion status for your organization. This is the primary endpoint for tracking training progress and completions.
Query Parameters:
page
integer
No
1
Page number (min: 1)
per_page
integer
No
50
Results per page (min: 1, max: 100)
Status Values:
Not started- User has not begun the trainingIn Progress- User started but has not completedPassed- User completed the training
Date Fields:
enrollment_date- When user was enrolled (always present)start_date- When user started training (null if not started)completion_date- When user completed training (null if not completed)
Example Request:
curl -H "X-API-Key: herd_a1b2c3d4_..." \ "https://app.security.io/api/v1/enrollments?page=1&per_page=100`
Use Cases:
Export completed trainings to Google Sheets
Generate completion reports
Track training progress across your organization
Identify users who need to complete specific trainings
2. Get Users
GET /api/v1/users
Retrieves user details for your organization.
Query Parameters:
page
integer
No
1
Page number
per_page
integer
No
50
Results per page (max: 100)
Status Values:
Active- User has Slack or Teams integrationInactive- User not connected to any platform
Get Tags
GET /api/v1/tags
Retrieves all tags used to categorize trainings in your organization.
Query Parameters:
page
integer
No
1
Page number
per_page
integer
No
50
Results per page (max: 100)
Common Use Cases
Filter by Date Range
Group Completions by User
Pagination
All list endpoints support pagination. When results exceed one page, use the next_page_url or increment the page parameter.
Example: Fetch all enrollments
Error Codes
400
Bad Request
Check query parameters are valid
401
Unauthorized
Verify API key is correct and active
404
Not Found
Resource doesn't exist (e.g., invalid tag_id)
429
Too Many Requests
Slow down request rate
500
Internal Server Error
Contact support if persists
Rate Limiting
Rate limits are enforced to ensure API stability. If you receive a 429 error, implement exponential backoff:
Last updated