Elements: locate
Find the element a query describes among the given UI elements.
Answers with one of the request’s element ids, or not found; never a point.
id values as element_id, or found: false. It never
answers with a point, so you act on the element itself.
Why elements and screenshots are separate operations
Screenshot grounding and element grounding take different inputs and give different answers. A screenshot locate reads pixels and returns a box. An element locate reads structured elements and returns an element ID. Keeping them as separate operations gives each one a request and response that fit it exactly. The element operation doesn’t care where your elements came from. A browser DOM, the results of Screenshots: detect, or any other UI tree all map onto the same shape: anid, a role, a name,
an optional value, optional pixel bounds, and an optional platform object
of native attributes, which Argus passes to the model as given.
Request
querydescribes the target, such as"the Sign in button". Up to 2,000 characters.elementsholds 1 to 2,000 candidates. Eachidmust be unique in the request; a duplicate is a validation error. Anidis at most 256 characters, aroleat most 64, anameorvalueat most 1,024, and aplatformobject at most 4 KiB as JSON.imageis an optional base64 PNG or JPEG screenshot. When you send one, giveboundsin that screenshot’s pixel space.modelis an optional vision-language model from Models: list. Omit it to use the default.
Response
found tells you whether the model chose an element. When it did,
element_id is one of the IDs you sent. Argus checks the answer against your
request, so an ID you didn’t send comes back as not found rather than as a
guess. confidence is the model’s own estimate from 0 to 1.
Billing
Element locate is billed per token on the model it ran, the same way as Screenshots: locate. Usage rows label it with the endpointelement_locate. See Usage.
Errors use the problem details shape.Authorizations
Axilio API key (axl_*).
Body
Argus POST /elements:locate request.
Grounds a natural-language query in a list of UI elements: the model picks
one of elements. The screenshot is optional context; the answer is
always an element, never a point.
Candidate elements
1 - 2000 elementsNatural-language target description
1 - 2000Optional base64 screenshot (PNG or JPEG) the element bounds are in
16777216VLM model to use; must be one of the models from GET /models. Omit to use the server's configured default.
1Response
Successful Response
Argus POST /elements:locate response.
element_id is one of the request's element ids when found, else null.
It names the element rather than indexing the list, so the answer does
not depend on element order. The billing fields match screenshot locate.
Model self-reported confidence
0 <= x <= 1Provider-reported cost in microdollars
x >= 0Whether the model picked an element
End-to-end VLM call latency
x >= 0Model identifier returned by the provider
Completion (output) tokens the model billed for this call
x >= 0The chosen element's id; null when not found
Prompt (input) tokens the model billed for this call
x >= 0