Coming Soon — TesterPayKit is in public preview. Pricing and features may still change before launch.

Documentation

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 Account

2. 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/Dart
flutter pub add testerpaykit
TypeScript/Node.js
npm install @testerpaykit/sdk
Python
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.