Skip to content
TarekyDocs
Console

Whether clients should collect probes, and how

GET
/v1/probes/config
curl --request GET \
--url https://api.tareky.com/v1/probes/config \
--header 'Authorization: Bearer <token>'
x-access-key-id
string

Legacy key id (until its sunset)

Media typeapplication/json
object
collect
required

Send probes while navigating. False: stop collecting and drop what is queued

boolean
passive
required

Detect drives and send probes with the app closed (Android). Off until it is released

boolean
passiveRolloutPercent
required

Share of installs, 0..100, that may detect drives while passive is on: an app takes part when a stable hash of its install id (x-client-id) mod 100 is below it. 0 = nobody

integer
>= -9007199254740991 <= 9007199254740991
uploadSeconds
required

How often a device uploads

object
nav
required

Seconds between uploads while navigating

integer
>= -9007199254740991 <= 9007199254740991
passive
required

Seconds between uploads while passively collecting

integer
>= -9007199254740991 <= 9007199254740991
maxHoldSeconds
required

Longest a recorder may hold a point before releasing it, so traffic is fresh in minutes. Null: hold until 500 m past the trip start (the default)

integer
nullable >= -9007199254740991 <= 9007199254740991
wire
required

How a client should encode an upload: json (the default) or binary (Content-Type application/x-tareky-probes; v=1, about a fifth of the bytes: packages/nav-core/src/probe-wire.ts). Both are always accepted; a client that does not know binary keeps sending JSON

string
Allowed values: json binary
sampling
required

Adaptive sampling: where 25+ sessions already cross a cell in a heading, a client uploads only keep of its sessions (chosen by a hash of its session id, so a kept session stays kept). Null: send everything

object
cellZoom
required

Slippy-map zoom of a cell (15: ~1 km across)

integer
>= -9007199254740991 <= 9007199254740991
cells
required

Dense cells, each <tile index in base 36>:<hex mask of the heading octants>; the tile index is x * 2^cellZoom + y; octant 0 is north, 1 north-east, clockwise

Array<string>
keep
required

Share of sessions, 0..1, a client keeps sending while inside a dense cell

number
ttlSeconds
required

A client forgets this rule this long after fetching it and sends everything again

integer
>= -9007199254740991 <= 9007199254740991
version
required

Shape of this answer; a client ignores fields it does not know

integer
>= -9007199254740991 <= 9007199254740991
Example
{
"wire": "json"
}

Rate limit or monthly quota exceeded; see Retry-After

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable code, e.g. quota_exceeded, no_route

string
message
required
string
status
required
integer
>= -9007199254740991 <= 9007199254740991
details

For invalid_request: the validation issues

docsUrl
required
string
requestId
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"status": 1,
"details": "example",
"docsUrl": "example"
},
"requestId": "example"
}

Any other error, in the /v1 error envelope

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable code, e.g. quota_exceeded, no_route

string
message
required
string
status
required
integer
>= -9007199254740991 <= 9007199254740991
details

For invalid_request: the validation issues

docsUrl
required
string
requestId
string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"status": 1,
"details": "example",
"docsUrl": "example"
},
"requestId": "example"
}