HomeGuidesAPI ReferenceChangelogDiscussions
Hire a ReactVision Expert 🛠️Launch Studio 🖥️Sponsor on GitHub ❤️Log In
API Reference

Complete a scan's upload

Secret key only. Scope: vps.

Also accepts a user token.

No body. Checks that the recording is stored at the admitted size and moves the scan to queued. A scan already past awaiting_upload is answered as it is, so the device, a retry and the platform may all finish the same upload.

When nothing calls it, because the app was killed after its PUT or the user token expired during a long upload, the platform queues the scan within a minute of its recording landing at the admitted size.

Not counted against the monthly API request quota.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required

Scan id.

Headers
uuid
required

The project. With a client key or a bound secret key, the key's own project; with a user token, the token's project.

string
length between 1 and 255

Your id for the signed-in app user: 1 to 255 printable ASCII characters, no spaces, not . or ... With a secret key, the request acts for that app user: it sees the app user's locations and scans and the shared ones, and changes only the app user's own. With a user token, leave it out or send the token's own app user; another one answers 403 APP_USER_MISMATCH. A client or legacy key cannot send it (403 APP_USER_ID_NOT_ALLOWED).

Responses

MISSING_PROJECT_ID: no x-project-id header.

INVALID_PROJECT_ID: x-project-id is not a UUID.

INVALID_APP_USER_ID: x-app-user-id is not 1 to 255 printable ASCII characters without spaces, or is . or ...

RECORDING_SIZE_MISMATCH: the stored zip is not recording_bytes. It was removed and the admission released: start the upload again, from the zip.

MISSING_API_KEY: no x-api-key header and no user token.

INVALID_API_KEY_FORMAT: the key is not rv_live_, rv_client_ or rv_secret_ followed by 64 lowercase hexadecimal characters.

INVALID_SESSION_FORMAT: the Authorization header is not Bearer followed by a user token.

INVALID_API_KEY: no such key, or a key sent with the wrong prefix for its type.

API_KEY_EXPIRED: the key is past its expiry date.

INVALID_APP_USER_TOKEN: the user token is not valid, or the secret key that minted it has been deleted or has expired.

APP_USER_TOKEN_EXPIRED: the user token has expired. Get a new one from your backend.

INVALID_SESSION: a Bearer token that is neither a user token nor a ReactVision Editor session.

API_KEY_TYPE_NOT_ALLOWED: a client key or a legacy key. This operation needs a secret key or a user token.

PROJECT_NOT_FOUND: the project does not exist.

PROJECT_ACCESS_DENIED: the project belongs to another team, is not the project the key is bound to, or is not the user token's project.

APP_USER_ID_NOT_ALLOWED: a client or legacy key sent x-app-user-id. Use a user token, or a secret key on your backend.

APP_USER_MISMATCH: a user token sent an x-app-user-id other than its own app user.

VPS_SHARED_LOCATION: an app user changing a shared location or scan.

NOT_FOUND: no such scan, or one the request cannot see.

RECORDING_NOT_UPLOADED: the upload was never admitted, or nothing is stored yet. Start the upload and PUT the zip first.

RATE_LIMITED: for a secret key, more than 1,200 requests a minute across all operations. Wait the number of seconds in Retry-After. See Limits.

INTERNAL_ERROR: an unexpected error. Retry, and quote meta.request_id to support if it persists.

AUTH_UNAVAILABLE: the key or user token could not be checked. Retry; this does not mean it is invalid.

VPS_LOOKUP_FAILED: the records could not be read or written. Retry.

Language
Credentials
LoadingLoading…
Response
Choose an example:
application/json