List the answer logs
Every answer Lookio produced, one line each, whatever asked: a member in the chat, Lookio AI, an API key (REST, CLI, SDK), the MCP server, a widget's visitor. Latest first, with the assistant, who asked, the query mode, what it cost, how long it took, and the conversation it belongs to when it was kept. No question or answer text: read the conversation with GET /v1/logs/conversations/{conversation_id}. Filter by channel, assistant_id, widget_id, api_key_id, member_id, mode and from/to, and paginate with cursor. Members' own chats are visible to admins only, as lines without content, and never to an API key. Costs nothing.
GET/v1/logs/answers
Requires usage:read.
One line per answer, whatever asked: a member in the app’s chat (chat), Lookio AI (lookio_ai), an API key through REST, the CLI or the SDK (api), the MCP server (mcp) or the visitor of a widget (widget). Results come latest first, and you page with cursor, an opaque string: pass next_cursor back unchanged. See Pagination.
A line holds metadata only: the assistant, who asked, the query mode, the model, the tokens, the credits it cost, how long it took, and whether the resources held an answer (answered is false for a free no-answer). It never holds the question or the answer. When the exchange was kept, conversation_id leads to it: read it with Retrieve a logged conversation, which needs assistants:write. An answer sent with store: false has no conversation, and shows as api.
Narrow the list with channel (comma-separated), assistant_id, widget_id, api_key_id, member_id, result (answered or no_answer), mode and from and to. result=no_answer finds the questions your resources could not answer.
A member’s own chats appear to admins only, as lines without content, and never to an API key. See Logs. The figures over the same filters are in Retrieve the figures of the answer logs.
Authorizations
Authorizationbearerin headerrequiredQuery parameters
channelstringlength: ≥ 1 charsOnly the answers from these channels, comma-separated: chat (a member in the app's chat), lookio_ai (the in-app agent), api (an API key through REST, the CLI or the SDK), mcp (the MCP server), widget (a visitor of a widget). Default: all.
assistant_idstringpattern: ^ast_[abcdefghjkmnpqrstuvwxyz23456789]{12}$Only the answers of this assistant.
widget_idstringpattern: ^wdg_[abcdefghjkmnpqrstuvwxyz23456789]{12}$Only this widget's answers.
api_key_idstringlength: 1–64 charsOnly the answers asked with this API key.
member_idstringlength: 1–64 charsOnly this member's answers (admins).
modestringlength: 1–40 charsOnly this query mode (flash, fast, deep…).
fromstringOnly answers since this ISO 8601 date or timestamp.
tostringOnly answers until this ISO 8601 date or timestamp.
cursorstringlength: 1–200 charsPass next_cursor from the previous page, unchanged.
limitintegerrange: 1–100Number of items to return. Values outside 1-100 are clamped, and the response reports the limit actually applied.
Response
List the answer logs
dataobject[]requiredhas_morebooleanrequiredTrue when another page follows: pass next_cursor back as cursor.
next_cursorstringnullrequiredPass it back unchanged as cursor. Null on the last page.
limitintegerrequiredThe page size actually applied.
request_idstringrequiredPossible codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredPossible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key
errorobjectrequiredrequest_idstringrequiredPossible codes: insufficient_scope, feature_not_available, admin_required, permission_denied
errorobjectrequiredrequest_idstringrequiredPossible codes: rate_limited
errorobjectrequiredrequest_idstringrequiredPossible codes: internal_error
errorobjectrequiredrequest_idstringrequired