You rarely call these yourself. Your AI client picks the tool and fills in the arguments from what you ask it. This page is for when you want to know exactly what the model can see, or you are calling the server from your own code.
get_me
Reports who is calling: the organization the connection is bound to, the portal user acting through it (if any), and the scopes it holds. Any valid token can call it, so it is the quickest way to check a new connection and to find out which scopes are missing. Arguments: none.Result
object
required
The organization every tool call is bounded to.
object | null
required
The portal user acting through this connection.
null when a machine credential is calling.string
required
user for a person who signed in through the Volteras Portal and is still active in the organization. organization_credential for a machine credential, or for a user token whose person has since left the organization.string
required
The OAuth client the token was issued to: your AI client’s metadata URL when you signed in, or the client id of an MCP credential.
Example result
list_vehicles
Lists your organization’s connected vehicles, filtered and paged, oldest connection first. By default only vehicles with an active connection are listed and counted. That means aconnection_status of CONNECTED, RECONNECTION_REQUIRED or PENDING_DISCONNECTION. Set include_inactive to also see the rest.
Scope needed: vehicles:read. Position fields also need location:read.
Arguments
string[]
The fields each vehicle carries. Omit it to get the default set:
id, vin, make, model, model_year, registration_plate and connection_status. Only the fields you select appear in the result. See Vehicle fields for the full list.object[]
Clauses every returned vehicle must satisfy. Clauses are combined with AND.
integer
default:"50"
Maximum number of vehicles in the page. Between 1 and 200.
boolean
default:"false"
Also list and count vehicles whose connection is not active:
DISCONNECTED, PENDING_CONNECTION and INCOMPATIBLE. A filter on one of these statuses only matches when this is true.Result
object[]
required
One page of vehicles. Each vehicle carries exactly the fields you selected.
integer
required
How many vehicles match across all pages.
string | null
required
Pass this back as
cursor to fetch the next page. null on the last page.Example result
Vehicle fields
A field you request but whose value is unavailable comes back asnull. Every telemetry value has a matching *_at field saying when the vehicle reported it.
All timestamps are ISO 8601, in UTC. Units follow our standardized units.
vin and registration_plate can be selected but not filtered on.
Consent-gated fields
Some values depend on what each vehicle’s connection was granted, not on your credential. These come back asnull for vehicles whose connection does not allow them:
vinandregistration_plateneed the connection to grant access to vehicle information.- Telemetry and position fields need the connection to grant telemetry access.
state_of_charge < 20 never returns a vehicle whose telemetry you cannot see. See Scopes for how connection consent works.
Filter operators
connection_status takes ==, !=, in, isNull and isNotNull, and its values are case-insensitive. A clause using an operator its field does not take is refused with a message listing the operators that field accepts.
Timestamp values are ISO 8601 dates or datetimes. A bare date stands for the whole day under == and !=, for the start of the day under < and >=, and for the end of the day under <= and >.
Vehicles below 20% charge, last seen this week
Paging
When a page has anext_cursor, pass it back unchanged as cursor with the same filters, page_size and include_inactive to get the next page. You can change fields between pages.
A cursor belongs to one walk through the results. It is refused if any of those arguments change, and it expires one hour after the first page was fetched. In either case, call again without a cursor to start over.
Errors
When a call cannot be answered, the tool returns an error result with a plain sentence explaining why, which your AI client reads and usually acts on. Common ones:
A connection without the
vehicles:read scope does not see list_vehicles at all: the server leaves it out of the tool list. If your client only shows get_me, call it to see which scopes your connection holds.
