Pistiik Identity Verification API
Pricing
from $1,350.00 / 1,000 "verification session created"s
Pistiik Identity Verification API
Verify user identities via hosted document and biometric checks. Create verification sessions and retrieve verified results through a simple HTTP API.
Pricing
from $1,350.00 / 1,000 "verification session created"s
Rating
0.0
(0)
Developer
Pistiik OÜ
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
10 days ago
Last modified
Categories
Share
Verify that the people you deal with online are real — and who they claim to be. Pistiik provides hosted document and biometric identity verification through a simple API: create a verification session, send your user a link, and fetch the verified result. No SDK integration, no compliance infrastructure to build.
Brought to you by Pistiik, the verification broker.
How it works
- Create a session — call the API with an optional
refId(your own reference) and get back averificationUrl. - Send your user the link — they complete the verification in their browser or phone (document capture, selfie, liveness).
- Fetch the result — poll
GET /verifications/:refId(or check later) to get the status and the extracted, verified document data.
Verification flows
| Flow | Description |
|---|---|
document | Full document verification: ID capture, data extraction, tampering checks. |
humanity | Liveness check — confirms the person is a real human. |
name-check | Name authenticity — confirms the given name matches a verified identity document. |
Using the API (Standby mode)
The actor runs as an always-on HTTP API. Authenticate with your Apify API token.
Base URL:
https://pistiik--pistiik-identity-verification.apify.actor
Create a verification session
curl -X POST "https://pistiik--pistiik-identity-verification.apify.actor/sessions" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"flow": "document","refId": "customer-42","user": { "firstName": "Jane", "lastName": "Doe" },"redirectUrl": "https://example.com/verification-done","language": "en"}'
All fields are optional. If you omit refId, one is generated for you — keep it, you need it to fetch the result.
Response 201:
{"refId": "customer-42","verificationUrl": "https://…","expiresAt": "2026-08-09T12:34:56.000Z"}
The verificationUrl is valid for 30 minutes. Creating a new session for the same refId issues a fresh link.
Get a verification result
curl "https://pistiik--pistiik-identity-verification.apify.actor/verifications/customer-42" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>"
Response 200:
{"refId": "customer-42","status": "verified","createdAt": "2026-08-09T12:00:00.000Z","updatedAt": "2026-08-09T12:05:00.000Z","documents": [{"firstName": "JANE","lastName": "DOE","dateOfBirth": "1990-01-01","gender": "F","idNumber": "AB1234567","dateOfIssue": "2020-01-01","dateOfExpiration": "2030-01-01","type": "PASSPORT","faceMatchLevel": 5,"checks": {"digitalCopyDetection": "passed","facePhotoTampering": "passed","textTampering": "passed"}}],"metadata": { "ipAddress": "203.0.113.7" }}
Statuses
| Status | Meaning |
|---|---|
open | The session was created but the user has not started yet. |
in_progress | The user has started but not finished verification. |
processing | Verification is being reviewed. |
verified | All checks passed — you can proceed. |
flagged | Verification failed or requires attention (document mismatch or screening hit). |
Using the actor with runs
You can also run the actor normally with JSON input — useful for one-off checks or platform integrations (Zapier, Make, Apify schedules):
{ "action": "createSession", "flow": "document", "redirectUrl": "https://example.com/done" }
{ "action": "getVerification", "refId": "customer-42" }
The result is stored in the run's OUTPUT record and default dataset.
Errors
| HTTP | Code | Meaning |
|---|---|---|
| 400 | INVALID_REQUEST | A field is missing or malformed. |
| 404 | NOT_FOUND | No verification exists for this refId. |
| 500 | CONFIGURATION_ERROR | Service misconfiguration — contact support. |
| 502 | UPSTREAM_UNAVAILABLE | Temporary outage — retry with backoff. |
Support
Questions or custom verification flows? Reach us at pistiik.com.