REST API Overview
Checkmate's REST API enables you to access and automate various aspects of your test management workflow. Build custom integrations, automate test case creation, and manage test runs programmatically.
API Base URL
Development: http://localhost:3000
Production: https://your-production-domain.com
Quick Links
Authentication
Learn how to authenticate your API requests using session cookies or API tokens.
API Reference
Explore all available endpoints with request/response examples.
Examples
Ready-to-use code examples in multiple languages.
OpenAPI Spec
Download our OpenAPI 3.0 specification for automated tooling.
API Features
🔐 Secure Authentication
- Google OAuth for web interface
- API Tokens for programmatic access
- Session cookies for browser-based apps
🛡️ Role-Based Access Control (RBAC)
- Reader - Read-only access
- User - Create and update resources
- Admin - Full administrative access
📊 Comprehensive Coverage
- Projects - Create and manage test projects
- Tests - CRUD operations for test cases
- Runs - Execute and track test runs
- Labels, Squads, Sections - Organize your tests
- Reports - Download test reports and analytics
🚀 Developer-Friendly
- RESTful design principles
- JSON request/response format
- Detailed error messages
- OpenAPI 3.0 specification
- Postman collection available
Getting Started
1. Authenticate
Choose your authentication method:
# Generate an API token (requires session)
curl -X POST http://localhost:3000/api/v1/token/generate \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"userId": 1}'
2. Make Your First Request
# Get all projects
curl -X GET "http://localhost:3000/api/v1/projects?orgId=1&page=1&pageSize=10" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json"
3. Create a Test Case
# Create a new test
curl -X POST http://localhost:3000/api/v1/test/create \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"title": "Verify user login",
"projectId": 1,
"sectionId": 5,
"priorityId": 2,
"steps": "1. Open login page\n2. Enter credentials\n3. Click login",
"expectedResult": "User logged in successfully"
}'
Response Format
All API responses follow a consistent format:
Success Response
{
"data": {
// Response data here
},
"status": 200
}
Error Response
{
"error": "Error message here",
"status": 400
}
Common Status Codes
| Code | Meaning |
|---|---|
200 | Success - Request completed successfully |
201 | Created - Resource created successfully |
400 | Bad Request - Invalid parameters or missing required fields |
401 | Unauthorized - Authentication required or failed |
403 | Forbidden - Insufficient permissions |
404 | Not Found - Resource doesn't exist |
500 | Internal Server Error - Server error occurred |
Rate Limiting
Currently, there are no rate limits enforced. However, we recommend:
- Batch operations when possible
- Implement exponential backoff for retries
- Use pagination for large datasets
Support & Resources
- Postman Collection: View in Postman
- OpenAPI Spec: Available in the repository root
- GitHub Issues: Report bugs or request features
- Discord: Join our community
Next Steps
Authentication
Set up authentication for your API requests
API Reference
Explore all available endpoints
Examples
See code examples in your language