Skip to content
Roboto
Esc
↑↓navigate↵open⌘Jpreview

Set unix offset

Anchor all of this session’s data to wall-clock time.

Every partition inside the slice this session holds of each of its files takes unix_epoch_offset_ns as the wall-clock instant of its stored time 0, and the session’s aggregate bounds are recomputed from the moved data. Data that has never been anchored carries an offset of 0, so its stored timestamps already read as nanoseconds since the Unix epoch. Last writer wins: whatever anchor the data carried before is overwritten. The offset is a time after the Unix epoch: an integer of nanoseconds since the epoch, or any time roboto.time.to_epoch_nanoseconds reads, so a float or numeric string is seconds and an ISO 8601 string is that instant. Returning a session to an offset of 0 is the DELETE on this path. Setting the anchor the data already carries changes nothing and succeeds.

The write reaches this session’s data and no further. Where several sessions share one file, the slices this session does not hold keep their own anchors; the slices it does hold are shared rather than copied, so every other session over that data reads the anchor written here. The time range the session declares over a file is stored in anchored time and moves with its data, but only when every partition that range covers carries one offset before the write and one after; a range whose data disagrees on where it started has no single distance to move by, and stays where it is.

Returns the session with its recomputed bounds.

Four cases yield a 400: an offset that is not a time strictly between the Unix epoch and 263 ns, a session with no topic data, a session whose data already carries several distinct anchors (anchor one file or one topic at a time instead), and an anchor that would move the session’s data, or a time range declared over it, before the Unix epoch or past the largest storable instant (263 - 1 ns). A concurrent writer adding data to the session yields a 409; retry the request.

Access control

  • Restricted tokens need the API scope api.everything_else
POST/v1/sessions/id/{session_id}/unix-offset
Authorization
AuthorizationBearer token · headerrequired
Path parameters
session_idstringrequired
Header parameters
X-Roboto-Org-Idstring
X-Roboto-User-Idstring
Request body
requiredapplication/json
unix_epoch_offset_nsintegerrequired
Responses
200

OK

dataobjectrequired

Wire-format row for a session: an operational time window of a Device such as a drone flight, a vehicle drive, or a robot run.

A Session unifies the recordings and auxiliary data produced during its window; it may span many files or cover only a slice of one.

min_timestamp_ns and max_timestamp_ns span every file the Session holds: each file supplies the time window stated for it or, without one, the time span of the data the Session takes from it. The platform recomputes them in the same write as any change to the Session's files or to the anchors of their data, so the row never disagrees with its contents.

Show properties
completed_atstring<date-time> | null
default: null
Show properties
Any of:
string<date-time>
string<date-time>
null
null
completed_bystring | null
default: null
Show properties
Any of:
string
string
null
null
completes_atstring<date-time> | null
default: null
Show properties
Any of:
string<date-time>
string<date-time>
null
null
completion_policyCompletionPolicy | null
default: null
Show properties
Any of:
CompletionPolicy
inactivity_minutesintegerrequired
min 1 · max 10080
null
null
createdstring<date-time> | null
default: null
Show properties
Any of:
string<date-time>
string<date-time>
null
null
created_bystringrequired
custom_fieldsobject
descriptionstring | null
default: null
Show properties
Any of:
string
string
null
null
ingested_atstring<date-time> | null
default: null
Show properties
Any of:
string<date-time>
string<date-time>
null
null
ingestion_countinteger
default: 0
max_timestamp_nsinteger | null
default: null
Show properties
Any of:
integer
integer
null
null
metadataobject
min_timestamp_nsinteger | null
default: null
Show properties
Any of:
integer
integer
null
null
modifiedstring<date-time> | null
default: null
Show properties
Any of:
string<date-time>
string<date-time>
null
null
modified_bystringrequired
namestring | null
default: null
Show properties
Any of:
string
string
null
null
org_idstringrequired
session_idstringrequired
statusSessionStatus

Whether a session is still receiving files.

Allowed:in_progresscomplete
tagsstring[]
400

Thrown when the conversation context (messages, system prompt, tool results) exceeds the model's context window limit.

The token estimate and the model's context limit are not carried on the exception, so a caller cannot read usage numbers off it.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
401

Thrown when authentication fails

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
403

Thrown if an operation would exceed a user or org level limit.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
404

Thrown if a user is attempting to perform an action unrecognized by the Roboto platform.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
409

Thrown if there is a conflict between a resource you're creating and another existing resource

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
410

Thrown if a resource is missing or expired.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
500

An error the platform reported that this SDK release cannot resolve to a specific exception class.

Reported for an element of a :py:class:~roboto.http.BatchResponse whose error names a code this release defines no class for, or that arrived without a code, without a message, or as text that is not an error envelope at all. It carries whatever code and message the platform sent, so a caller handling the failure still learns what went wrong; when no message could be read, the message is the error's raw text.

The error envelope carries no status code, so http_status_code reports the 500 inherited from :py:class:RobotoDomainException rather than the status the failure actually had.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
501

Thrown by shimmed out APIs which have not yet been implemented

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
503

Thrown when a service is unavailable, such as when it's under heavy load and can't accept new requests. This is expected to be transient and ought to be retried.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
504

Thrown when the service times out while processing a request. This is exepcted to be transient and ought to be retried.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
507

Thrown when the server cannot complete the request because the response payload exceeds a storage or transport capacity limit (e.g., Lambda response size). This is NOT expected to be transient and should NOT be retried.

errorobject
Show properties
error_codenumber
messagestring
stack_tracestring | null
Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X POST 'https://api.roboto.ai/v1/sessions/id/string/unix-offset' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "unix_epoch_offset_ns": 0
}'
Response
{
  "data": {
    "completed_at": null,
    "completed_by": null,
    "completes_at": null,
    "completion_policy": null,
    "created": null,
    "created_by": "string",
    "custom_fields": {},
    "description": null,
    "ingested_at": null,
    "ingestion_count": 0,
    "max_timestamp_ns": null,
    "metadata": {},
    "min_timestamp_ns": null,
    "modified": null,
    "modified_by": "string",
    "name": null,
    "org_id": "string",
    "session_id": "string",
    "status": "in_progress",
    "tags": [
      "string"
    ]
  }
}