Batch KYC at Scale
Backfill or onboard 1000 users asynchronously with the Batch API instead of single requests.
- Build a batch file of 1000 Helios verification requests
- Submit to the Batch API for async processing at 50 percent discount
- Poll the batch job and download per-request results
Time to complete: ~15 minutes
Prerequisites
SAGEA_API_KEYset in your environment asBearerauth.- Read Send your first API request to create a key.
- Read How Helios works to understand decisions and score thresholds.
- A CSV or database mapping
external_idvalues to hosted file URLs or pre-encoded media.
Step 1: Build a batch file of 1000 verifications
Each entry targets /helios/kyc/v1. Use hosted URLs your pipeline can resolve; keep external_id unique per user.
Validate that the file has 1000 lines and every row has a unique external_id before submitting.
Step 2: Submit the batch job
POST https://api.sagea.space/v1/batch with endpoint set to /helios/kyc/v1 processes the whole file asynchronously at 50 percent discount versus sync calls.
Save the returned batch_id. Batch jobs run offline and cost half the sync rate, ideal for migrations and nightly backfills.
Step 3: Poll and download results
Poll the batch job, then fetch per-verification decisions and route review cases to analysts.
Each result line uses the standard schema with verification_id, decision, scores, reasons, and extracted fields.
Verify
A successful submit returns HTTP 200 with a batch_id. Poll until completed, then confirm 1000 result lines. If it fails, check below.
| Error | Cause | Fix |
|---|---|---|
401 Unauthorized | API key missing or invalid | Confirm echo $SAGEA_API_KEY is set and retry |
400 missing_artifact | Batch entries missing required media | Validate every entry has front and back plus video |
413 Payload Too Large | Batch payload too large for one call | Split into chunks of 500 and submit two jobs |
422 spoof_detected | Individual result flagged spoofing | Filter those IDs and ask users to recapture video |
