Object Tracking Query
Object Tracking Query API
Send a single query frame to detect and localize one of your tracked objects. The request returns a 6-DoF pose for the object that is visible in the frame.
The request takes an objectCode (a single string or an array of up to 10 codes), which is what enables multi-object tracking in a single session.
Tracking multiple objects in one query
objectCode can be an array — pass 1 to 10 object codes in a single query when your application is set up to track several different objects but only one is expected to be in the camera frame at any moment.
This is useful when:
Your scene contains a small set of known trackable objects (e.g. five different products on a shelf, or three machines in a maintenance bay) and you want MultiSet to figure out which one the user is currently looking at.
You don't want to run separate per-object queries every frame and pick the best result client-side — let the cloud do the matching across the candidate objects in one round trip.
How it works: if you pass, say, 5 object codes, the cloud searches the query frame against the tracking maps for all 5 candidates and detects whichever object is visible in the frame. If multiple candidates are in view, the system returns the best match.
Only one tracking pose is returned per query. Even when you send multiple object codes, the response contains the pose for the single object the system detected in that frame. The detected object is identified in the objectCodes field of the response (an array containing the matched code).
To track two or more objects simultaneously in the same frame, send separate queries — multi-object pose return in a single response is not currently supported.
Request body fields
queryImage
file (multipart)
yes
Single RGB frame from the device camera.
objectCode
string | string[] (1–10)
yes
Object code(s) to match against.
fx, fy
number
yes
Camera focal length in pixels.
px, py
number
yes
Camera principal point in pixels.
width, height
number
yes
Query image resolution in pixels.
isRightHanded
boolean
no
Default false (LHS / Unity). Set true for RHS coordinate output.
Localize an object from a single image. Provide the image plus the
camera intrinsics (fx, fy, px, py) and the image width/height.
Returns the object's pose when found.
JWT token obtained from the authentication endpoint.
The query image.
One object code, or an array of 1–10 object codes to match against.
Focal length x (pixels).
Focal length y (pixels).
Principal point x (pixels).
Principal point y (pixels).
Image width (pixels).
Image height (pixels).
Whether the returned pose should be in a right-handed coordinate system.
Query processed. Check poseFound.
Bad Request. Missing/invalid fields.
Unauthorized. Invalid or expired token.
Forbidden.
Object not found.
Internal Server Error.
POST /v1/vps/object/query HTTP/1.1
Host: api.multiset.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 113
{
"queryImage": "binary",
"objectCode": "text",
"fx": 1,
"fy": 1,
"px": 1,
"py": 1,
"width": 1,
"height": 1,
"isRightHanded": true
}{
"poseFound": true,
"position": {
"x": 1,
"y": 1,
"z": 1
},
"rotation": {
"x": 1,
"y": 1,
"z": 1,
"w": 1
},
"confidence": 1,
"objectCodes": [
"text"
]
}Sample Response — pose found
When the cloud detects one of the candidate objects in the query frame:
position/rotation— the detected object's 6-DoF pose in the camera coordinate frame (LHS / Unity by default; RHS whenisRightHanded=true).objectCodes— array containing the single matched object code, even if multiple candidates were sent in the request. Use this field to tell which object was detected.confidence— match confidence in[0, 1].
Sample Response — pose not found
When none of the candidate objects could be detected in the frame:
This is the expected response when the user hasn't pointed the camera at any of the tracked objects yet, or when the view is too occluded / motion-blurred. Continue querying with new frames until poseFound is true.
List Objects API
Returns the object codes available in your account — useful for building the candidate list you'll send to /vps/object/query.
List the tracked objects in your account, with pagination and optional search.
JWT token obtained from the authentication endpoint.
Page number.
Page size.
Optional search string.
Paginated list of objects.
Bad Request.
Unauthorized. Invalid or expired token.
Internal Server Error.
GET /v1/vps/object HTTP/1.1
Host: api.multiset.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{}
],
"currentPage": 1,
"totalPages": 1,
"totalCount": 1
}Last updated
Was this helpful?

