Skip to main content

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

Authentication

Learn how to authenticate your API requests using session cookies or API tokens.

View Authentication Guide →

API Reference

Explore all available endpoints with request/response examples.

View API Reference →

Examples

Ready-to-use code examples in multiple languages.

View Examples →

OpenAPI Spec

Download our OpenAPI 3.0 specification for automated tooling.

Download OpenAPI →

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

CodeMeaning
200Success - Request completed successfully
201Created - Resource created successfully
400Bad Request - Invalid parameters or missing required fields
401Unauthorized - Authentication required or failed
403Forbidden - Insufficient permissions
404Not Found - Resource doesn't exist
500Internal 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

Next Steps

Authentication

Set up authentication for your API requests

API Reference

Explore all available endpoints

Examples

See code examples in your language