awaiting_human. You answer through the API and the agent picks up where it left off.
Find the question
When the agent asks, the session’s events include ahitl_requested event:
Read events with
GET /v1/sessions/{id}/events. See Follow a session.
Answer it
202 and the agent continues with your text as its reply. If the phone is busy with another session, the response has continuation.queued: true and the agent continues when the phone is free.
Sending the same answer again is safe: the response has idempotent: true and nothing changes. A question can be answered until the session ends or the agent moves on to a newer question.
Errors
Passwords and codes
Some questions ask for a secret: a password, or a sign-in code. In the event,data.kind is credential or 2fa. Lusor never accepts secret values through the API, so these are handled differently:
- Sessions you start with an API key use the secrets saved in your workspace’s Vault in the Lusor app, by name. See Use saved secrets below. They never pause for a secret: when the agent needs one it was not given, the session ends at once with status
failedanderrorset tosecret_required:<name>, where<name>says what was needed, for examplegmail_password. - Sessions started in the Lusor app pause and wait. Only the Lusor app can answer them. An answer sent with an API key returns
403witherror: "secure_ask_dashboard_only", nothing is stored, and the session stays paused.
secrets, sign in to the app on the phone yourself first, or give the task to the agent from the Lusor app, where it can ask you for the secret safely.
Use saved secrets
- In the Lusor app, open Vault and save the login, for example an item titled “Gmail” with the fields
usernameandpassword. Secrets are added, changed and deleted only in the app, never with an API key. - List the names with your API key:
GET /v1/workspaces/{workspaceId}/vault. Each item has aslugandfields. A secret’s name is<slug>.<field>, for examplegmail.password. Values are never returned. - Name the secrets the run may use when you create the session:
secrets, the run can use only the secrets you named: [] allows none. Without secrets, it can use every secret saved in the workspace.
A name that is not saved returns 422 with error: "unknown_secret" and the names in missing, and no session is created. Reusing an Idempotency-Key with a different secrets list returns 409 idempotency_conflict.
