For the complete documentation index, see llms.txt. This page is also available as Markdown.

Map Operations

Retrieve a pre-signed S3 URL for file download

get

Generates a temporary, pre-signed URL for downloading a file from S3

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
keystringRequired

Unique identifier for the file

Example: 671b454e33d6dc761ca15156/6756c20336a9794c6effce42/Mesh/TexturedMesh.glb
Responses
200

Successfully generated pre-signed URL

application/json
urlstringRequired

Pre-signed S3 URL for file download

Example: https://amazonaws.com/671bX-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=%2Faws4_request&X-Amz-Date=20241658753a8c6380ad6d01c217e1ad978d88e2ba6a4&X-Amz-SignedHeaders=host&x-id=GetObject
get/file
GET /v1/file?key=text HTTP/1.1
Host: api.multiset.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "url": "https://amazonaws.com/671bX-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=%2Faws4_request&X-Amz-Date=20241658753a8c6380ad6d01c217e1ad978d88e2ba6a4&X-Amz-SignedHeaders=host&x-id=GetObject"
}

Replace a map's mesh

Use /vps/map/{mapCode}/mesh-upload-url to replace a map's textured or raw mesh. The flow is:

  1. POST /vps/map/{mapCode}/mesh-upload-url with the meshType you want to replace (textured or raw).

  2. PUT the mesh file to the returned uploadUrl, using the contentType from the response as your Content-Type header. The URL is valid for 1 hour.

You never construct a storage path. The upload location is derived from the map in the path, so the request can only replace that map's own mesh. The map must be active, and your role must allow write access (owner or admin).

Get a Mesh Upload URL

post

Returns a presigned PUT URL for replacing one of the map's two meshes. You choose which mesh with meshType. The upload location and content type are set by the server, so this endpoint can only ever replace the mesh of the map named in the path.

Upload the file by sending it to the returned uploadUrl with a PUT request and the Content-Type given in the response. The URL is valid for one hour.

Replacing a mesh does not affect localization accuracy, which runs on the map's feature data rather than the mesh.

Authorizations
AuthorizationstringRequired

JWT token obtained from the authentication endpoint.

Path parameters
mapCodestringRequired

Map code (or map id) of the map whose mesh you are replacing.

Example: MAP_740EYUJTS85Z
Body
meshTypestring · enumRequired

Which mesh to replace. textured is the textured mesh, raw is the untextured geometry.

Example: texturedPossible values:
Responses
200

Presigned upload URL issued.

application/json
mapCodestringOptionalExample: MAP_740EYUJTS85Z
meshTypestringOptionalExample: textured
uploadUrlstringOptional

Presigned URL. Send the mesh file to it with a PUT request.

contentTypestringOptional

Use this exact value as the Content-Type header on your PUT request.

Example: model/gltf-binary
expiresInintegerOptional

Seconds the upload URL stays valid.

Example: 3600
post/vps/map/{mapCode}/mesh-upload-url
POST /v1/vps/map/{mapCode}/mesh-upload-url HTTP/1.1
Host: api.multiset.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "meshType": "textured"
}
{
  "mapCode": "MAP_740EYUJTS85Z",
  "meshType": "textured",
  "uploadUrl": "text",
  "contentType": "model/gltf-binary",
  "expiresIn": 3600
}

Delete a VPS map

delete
Authorizations
AuthorizationstringRequired

JWT token obtained from the authentication endpoint.

Path parameters
mapCodestringRequired

The unique map code of the VPS map to delete.

Example: MAP_BTTE1MOXYVT8Pattern: ^MAP_[A-Z0-9]+$
Responses
204

VPS map deleted successfully.

No content

delete/vps/map/{mapCode}
DELETE /v1/vps/map/{mapCode} HTTP/1.1
Host: api.multiset.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Last updated

Was this helpful?