TesterArmyTesterArmy
TesterArmyTesterArmy
WelcomeIntroductionQuick Start
Run ModePull Request TestingProduction MonitoringGroup Webhooks
Test CredentialsAgent Mail InboxesHTTP Basic Auth
OverviewApp UploadsGitHub Actions
VercelCoolifyCoolifySlack
Testing Staging EnvironmentTesting PRs
Getting StartedLocal Development
Run

Group Webhooks

Group webhooks let you run every test in a group with one HTTP call. Works with any CI/CD pipeline, deployment tool, or custom automation.

Setup

  1. Open your project → Tests tab.
  2. Expand a group and click the trigger badge (lightning icon).
  3. Toggle Enable webhook on.
  4. Click Save.
  5. Copy the URL - the secret is shown once.

Trigger

curl -X POST https://tester.army/api/v1/groups/webhook/{id}/{secret}

Production Monitoring

Previous Page

Test Credentials

Next Page

On this page

SetupTriggerOptional bodyMobile app overrideResponseFailure notificationsLimits

All tests in the group are queued against the project's configured URL.

Optional body

You can pass JSON to attach commit metadata:

curl -X POST https://tester.army/api/v1/groups/webhook/{id}/{secret} \
  -H "Content-Type: application/json" \
  -d '{
    "commitSha": "abc123"
  }'

Mobile app override

You can override the iOS app build used by mobile tests in the group.

By bundle ID — resolves to the latest uploaded app matching that bundle identifier:

curl -X POST https://tester.army/api/v1/groups/webhook/{id}/{secret} \
  -H "Content-Type: application/json" \
  -d '{
    "mobile": {
      "bundleId": "com.example.app",
      "buildId": "44"
    }
  }'

By app ID — targets a specific uploaded build by its UUID (returned from the upload API):

curl -X POST https://tester.army/api/v1/groups/webhook/{id}/{secret} \
  -H "Content-Type: application/json" \
  -d '{
    "mobile": {
      "appId": "<YOUR APP UPLOAD ID>"
    }
  }'

Use appId when multiple builds share the same bundle ID and you need to pin a specific upload.

By remote artifact — provide an HTTPS URL and filename for remote build artifacts:

curl -X POST https://tester.army/api/v1/groups/webhook/{id}/{secret} \
  -H "Content-Type: application/json" \
  -d '{
    "mobile": {
      "artifactUrl": "https://example.com/builds/MyApp.app.zip",
      "artifactFilename": "MyApp.app.zip",
      "buildId": "eas-982"
    }
  }'

Only one of bundleId, appId, or artifactUrl can be provided per request.

Response

{
  "received": true,
  "status": "queued",
  "runIds": ["uuid-1", "uuid-2"],
  "count": 2
}

When the batch contains iOS tests, the response includes metadata.mobile:

{
  "received": true,
  "status": "queued",
  "runIds": ["uuid-1", "uuid-2"],
  "count": 2,
  "metadata": {
    "mobile": {
      "resolvedAppId": "11111111-1111-1111-8111-111111111111",
      "source": "app_id",
      "buildId": 



  • source: "test_default" means each iOS test used its saved app selection.
  • source: "app_id" means the webhook used an already uploaded project app, selected by bundleId or appId.
  • source: "artifact_url" means TesterArmy imported the artifact for this batch.

Artifact-imported apps are temporary. They are removed automatically after every run in the webhook batch reaches a terminal state.

Failure notifications

When a webhook-triggered batch completes and any test fails, TesterArmy sends the failure summary by email only when the batch does not include GitHub commit context. Batches triggered with commitSha report back through GitHub instead of email.

Limits

  • 1 webhook per group. Delete and recreate to regenerate the secret.
  • Subject to your team's usage limits - returns 429 if exceeded.
  • Webhook must be active (saved) to accept requests. Inactive webhooks return 403.
"44"
,
"temporary": false
}
}
}