Credits and repeats

Your organization pays once for each answer in a credit period. This page says what counts as the same answer, what the API and MCP tell you about it, and when a call costs nothing.

The rule

Within a credit period your organization pays once per answer, on the web app, the API and MCP alike. A search is the words typed. Paging, sorting and filters on the same words are included. A decision is the decision, a provision is the provision, and the Legal Discovery Graph of a decision is one answer.

The rule applies to the whole organization, not one user or one token. A colleague, another API token or another MCP connection reads the same answer for 0 credits.

Seven exceptions follow in the table and in the worked examples. The pricing page states them in plain words.

How we charge, in plain words, on the pricing page

What counts as the same answer

Each row names an answer, what makes a second call the same answer, and what makes it a new one.

AnswerThe same answerA new answer
SearchThe same words, on any surface and in either search tool (search_decisions and cross_type_search). Paging, limit, sorting, filters and mode on the same words are included, up to 20 different combinations in a credit period. The first call is one of them.Other words. The combination after the 20 included ones is charged as a new search with its own 20. Filler words alone (such as "und", "der" or "Urteil") count by their filters, so each set of filters is a new search. A search that finds nothing is free.
DecisionThe same decision by any id (ECLI, file number or UUID), in any section or Randnummer range, on the web app, the API or MCP.A different decision.
Provision (§)The same § or Artikel, with any Absatz, over MCP (get_norm) or REST.A different provision. The page of the whole law in the web app is a separate answer.
Law pageThe page of the same whole law in the web app.A provision of that law. The page does not cover its provisions, and a provision does not cover the page.
Legal Discovery Graph of a decisionThe graph of the same decision, whatever the depth, direction or page, on any surface. A graph export charges only the decisions whose graph is not yet included.The graph of another decision.
DatapackageThe same set of decisions with the same options (include_citations, full_text, max_chars). After a full_text datapackage, a single read of each decision it delivered in full is included. A text cut by max_chars does not count as read in full.Another set or other options: 1 credit per decision, at most 5 credits. Decisions you opened before are not subtracted.
Citation checkThe same text. Spaces and line breaks are normalized first.A changed text is checked in full and charged again by its length.

The credits block

Every metered answer from the REST API and from MCP carries a credits block. It tells you what the call took and whether the answer was already included.

FieldMeaning
meteredTrue when the call is charged at all. Free tools report false.
costThe credits this call took. 0 for a repeat.
credits_remainingThe plan credits left after the call.
includedTrue when your organization had already paid for this answer in the credit period.
covered_byThe operation that paid for it: search.semantic, document.unlock, graph.traverse, norm.lookup, export.bulk or citation.check. null when the answer is not included. It never names a user, a token or a surface.
refinements_leftOn a search only: how many new combinations of filters, sorting and mode are still included.
A repeated search that was already paid for
{
  "credits": {
    "metered": true,
    "cost": 0,
    "credits_remaining": 412,
    "included": true,
    "covered_by": "search.semantic",
    "refinements_left": 17
  }
}

Answers from the REST API and from the web app carry the header X-Klaracase-Credits. Its value reads charged=<n>; included=<true|false>. charged is the credits this call took. included is true when your organization had already paid for the answer. Over MCP, read the credits block of the result: it carries the same facts.

A repeat, as the header shows it
X-Klaracase-Credits: charged=0; included=true

What counts as an error

Only an answer that was served is charged. These statuses charge nothing: 403, 404, 429, any 5xx and validation errors (422). A refusal for lack of credits (402) did not run. An MCP tool error charges nothing either.

A crash, a timeout or a stopped worker charges nothing, because the charge comes after the answer. If a call fails on our side and you send it again, you pay once, when the retry works.

One case runs after the answer. A citation check in the web app is charged when we accept it and refunded in full if the run fails.

The credit period on each plan

A repeat is free inside one credit period. For Free and tester organizations, the credit period is the calendar month (UTC). For a paid plan, it is the billing period that starts with a paid invoice.

A normal renewal starts a new count: what you open again in the new period is charged again. An upgrade, a downgrade or a new billing date does not. An answer paid in an earlier period that overlaps the current one stays included.

Numbers and limits

20 different combinations of filters, sorting and mode are included per search and credit period. Paging never counts. We publish this number and review it against measured use. A change is announced in the changelog, never made silently.

An organization admin can set a credit limit for each API token and each MCP connection. A limit counts the credits a call takes, so an included answer does not use it up.

Worked examples

Prices are the current ones: a search 1 credit, a decision 1 credit, a provision 1 credit, a Legal Discovery Graph 2 credits.

  1. The same search on the web, then over MCP

    A colleague searches "Mietminderung Schimmel" in the web app. It costs 1 credit. Later an agent calls search_decisions with the same words and adds a court filter. The credits block reads cost 0, included true, covered_by search.semantic and refinements_left 18. Nothing is charged, because the words are the same.

  2. Three changes of filters, then page 2

    You search "Kündigung Eigenbedarf" and pay 1 credit, with 19 combinations left. You narrow by court, then by year, then sort by date. That is three more combinations, with 16 left. You open page 2 of the last view. Paging never counts, so nothing changes. The total is 1 credit.

  3. The 21st refinement

    After 20 different combinations on the same words, the next new combination is charged as a new search. It costs 1 credit and starts a new count with 19 left. The combinations you already used stay free to repeat.

  4. A full-text datapackage of 3, then reading one

    You assemble a datapackage of 3 decisions with full_text. It costs 3 credits. You then read one of them with get_decision: cost 0, included true. A decision you did not bundle costs 1 credit. Assemble the same datapackage again in the credit period and it costs nothing.

  5. A Free organization upgrades mid-month

    A Free organization opens a decision on the 3rd and pays 1 credit. On the 15th it upgrades to a paid plan, which starts a new credit period. Opening the same decision on the 20th costs nothing, because the new period overlaps the old one. When the paid plan renews, the new period starts a new count, and opening it again costs 1 credit.

  6. A server error, then a retry

    You read a decision and the call fails with a 500. No credit is taken. You send it again and it works: it costs 1 credit, once. A third read in the same credit period costs nothing.