REST API Documentation
Build powerful integrations with TesterPayKit's RESTful API. Full access to campaigns, bug reports, testers, and analytics.
Base URL
https://api.testerpaykit.app Current Version
v1 (stable) # Authentication
API Key Authentication
All API requests require authentication using an API key. Include your key in the
Authorization header.
# Include your API key in the Authorization header curl -X GET https://api.testerpaykit.app/v1/campaigns \ -H "Authorization: Bearer tpk_live_your_api_key" \ -H "Content-Type: application/json"
Keep your API key secure
Never expose your API key in client-side code or public repositories. Use environment variables to store sensitive credentials.
API Key Types
tpk_live_... Production API key. All operations affect real data and billing.
tpk_test_... Sandbox API key. Safe for development and testing without charges.
# Endpoints
/v1/campaigns List all test campaigns
stable/v1/campaigns Create a new test campaign
stable/v1/campaigns/:id Get campaign details and status
stable/v1/bugs List bug reports with filters
stable/v1/bugs/:id Update bug status or resolution
stable/v1/webhooks Register a webhook endpoint
stable/v1/testers List available testers
beta/v1/analytics Campaign analytics and metrics
beta# Request and Response Format
Request Example
POST /v1/campaigns
Content-Type: application/json
Authorization: Bearer tpk_live_...
{
"name": "iOS Login Test",
"platform": "ios",
"testersRequired": 5,
"rewardPerBug": 4.00
} Response Example
{
"success": true,
"data": {
"id": "camp_abc123",
"name": "iOS Login Test",
"status": "draft",
"createdAt": "2026-01-27T..."
}
} # Error Handling
The API uses standard HTTP status codes to indicate success or failure. Error responses include a machine-readable code and human-readable message.
{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "The provided API key is invalid or expired",
"status": 401
}
} Success
Bad Request
Unauthorized
Server Error
# Rate Limits
API requests are rate limited to ensure fair usage. Rate limit information is included in response headers.
Requests per minute
Requests per hour
Requests per day
# Rate limit headers in response X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 987 X-RateLimit-Reset: 1706367600
Prefer using an SDK?
Our SDKs handle authentication, error handling, and rate limiting for you. Available for Flutter/Dart, TypeScript, and Python.