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

Create a geospatial anchor

Client or secret key.

Creates an anchor at a GPS location, optionally linked to content: a whole Editor scene (scene_id), one placed asset of a scene with its transform (scene_asset_id), or a file uploaded with POST /assets/upload (user_asset_id). Linked content must belong to the anchor's project.

alt is the absolute altitude above sea level, not a height above the ground: see the field.

With a client key, project_id must be the key's project, and user_asset_id cannot be sent.

Counts as one request against the team's monthly API request quota, including a request that then fails a check.

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

The project the anchor belongs to. With a client key the project must be the key's own project.

number
required
-90 to 90

Latitude, -90 to 90. A number, not a string.

number
required
-180 to 180

Longitude, -180 to 180.

number
-500 to 10000

Absolute altitude in meters above sea level, -500 to 10000. Default 0, which is sea level, not the ground: pass the real altitude. From a device, use the GPS altitude of the camera's geospatial pose; from coordinates, the terrain elevation plus the height above ground.

string
enum

Stored and returned, but not interpreted by the AR runtime. Default street_level.

Allowed:
string

Cut to 150 characters.

string

Cut to 2000 characters.

uuid

A whole Editor scene to show at the anchor. Must belong to the anchor's project.

uuid

One placed asset of an Editor scene, with its transform. Must belong to the anchor's project.

uuid

A file uploaded with POST /assets/upload. Must belong to the anchor's project. A client key cannot send it.

string

World-mesh snapshot (.rvca), uploaded with asset_type=mesh. Must be the url that POST /assets/upload returned for this project's file.

Responses

INVALID_BODY: the body is not valid JSON, or not a JSON object.

MISSING_FIELD: project_id, lat or long is missing; the message names it.

INVALID_LATITUDE: lat is not a number from -90 to 90.

INVALID_LONGITUDE: long is not a number from -180 to 180.

INVALID_ALTITUDE_MODE: altitude_mode is not street_level or rooftop_level.

INVALID_ALTITUDE: alt is not a number from -500 to 10000.

INVALID_MESH_URL: mesh_url is not a mesh file this project uploaded.

INVALID_FIELD_VALUE: a client key sent user_asset_id.

USER_ASSET_PROJECT_MISMATCH: user_asset_id belongs to another project of the team.

MISSING_API_KEY: no x-api-key header.

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

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.

PROJECT_NOT_FOUND: project_id does not exist, belongs to another team, or is not the project the key is bound to. The three answers are the same.

API_REQUEST_LIMIT_REACHED: the team's monthly API request quota is used up.

USER_ASSET_NOT_FOUND: no such file, or one the key cannot reach.

SCENE_NOT_FOUND: no such scene in the project.

SCENE_ASSET_NOT_FOUND: no such scene asset in the project.

RATE_LIMITED: more than 30 a minute from one IP address for your team; or, for a secret key, more than 1,200 requests a minute across all operations. Wait the number of seconds in Retry-After. See Limits.

CREATE_FAILED: the anchor could not be stored.

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

API_KEY_LOOKUP_FAILED: the key could not be checked. Retry; this does not mean the key is invalid.

PROJECT_LOOKUP_FAILED: the project could not be checked. Retry.

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