Read the action log
const url = 'http://127.0.0.1:7700/api/log?after=0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Return events with a seq greater than this. Default 0, the whole log.
Only events of this task.
Responses
Section titled “Responses”The events, in order.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
The spec with every default filled in.
object
A short name for people.
What the worker should do. For the fake worker, one command per line.
A folder in BOX_HOME/workspaces. The task works on its own copy of it.
droid is Droid with Claude. fake runs scripted steps with no model, for tests.
Tool names the task may call through its broker, such as wallet.pay.
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.
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.
Spending above this, in US cents, pauses the task for an OK. Default Settings defaultBudgetCents, 100 unless changed.
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>.
The agent seat doing the work, such as Credit analyst. Shown in the audit.
How Droid works on it. Ignored by the fake worker.
object
Droid writes a plan first
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.
Personal: the first real folder the task works on a copy of.
Personal: every real folder the task works on.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
queued created, not started. running the worker is working. waiting paused until an
approval is answered. done finished; its changes are part of the workspace. failed stopped with
an error; its changes are not applied. undone removed; its changes are gone and other tasks keep
theirs.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
What the worker needs to resume.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
What the call spent. Counts toward the task’s cost.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
object
<task id>.budget.<action> for the box’s own spend question, <task id>.task.<key> for a question the task asked, <task id>.tool.<call>.ask.<hash> for one a tool asked, <task id>.shadow.<action> for a Business shadow request. The same key asked twice is the same approval. A task can only name keys under task., so it cannot pre-answer the box’s own questions.
The question shown to people.
The spending being asked about
Who gets paid
What the spend or action is for.
Who answered: a paired device’s name, what the box’s own screen sent (such as box screen), jira:<name>, asi1, undo, or task ended. On Business, the person’s name.
Business: the id of the person who answered.
Business: the phone or screen the answer came from. A native app’s auth is kept here as reported.
Business: the id of the person who asked for the task. They may not answer it.
Business: where the policy sent a request, and why.
object
The policy line that matched, such as Over $10,000 goes to the Controller.
Who it goes to as the policy says it: the Controller, IT, any approver.
The amount the rules and limits were checked against
The people who could approve it when it was asked.
object
One sentence for people.
Business shadow mode: the seat this is a suggestion from.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
object
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
host:port the task tried to reach.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
object
Path inside the workspace.
One line of the action log. See Log events.
object
The line number in log.jsonl
The SHA-256 of the previous line
The task the event belongs to
Business only: who is behind the event.
object
The app that wrote the note.
A sentence for people
Example
[ { "type": "task.created", "spec": { "workspace": "home", "worker": "droid", "tools": [], "hosts": [], "source": "api", "droid": { "autonomy": "low" } } }]