Your own Insights for a period
const url = 'https://api.asklucy.eu/v1/me/insights?from=2026-04-15&to=2026-04-15';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 'https://api.asklucy.eu/v1/me/insights?from=2026-04-15&to=2026-04-15' \ --header 'Authorization: Bearer <token>'Your own use of Lucy from from to to (UTC dates, both included, at
most 366 days): how much and on which days, what you used Lucy with,
what you haven’t tried yet, what it cost, your monthly allowance, your
costliest conversations, and suggestions. Everything is yours alone.
amounts says whether euros are shown: always for org_admin, and
for members unless the organization shows them shares of their
allowance only (settings.member_costs shares). Without amounts,
cost, allowance.limit, allowance.spent, costliest[].cost and
suggestions[].effect are null; shares and percentages stay.
dismissed and muted are what you hid (dismissInsightSuggestion),
so suggestions from Lucy Insights can be filtered the same way.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”OK
object
Whether euros are shown (org_admin, or members unless settings.member_costs is shares).
Days with at least one message.
Conversations you wrote in (deleted ones too), without agent runs.
Runs of the agents you own that ran or tried to (not a schedule’s skipped tick, not one still going).
How many of your agents ran.
The period of the same length just before from.
object
One entry per day from from to to, oldest first.
object
object
Files you uploaded.
Parts of answers read aloud.
You sent a message from the desktop app.
Connector apps Lucy used for you (its successful calls), most used first.
object
The connector (Connector.id), e.g. m365.
The app (ConnectorApp.id), e.g. mail.
What you may use now and haven’t in the 90 days up to to, in
this order: web_search, connectors (none connected),
calendar (a connected service’s calendar never used),
agents (you own none), desktop (no computer registered),
read_aloud.
Spending by what it paid for. Everything of an agent run is in
agents (its model calls, sandbox and searches alike); then the
sandbox, web searches, Read aloud, and chats, the answers’ model
calls and the summaries continued conversations start from. other
is the rest: conversation titles, memory, search by meaning, and
work for nobody in particular. total is the sum.
object
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
The organization’s report only. What Lucy Insights’ classifier cost the organization (zero for a group).
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
The organization’s report only. total over the people who used Lucy (used); zero when nobody did.
object
Decimal amount, e.g. “12.50” (up to 6 decimals for small usage).
Your monthly allowance as Me.usage shows it: your own month limit,
or the organization’s budget when that is closer to running out
(limited_by organization). The organization’s amounts are shown
to admins only.
object
Your three conversations that cost the most in the period (agent runs left out).
object
object
All the conversation’s messages.
Of your spending in the period.
Something you could do differently. Lucy makes these kinds (Lucy Insights adds others, in the same shape):
auto_model: you chose a model for answers Auto would have given for less.modelis yours,auto_modelAuto’s most common pick,countthe answers,effectwhat they would have cost less, andconversationsup to 5 of yours still set to that model (maybe none), for “Switch these chats to Auto”.fresh_chat: one long conversation (conversations,countits messages) is a big part of your spending: each answer re-reads it all.effectis what it cost in the period.connect_files: you uploadedcountfiles; you may connectconnectorso Lucy reads them where they are.retries: you asked Lucy again for an answercounttimes (conversations: the latest ones).ask_for_more: a limit stopped youcounttimes, most often inwindow; you can ask your admins for more.web_search: your organization lets Lucy search the web for you and you haven’t in 90 days.personalization: you openedcountchats of the last 90 days with the same instruction,text(as you last wrote it); said once in Personalization, Lucy follows it in every chat. Never one your own instructions already say.
Only suggestions with share of at least 0.1 come, at most 5, the
biggest effect first.
object
Stable for the same advice; starts with the kind. Hide it with dismissInsightSuggestion.
How much of your spending (or of your use, for kinds without an amount) this touches.
object
object
object
One app of a connector, with the names people see.
object
The connector (Connector.id), e.g. m365.
The app (ConnectorApp.id), e.g. mail.
personalization: the sentence, as you last wrote it. Your own words: only ever in your own Insights.
Keys of the suggestions you hid.
Kinds of suggestions you hid altogether.
Example
{ "used": { "connectors": [ { "service_name": "Microsoft 365", "app_name": "Mail" } ] }, "not_tried": [ "web_search" ], "cost": { "total": { "amount": "50.00", "currency": "EUR" }, "chats": { "amount": "50.00", "currency": "EUR" }, "agents": { "amount": "50.00", "currency": "EUR" }, "sandbox": { "amount": "50.00", "currency": "EUR" }, "web_search": { "amount": "50.00", "currency": "EUR" }, "read_aloud": { "amount": "50.00", "currency": "EUR" }, "activities": { "amount": "50.00", "currency": "EUR" }, "other": { "amount": "50.00", "currency": "EUR" }, "per_person": { "amount": "50.00", "currency": "EUR" } }, "allowance": { "window": "month", "limit": { "amount": "50.00", "currency": "EUR" }, "spent": { "amount": "50.00", "currency": "EUR" }, "limited_by": "personal" }, "costliest": [ { "cost": { "amount": "50.00", "currency": "EUR" } } ], "suggestions": [ { "key": "auto_model:mistral-large-2512", "kind": "auto_model", "effect": { "amount": "50.00", "currency": "EUR" }, "connector": { "service_name": "Microsoft 365", "app_name": "Mail" }, "window": "five_hours", "text": "Answer in British English." } ]}The request is invalid; errors lists what’s wrong.
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
Missing, expired or invalid token.
RFC 9457 problem details.
object
For quota-exceeded, the window that is used up.
object
Null for a rolling window that hasn’t started.
organization when the organization’s budget is closer to running out than the member’s own limit.
Field-level problems (400 only).
object
JSON pointer into the request body.
Example
{ "type": "https://docs.asklucy.eu/errors/answer-in-progress", "quota": { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } }}Headers
Section titled “Headers”Unique per request; quote it to support.
/me/insights curl "https://api.asklucy.eu/v1/me/insights" \
-H "Authorization: Bearer $LUCY_TOKEN"