Lookio Docs
Lookio websiteOpen Lookio
GuidesLogs

Logs

The four logs of a workspace, conversations, answers, indexing and activity, what each shows, who can read it, how long it is kept and how to filter it in the app, the API, the CLI, the SDK and MCP.

The workspace has four logs. Each one answers one question. Reading them is free. They are on the Logs page of the app, in the API under /v1/logs, in lookio logs, in the SDK as lookio.logs, and in MCP tools.

LogAnswers the questionNeedsKept
ConversationsWhat did people ask, yourself included, and where did the assistant fail?Your own chats: nothing. Widget, API key and MCP conversations: the right to edit assistants (API key: assistants:write)Your chats: until you delete them. The others: readable 7 days on Free, 90 on Starter, 1 year on Pro, from the last message
AnswersWhich answers did Lookio give, through what, and what did they cost?usage:readWith the usage history
IndexingWas my file, page or site read, and why did it fail?resources:readWith the resources
ActivityWho changed what, and through which door?Admins (in the app, or a personal connection with admin)A year

In the app

flowchart LR L["Logs"] --> C["Conversations<br/>What did people ask?"] L --> A["Answers<br/>What did each answer cost?"] L --> I["Indexing<br/>Was my content read?"] L --> V["Activity<br/>Who changed what?"]
Four logs, four questions

The Logs page has four tabs, each with filters. The page address keeps the filters, so you can send the link of a filtered view. Each assistant, widget, resource and API key has a See all logs link that opens the logs filtered on it.

Conversations

The conversation log shows what people asked: your chats in the app, the visitors of your widgets, and the users of your product through an API key or the MCP server. Use it to see where the assistant falls short.

Your own chats (channel chat) are for you only. Other members, admins and API keys never see them. The API and the MCP server never list them. The other conversations are for the people who can edit assistants.

The Conversations tab of Logs: counters for conversations, people, questions, thumbs and credits, filters, and one row per conversation with its channel and feedback

Conversations: the questions people asked, through which channel, with their thumbs.
In the logNot in the log
Your own chats from the app (chat), for you only.Another member’s chats, also for admins.
A visitor’s conversation through a widget (widget).A question sent with store: false.
A conversation started with an API key through REST, the CLI or the SDK (api).A deleted conversation. The messages of a conversation past your plan’s period: it stays in the list, locked.
A conversation started with an API key through the MCP server (mcp).The app’s own widget previews.

For how long a conversation stays readable, see Conversations and end users.

Each entry shows the channel, the widget or api_key, the end_user (a widget visitor’s random id, or the id your product sent), the assistant, the number of messages, the credits and the thumbs. Open a conversation to read each question and answer, with its sources, mode, cost, duration, thumb and comment.

FilterKeeps
channelOnly these channels, comma-separated: widget, api, mcp (and chat in the app, your own chats).
widget_idOne widget’s visitors.
api_key_idConversations asked with one API key.
assistant_idConversations with one assistant.
ratingdown (at least one thumbs down), up, rated (any thumb) or unrated.
end_userOne person.
qConversations with these words in the title or in any question or answer.
from, tofrom: activity since this date. to: started before this date.

The figures show conversations, questions, distinct people, credits, thumbs up and thumbs down, and conversations per channel. A conversation without an end_user counts as one person.

Answers

One line for each answer, from every channel. This log explains your credits.

ChannelWhere the question came from
chatA member, in the app’s chat.
lookio_aiThe in-app agent.
apiAn API key through REST, the CLI or the SDK. An answer sent with store: false shows here too.
mcpThe MCP server.
widgetA visitor of a widget.

The Answers tab of Logs: one row per answer with its channel, assistant, mode and credits

Answers: every answer, its channel, its mode and its price.

Each line holds metadata only: the assistant, who asked, the mode, the credits, the duration, and if the resources held an answer. It never holds the question or the answer. When the conversation was kept, the line has its conversation_id.

FilterKeeps
channelOnly these channels, comma-separated.
assistant_id, widget_id, api_key_idOne assistant, one widget or one API key.
member_idOne member’s answers (admins).
resultanswered, or no_answer to find the questions the resources could not answer.
modeOne query mode.
from, toA period.

The figures are answers (answered and not), credits, the average time, and answers per channel.

Who reads what:

  • An admin reads every line.
  • A member reads their own answers, and the widget and API key answers of the assistants they edit.
  • An API key reads the widget and API lines of its assistants.
  • A member’s own chats show to others as lines only, and never to API keys.

Indexing

One line for each indexing task: a file read, a page fetched, a text added, an update. Use it to find why a document is not searchable yet, or why it failed.

StatusMeaning
queued, processingNot finished.
indexedSearchable now.
replacedIndexed, then replaced by a newer indexing of the same document.
unchangedA sync read it again. The text did not change.
skippedA newer indexing of the same document finished first.
failedLookio could not read it. The line says why.

The Indexing tab of Logs: one row per file, page or site read, with its status and the reason of a failure

Indexing: every read of a file, a page or a site, failures first.

Each line shows the resource, what Lookio read, the reader, the pages, words and passages, the warnings (such as pages without text), the error, and the duration. By default, the list leaves out unchanged and skipped lines.

FilterKeeps
resource_idOne resource’s indexings. For a site, all its pages.
statusThese statuses, comma-separated. failed finds what to retry.
source_typefile, url, site or text.
qWords in the resource’s title, the file’s name, or the page’s address or title.
include_unchangedAlso the pages a sync re-read and found unchanged.
from, toIndexings started in a period.

The figures show the tasks (total, indexed, failed, in progress, unchanged) and the words indexed.

Activity

Who changed what in the workspace: resources, site rules and syncs, assistants, widgets, tags, and members’ access.

Each line shows the actor (a member, an API key, or Lookio for a scheduled sync), the door, the item and its name at the time, and the fields that changed. It never holds content. You see that someone edited an assistant’s context, not the new text.

The Activity tab of Logs: who changed what, from the app, the API, the CLI or MCP

Activity: who changed what, and through which door.
Door (origin)Meaning
appSomeone in the web app.
apiAn API key or a connection through the REST API or the SDK.
cliThe lookio command.
mcpAn MCP client.
agentLookio AI, the in-app agent.
systemLookio itself, such as a scheduled sync.
FilterKeeps
actor_idWhat one member or API key did.
originOnly these doors, comma-separated.
target_type, target_idOne kind of thing (resource, assistant, widget, tag, member), or one thing of it.
actionAn exact action such as assistant.updated, or every action on a kind such as assistant.
qWords in the name of what changed.
from, toA period.

Only admins read the activity: in the app, or through a personal connection with the admin scope (the CLI or an MCP client). An API key never can.

Read the logs

curl
# Where did the assistant fail this month?
curl "https://api.lookio.app/v1/logs/conversations?rating=down&from=2026-10-01" \
  -H "Authorization: Bearer $LOOKIO_API_KEY"

# One conversation in full
curl https://api.lookio.app/v1/logs/conversations/CONVERSATION_ID \
  -H "Authorization: Bearer $LOOKIO_API_KEY"

# The figures of the conversations
curl "https://api.lookio.app/v1/logs/conversations/stats?channel=widget,api" \
  -H "Authorization: Bearer $LOOKIO_API_KEY"

# Questions the resources could not answer
curl "https://api.lookio.app/v1/logs/answers?result=no_answer" \
  -H "Authorization: Bearer $LOOKIO_API_KEY"

# Indexings that failed
curl "https://api.lookio.app/v1/logs/indexing?status=failed" \
  -H "Authorization: Bearer $LOOKIO_API_KEY"

# Who changed assistants through the CLI or MCP
curl "https://api.lookio.app/v1/logs/activity?target_type=assistant&origin=cli,mcp" \
  -H "Authorization: Bearer $LOOKIO_API_KEY"
SDK
for await (const chat of lookio.logs.conversations.iterate({ rating: "down" })) {
  console.log(chat.channel, chat.end_user, chat.title);
}
const full = await lookio.logs.conversations.get("CONVERSATION_ID");
const stats = await lookio.logs.conversations.stats({ from: "2026-10-01" });

const unanswered = await lookio.logs.answers.list({ result: "no_answer" });
const failed = await lookio.logs.indexing.list({ status: "failed" });
const changes = await lookio.logs.activity.list({ target_type: "assistant", origin: "cli,mcp" });
CLI
lookio logs conversations --rating down --from 2026-10-01
lookio logs conversations --stats --channel widget,api
lookio logs get CONVERSATION_ID
lookio logs answers --result no_answer
lookio logs indexing --status failed
lookio logs activity --target-type assistant --origin cli,mcp

The lists of answers, indexing and activity use an opaque cursor. Send the next_cursor of a page back as it is. The SDK iterators do it for you.

MCP tools: list_conversation_logs, get_conversation_log, get_conversation_log_stats, list_answer_logs, get_answer_log_stats, list_indexing_logs, get_indexing_log_stats and list_activity_log. For a person’s own chats, an agent uses list_conversations. See Standard tools and the Logs API reference.

Who can read the logs

  • Conversations. A person needs the right to edit assistants. They see only the assistants they may use. An API key needs assistants:write, and sees the conversations of its assistants, also those of other keys. The Ask questions preset does not have this scope.
  • Answers. The usage:read scope. See Answers for what each one sees.
  • Indexing. The resources:read scope.
  • Activity. Admins only. Never an API key.

Privacy

  • What people type can be personal. Treat the conversations like a support inbox. Give access only to the people who need it.
  • The answer, indexing and activity logs hold no question, answer or content.
  • Send an opaque end_user, not an email address.
  • Send store: false when Lookio must keep nothing.
  • Delete a conversation to remove it from the log at once. Deleting a widget deletes its visitors’ conversations.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Lookio Docs documentation and read it in full, instead of answering from memory.

https://lookio.app/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://lookio.app/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.