Skip to main content
Server-to-server APIs enable direct backend integrations without using deepidv’s hosted verification flows. If you want to build your own UI and handle the applicant experience yourself, these APIs let you submit data directly from your server and receive results synchronously β€” ideal for custom frontends, batch processing, automated pipelines, and real-time decisioning.

Endpoints

Five endpoints are available under the /v1 prefix: All five endpoints share the same auth, image-input model, and error format described below.

Authentication

Every request must include your organization API key in the x-api-key header. See Authentication for full details and rate limit information.

Image inputs

Every server-to-server endpoint accepts images in one of two ways. You can mix them within a single call (for example, /v1/face/compare can take one image as a fileKey and the other as raw multipart bytes).

Option 1 β€” multipart/form-data

Send the raw image bytes as a form field. Use this when the image lives on your server and you don’t need to keep it around after the call.
cURL
Supported content types: image/jpeg, image/png, image/gif, image/bmp, image/tiff, image/webp. Max size: 15 MB per image. The content type is detected from the file’s magic bytes, not the Content-Type header β€” mislabelled files are still accepted as long as the bytes match a supported format.

Option 2 β€” application/json with a presigned fileKey, base64, or base64url string

If your image is already in deepidv-managed storage (for example, uploaded during an earlier session or via the upload endpoint), reference it by its fileKey. You can also send the image inline as a base64 or base64url-encoded string. In all three cases the value is a bare string:
cURL β€” S3 key
cURL β€” base64
The server detects which form you sent by inspecting the string (valid base64 β†’ base64; valid base64url β†’ base64url; otherwise β†’ S3 key). Re-using an existing fileKey is the recommended pattern for high-throughput pipelines since it avoids re-uploading bytes on each call.

Response shape

Successful responses are JSON, with a service-specific payload per endpoint (see each endpoint’s reference page).

Error shape

All errors return a consistent JSON shape:
Common status codes:

Compound verification

POST /v1/identity/verify is a compound endpoint that runs /v1/document/scan, /v1/face/detect, and /v1/face/compare in parallel and returns a single aggregated response with an overallConfidence score. Use it when you want one round-trip for a full ID + selfie verification instead of orchestrating the three calls yourself.

What’s next

Endpoint-by-endpoint request and response schemas are coming to this section shortly. In the meantime, the contract is also published as an OpenAPI specification in the open-api repository β€” reach out to your account contact if you need early access.