Who is calling
const url = 'https://api.asklucy.eu/v1/me';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 \ --header 'Authorization: Bearer <token>'The signed-in user (or service user), their organization, roles and what the organization is entitled to.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”OK
object
object
Zitadel user ID.
service is a customer system’s Zitadel service user; agent is a service agent (its ID is the agt_ ID), the author of its runs’ messages.
object
Zitadel organization ID.
What the customer’s contract allows.
object
Lucy may run code for this organization.
Lucy Memory (processes and knowledge graph) is part of the contract.
The caller’s usage, Claude Code style: per window, the share used and when it resets. Only windows that limit the caller are listed; an empty list means no limits apply.
object
How much of one window a member has used. No amounts.
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.
Whether the caller may choose the model of their conversations (GET /models lists them).
Whether the organization lets the caller use web search (its web_search, and a grant when it is selected). When true, Lucy has web search in all their conversations and uses it when a question needs it; there is no switch per person or conversation.
Whether the organization lets the caller make and run agents (its agents, the caller’s roles, and a grant when it is selected).
Admins (org_admin) only, absent for others. Requests from members waiting for a decision (GET /org/requests?status=pending).
Example
{ "user": { "kind": "person" }, "roles": [ "member" ], "usage": { "windows": [ { "window": "five_hours", "limited_by": "personal", "request": { "status": "pending" } } ] }, "sso": { "kind": "entra" }}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.