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

Create a location

Secret key only. Scope: vps.

Also accepts a user token.

Creates a location. Creating it with its first scan, in POST /vps/scans, is usually simpler. lat and lon are optional: a place without GPS can only be found by id.

With x-app-user-id, or a user token, the location belongs to that app user; otherwise it is shared.

Needs a paid plan. Not counted against the monthly API request quota.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required
length between 1 and 150

Name, 1 to 150 characters.

number
-90 to 90

Latitude. Send it with lon, or neither.

number
-180 to 180

Longitude.

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 ...

BAD_REQUEST: the body is not a JSON object, name is missing, blank or over 150 characters, or lat and lon are not both numbers in range.

INVALID_BODY: the name is refused by the database's check, for example one made only of invisible characters.

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.

PAID_PLAN_REQUIRED: the team is on the Free plan, or its plan ended.

TOO_LARGE: the JSON body is over 64 KB.

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