Skip to content

Public beta : TesterPayKit is free while the beta lasts. Prices are not final until we say so.

Developer Tools

Official SDKs

Integrate TesterPayKit into your workflow with our official SDKs. Full type safety, comprehensive documentation, and active maintenance.

Quick Examples

See how easy it is to get started with each SDK

Flutter/Dart Create campaign and listen to bugs
import 'package:testerpaykit/testerpaykit.dart';

final client = TesterPayKit(
  apiKey: 'tpk_live_your_api_key',
);

// Create a test campaign
final campaign = await client.campaigns.create(
  CreateCampaignRequest(
    name: 'iOS Login Test',
    platform: Platform.ios,
    testersRequired: 5,
    rewardPerBug: 4.00,
  ),
);

// Listen to bug reports
client.bugs.stream(campaignId: campaign.id).listen((bug) {
  print('New bug: ' + bug.title);
});
TypeScript Create campaign and list bugs
import { TesterPayKit } from '@testerpaykit/expo';

const client = new TesterPayKit({
  apiKey: 'tpk_live_your_api_key',
});

// Create a test campaign
const campaign = await client.campaigns.create({
  name: 'iOS Login Test',
  platform: 'ios',
  testersRequired: 5,
  rewardPerBug: 4.00,
});

// Get bug reports
const bugs = await client.bugs.list({
  campaignId: campaign.id,
  status: 'open',
});

console.log('Found ' + bugs.length + ' open bugs');
Swift Start a session, wrap your view
import TesterPayKit

// One line starts a session; the SDK does the rest.
try await TPK.start(projectId: "your-project-id")

// Wrap your root view to get the tester experience:
//   floating feedback button, shake to report, voice notes
ContentView()
    .tpkFeedbackOverlay()

SDK Comparison

Feature Dart TypeScript Swift
Type Safety Full Full Type Hints
Async Support Streams Promises async/await
Auto Retries Yes Yes Yes
Webhook Verification Yes Yes Yes
Rate Limit Handling Yes Yes Yes
Minimum Runtime Dart 3.0+ Node 18+ Swift 5.9+

Ready to integrate?

Get started with a free account. No credit card required.