Skip to content
GurtOS

Read the action log

GET
/log
curl --request GET \
--url 'http://127.0.0.1:7700/api/log?after=0' \
--header 'Authorization: Bearer <token>'

Log events after a cursor, optionally for one task. Pass the last seq you saw as after to read only what is new.

after
integer
0

Return events with a seq greater than this. Default 0, the whole log.

task
string

Only events of this task.

The events, in order.

Media typeapplication/json
Array
One of: discriminator: type

One line of the action log. See Log events.

object
seq
required

The line number in log.jsonl

integer
>= 1
at
required
string format: date-time
prev

The SHA-256 of the previous line

string
task
required

The task the event belongs to

string
who

Business only: who is behind the event.

object
asked
string
trigger
string
seat
string
approver
string
by
string
type
required
Allowed value: task.created
spec
required

The spec with every default filled in.

object
title
required

A short name for people.

string
<= 200 characters
prompt
required

What the worker should do. For the fake worker, one command per line.

string
<= 100000 characters
workspace

A folder in BOX_HOME/workspaces. The task works on its own copy of it.

string
default: home /^[\w.-]+$/
worker

droid is Droid with Claude. fake runs scripted steps with no model, for tests.

string
default: droid
Allowed values: droid fake
tools

Tool names the task may call through its broker, such as wallet.pay.

Array<string>
default:
hosts

Hosts the task’s network may reach: example.com (any port), example.com:8080 (one port) or *.example.com (subdomains). Never localhost, a loopback or link-local address, or a whole top-level domain.

Array<string>
default: <= 50 items
model

Droid worker: the Claude model. haiku (cheap checks), sonnet (most work, the default), opus (hard tasks), or a full model id that starts with claude-. The task records the id it ran on.

string
budgetCents

Spending above this, in US cents, pauses the task for an OK. Default Settings defaultBudgetCents, 100 unless changed.

integer
<= 100000
source

Who started it, for the log and the portal: api, schedule, asi1, jira:BOX-12. From a paired device it is always phone:<device name>.

string
default: api
seat

The agent seat doing the work, such as Credit analyst. Shown in the audit.

string
<= 60 characters
droid

How Droid works on it. Ignored by the fake worker.

object
plan

Droid writes a plan first

boolean
autonomy

low gets no network beyond the model and asks before any spending. medium keeps its hosts and a budget of at most $1. high keeps what the task asked for. The box enforces this too.

string
Allowed values: low medium high
folder

Personal: the first real folder the task works on a copy of.

string
folders

Personal: every real folder the task works on.

Array<string>
user
required
string
requestedBy
string
app
string

Example

[
{
"type": "task.created",
"spec": {
"workspace": "home",
"worker": "droid",
"tools": [],
"hosts": [],
"source": "api",
"droid": {
"autonomy": "low"
}
}
}
]