Pay for and run a single face or body scan

Explicitly purchase one face or body scan using the authenticated customer's wallet, then run it.
Takes the same payload as POST /skin/analyze — calling this endpoint is the user's consent to be charged.
Body captures use the independently configured body_scan price; face captures use face_scan.
For stored captures, the scan session's body part is used when body_part is omitted.
Combined mobile scans with expected_body_parts use deferred family settlement instead of this endpoint.

Flow: the configured USD price is resolved, an active subscriber's pay_per_use_discount_percentage
is applied, the amount is converted to the wallet currency, and the wallet is debited. The scan then
runs immediately. If the scan fails the debit is refunded automatically.

Returns 402 with the structured wallet-balance error when the balance is insufficient (no debit, no scan).

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
images
array of objects

Face images (front, left, right), or the views required for the selected body part.

images
string
enum
Allowed:
string

Existing capture session to analyze instead of uploading new images.

string
length ≤ 64

Optional. Replaying the same key returns 409 instead of charging again.

Headers
string
^[a-zA-Z0-9._-]{8,128}$

Optional AppsFlyer install UID from the mobile SDK. Used only with X-CHANNEL mobile-app and an allowed X-AppsFlyer-App-ID. Invalid or absent attribution is ignored and never changes the business response. For payments this identity is frozen at creation for later confirmed-payment events.

string

AppsFlyer application identifier configured for this API environment. Numeric iOS App Store IDs require the id prefix; Android uses its package name. This header grants no authentication or payment authority.

string
^[0-9.]{1,30}$

OS release version from expo-device, not the Android API level.

string
enum

Optional allowlisted mobile journey entry point. Used only with valid mobile AppsFlyer context; unknown values are ignored. Frozen with the payment at creation and included on confirmed purchase/refund events. This is analytics context, not authorization.

Responses

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json