Getting Started with TesterPayKit
Everything you need to integrate crowd testing into your development workflow. From setup to managing bug reports, we've got you covered.
# Setup
1. Create Your Account
Sign up for TesterPayKit and create your organization. The free plan includes 5 test sessions per month to get started.
Create Account2. Generate API Key
Navigate to Settings > API Keys and generate a new key for your integration.
# Your API key will look like this: tpk_live_a1b2c3d4e5f6g7h8i9j0...
3. Install the SDK
Choose your preferred SDK and add it to your project:
flutter pub add testerpaykit
npm install @testerpaykit/sdk
pip install testerpaykit
4. Initialize the Client
Configure the SDK with your API key:
// TypeScript example
import { TesterPayKit } from '@testerpaykit/sdk';
const client = new TesterPayKit({
apiKey: process.env.TESTERPAYKIT_API_KEY,
environment: 'production'
}); # Creating Tests
Test Campaign Structure
A test campaign defines what you want tested, who should test it, and how they should be compensated.
// Create a new test campaign
const campaign = await client.campaigns.create({
name: 'Login Flow Testing',
description: 'Test the new login and signup flows',
appUrl: 'https://testflight.apple.com/...',
platform: 'ios',
testersRequired: 10,
rewardPerBug: 4.00,
targetDevices: ['iPhone 14', 'iPhone 15'],
testCases: [
{ title: 'Sign up with email', priority: 'high' },
{ title: 'Sign in with Google', priority: 'medium' },
{ title: 'Password reset flow', priority: 'high' }
]
}); Defining Test Cases
Clear test cases help testers understand exactly what to test. Include acceptance criteria for each case.
- • Title: A brief, descriptive name for the test case
- • Steps: Numbered instructions to reproduce the scenario
- • Expected Result: What should happen if everything works correctly
- • Priority: High, Medium, or Low importance
Campaign Status
Track your campaign progress programmatically:
const status = await client.campaigns.getStatus(campaign.id);
console.log(status);
// {
// id: 'camp_abc123',
// status: 'active',
// testersAssigned: 8,
// bugsReported: 12,
// completedTests: 24,
// remainingBudget: 52.00
// } # Bug Reports
Bug Report Structure
Every bug report from TesterPayKit follows a structured format to ensure you have all the information needed to reproduce and fix issues.
{
"id": "bug_xyz789",
"title": "App crashes when tapping submit without email",
"severity": "critical",
"status": "open",
"device": {
"model": "iPhone 14 Pro",
"os": "iOS 17.2",
"appVersion": "2.1.0"
},
"steps": [
"Open the app",
"Navigate to signup",
"Leave email field empty",
"Tap Submit button"
],
"expectedResult": "Validation error shown",
"actualResult": "App crashes immediately",
"screenshots": ["https://..."],
"videoUrl": "https://..."
} Fetching Bug Reports
Retrieve bug reports via the API or SDK:
// Get all bugs for a campaign
const bugs = await client.bugs.list({
campaignId: 'camp_abc123',
status: 'open',
severity: ['critical', 'high']
});
// Update bug status
await client.bugs.update('bug_xyz789', {
status: 'fixed',
resolution: 'Added input validation'
}); Webhooks
Get real-time notifications when bugs are reported:
// Configure webhook in dashboard or via API
await client.webhooks.create({
url: 'https://your-app.com/webhooks/testerpaykit',
events: ['bug.created', 'bug.updated', 'campaign.completed'],
secret: 'whsec_...'
}); Ready to dive deeper?
Explore our API reference for complete endpoint documentation, or check out our SDKs for your preferred language.