Credit usage

Every API call is metered in credits, debited atomically against your balance. The prices listed here — and everywhere else on this site — are the minimum you'll be charged for that operation.

Listed costs are a floor, not a ceiling
Every published price is the minimum guaranteed charge. The actual cost of a single call can go higher depending on what the request actually does — pages scraped, retries, JS rendering depth, output size, LLM tokens consumed by extract / summary, and so on. Treat the numbers below as a baseline for budgeting, not an upper bound.

Minimum cost per endpoint

EndpointMin creditsNotes
POST /api/v1/scrape1One URL → markdown / HTML / links.
POST /api/v1/search2One query. Adding `scrapeOptions` scrapes each result and bills per scraped URL on top.
POST /api/v1/map1Discover URLs on a domain.
POST /api/v1/crawl1 / pageReserved up-front from the `limit` you pass; unused pages refund on completion.
POST /api/v1/batch-scrape1 / URLReserved from the URL count you submit.
POST /api/v1/extract2Structured JSON extraction (LLM-backed).
POST /api/v1/screenshot1PNG capture. `fullPage` + long waits can lengthen the render but the base price is the same.
POST /api/v1/question5Natural-language Q&A grounded on a single page (LLM-backed).
POST /api/v1/highlights5Extract the most relevant snippets from a page for a given query.
POST /api/v1/parse1Parse a PDF / document into clean text. Long PDFs may bill more.
POST /api/v1/summary1AI summary of a single page.
POST /api/v1/branding1Brand colors / fonts / logos extraction.
POST /api/v1/interact2 / callEach click / type / script run against a scrape session is billed separately.
POST /api/v1/interact/stop0Free. Releases the session early.
GET /api/v1/crawl/:id0Polling crawl status is free.
GET /api/v1/batch-scrape/:id0Polling batch status is free.
GET /api/v1/usage0Usage reports are free.

MCP tool costs match their REST equivalents (e.g. neuroapi_scrape = 1, neuroapi_extract = 2, neuroapi_interact = 2 per call). neuroapi_balance, *_status, and *_cancel tools are free.

What can push a call above the minimum?

  • Crawl / batch jobs: billed per actual page returned, up to the limit you set. Reserved at submission; unused pages are refunded when the job finishes.
  • Search with scrapeOptions: the 2-credit search fee is added to a per-result scrape fee for every URL the upstream actually fetches.
  • Heavy renders: pages that need a real browser, long waitFor, full-page screenshots, or retries to bypass anti-bot can cost more than the floor.
  • LLM-backed endpoints (extract, summary, natural-language interact prompts): cost scales with input/output tokens.
  • Interact sessions: each /interact call re-bills — chaining 5 clicks is 5 × the minimum. Idle sessions are auto-released after ~10 min.
  • Multiple formats: requesting several formats in one scrape call may be billed per format depending on what the upstream renders.

Refunds, failures, and reservations

  • If your balance is below the minimum, you get 402 insufficient_credits with nothing debited.
  • Crawl / batch jobs reserve credits at submission. Pages that never returned (cancelled or short-circuited) are auto-refunded.
  • Hard upstream failures (5xx, 503 upstream_busy) don't charge.
  • Successful calls that return partial data do charge — the work was done upstream.

Watching your usage

Use GET /api/v1/usage for a programmatic rollup, or open Dashboard → Logs for a line-by-line view including the exact creditsCharged on every response envelope.

Designing for cost
Set a sensible limit on crawls. Skip scrapeOptions on search when titles + URLs are enough. Reuse one sessionId across multiple interact calls instead of re-scraping. Poll status endpoints (free) instead of re-submitting jobs.