---
title: FAQ
description: Short answers about looot accounts, tokens, jobs, fallback, prices, failed runs, connecting agents, missing providers and docs made for agents.
---

<Accordion>
  <AccordionItem title="Do I need an account to look around?">
    No. `looot search` and `looot inspect` read the public catalog without a token, and so does
    `GET /v1/public-catalog`. You need an account, a token and a funded balance to run anything.
    See [Browse without an account](/get-started/browse).
  </AccordionItem>
  <AccordionItem title="Is there free or trial credit?">
    No. A new workspace starts at $0. Add at least the minimum top-up (shown by `looot balance`)
    before your first run. See [Before your first run](/money#before-your-first-run).
  </AccordionItem>
  <AccordionItem title="Which Node version does the CLI need?">
    Node.js 20 or newer. `looot doctor` checks it.
  </AccordionItem>
  <AccordionItem title="Where is my token, and how do I remove it?">
    `looot login` saves it to `~/.config/looot/config.json`, readable only by you. `looot logout`
    revokes it on the server and deletes the file. Every token is also listed in Settings, Agent
    tokens, on looot.ai, where you can revoke it. See [Sign in](/get-started/sign-in).
  </AccordionItem>
  <AccordionItem title="Do I need to copy a token into my agent?">
    Usually not. Claude Code, Claude.ai, Claude Desktop, ChatGPT, Codex, Cursor, VS Code, Gemini
    CLI, Windsurf and other MCP clients that support browser sign-in keep their own token, which
    renews on its own. You only put a token in a header for CI, scripts, or a client without
    browser sign-in. See [Connect your agent](/connect).
  </AccordionItem>
  <AccordionItem title="Can I pass the token as a CLI flag?">
    No. There is no `--token` flag, so the secret never lands in shell history. Use `looot login`
    or set `LOOOT_TOKEN`.
  </AccordionItem>
  <AccordionItem title="How do I know what a call will cost before I run it?">
    `looot inspect <endpoint-id>` (or MCP [`inspect`](/mcp-tools/inspect), or `GET /v1/operations/{id}`) shows the price
    formula and, when signed in, the estimated maximum cost of one run. Search results show the
    price per call or per result.
  </AccordionItem>
  <AccordionItem title="Am I charged when a call fails?">
    No. A run that fails at the provider settles at $0 (or the provider's evidenced partial cost)
    and its hold is released. A run refused before it starts takes no hold at all. See
    [Money: free calls and failures](/money/free-and-failures).
  </AccordionItem>
  <AccordionItem title="Can a retry charge me twice?">
    Not with the same idempotency key. The same key with the same input returns the original run
    (`replayed: true`) and charges once. The CLI prints the key it used on every run. See
    [Idempotency](/concepts/idempotency).
  </AccordionItem>
  <AccordionItem title="What is a job, and when should I run job:<id> over an endpoint?">
    A job (also called a capability, like `people.email.find`) is the task several providers can
    do, not one provider's specific operation. Send `endpointId: "job:<job id>"` to [`run`](/mcp-tools/run) and looot
    picks the first provider of that job that can run now and accepts your input. You don't pick
    an endpoint id yourself. See [Jobs](/concepts/jobs).
  </AccordionItem>
  <AccordionItem title="What does fallback do, and does it cost more?">
    Add `fallback` to a run to let it move on to the next provider of the same job when the first
    one misses or errors. It's one hold for the whole route, and only the attempts that actually
    ran are charged; an error, a 402, or a rejected call is never charged. See
    [Fallback](/concepts/fallback). `--fallback` on the CLI is coming in the next release; use the
    MCP `run` tool or the REST body today.
  </AccordionItem>
  <AccordionItem title="What is normalized output?">
    A completed run of some jobs (currently email verify/find, phone find, company enrich, scrape
    markdown and backlinks summary) can carry a `normalized` object next to `result`: the same
    answer mapped onto one shared field set, so you don't have to read every provider's own
    response shape. It's absent, never null, when it doesn't apply to that job or that gateway
    hasn't turned it on. See [Normalized output](/concepts/normalized-output).
  </AccordionItem>
  <AccordionItem title="Why does an endpoint in search refuse to run?">
    Some endpoints are switched off for a while, for example when the provider is down. They
    return [`provider_disabled`](/errors/run-errors#provider_disabled), and search lists the endpoints that run now by default. Pick
    another endpoint for the same job, or send `job:<id>` and let looot pick one that can run.
  </AccordionItem>
  <AccordionItem title="My run says completed but the data looks wrong. Where do I look?">
    [`runs_evidence`](/mcp-tools/runs-evidence) / `looot runs evidence <run-id>` shows every attempt with the provider's own
    response status, latency, receipt id and cost. Quote the run id and the `requestId` when you
    ask for help. Also check [`outcome`](/concepts/outcomes): `"miss"` means the provider answered but found nothing,
    and `"weak"` means a flagged answer (a catch-all email, a guessed pattern) worth verifying
    before you use it.
  </AccordionItem>
  <AccordionItem title="Which agent client should I use?">
    Any MCP client that speaks Streamable HTTP works: add `https://api.looot.ai/mcp` and sign in
    with the browser. See [Connect your agent](/connect) for the setup page for Claude Code,
    Claude.ai, Claude Desktop, ChatGPT, Codex, Cursor, VS Code, Gemini CLI, Windsurf, Grok,
    Copilot Studio and more, and [CLI vs MCP](/get-started/what-is-looot) if you'd rather script
    against the CLI or REST directly.
  </AccordionItem>
  <AccordionItem title="What's the looot plugin, and do I need it?">
    The plugin adds ready-made skills for Claude Code and compatible clients on top of the MCP
    tools: setup, finding and running the right endpoint, money awareness, and troubleshooting. It
    is not required; the MCP tools alone are enough to search, inspect and run. See
    [Plugin](/plugin).
  </AccordionItem>
  <AccordionItem title="My agent says forbidden when it tries to run something.">
    Its token lacks the `runs.execute` scope. If the agent signed in with the browser, revoke its
    "(connected)" token in Settings, Agent tokens, sign in again from the agent and keep
    `runs.execute` ticked on the consent page. If it uses a header token, create one that includes
    it, with `looot login` or in Settings, Agent tokens. See [Access](/concepts/access).
  </AccordionItem>
  <AccordionItem title="The provider I need isn't in the catalog.">
    Ask for it with the [`capability_request`](/mcp-tools/capability-request) MCP tool, or `POST /v1/capability-requests`.
  </AccordionItem>
  <AccordionItem title="How do I get machine-readable output from the CLI?">
    Pipe the command, or add `--format json` (or `jsonl`). Errors come as one JSON object on
    stderr; see [Errors](/errors).
  </AccordionItem>
  <AccordionItem title="Does looot have docs made for agents?">
    Yes. `https://docs.looot.ai/llms.txt` is a plain-text index of this site, and every page also
    has a `.md` mirror (append `.md` to the page's URL) for an agent that would rather read
    Markdown than rendered HTML. There's also a docs MCP server at `https://docs.looot.ai/mcp` an
    agent can connect to and search directly. Separately, the gateway itself publishes
    `https://api.looot.ai/llms.txt` describing the API and tools, and each catalog endpoint has an
    agent-readable card at `/catalog/{endpointId}.md`.
  </AccordionItem>
</Accordion>

<Related />
