Skip to main content
This page applies to accounts with credit-based metering enabled. If your account is metered by request count, none of the pricing below applies and none of the credit headers described here are returned. Not sure which you are on? Send any request and read the X-Enkrypt-Credits-Mode response header — see Which mode am I on?.
Credits are a single usage currency across the platform. There are two separate balances: Both are granted monthly and reset with your billing period.
Rates on this page are current as at 2026-08-06 and may change. The X-Enkrypt-Credits-Cost header returned on your own calls is always authoritative — build any internal reporting against the headers, not against a copy of these tables.

The three principles

  1. You are charged for work performed, not for bytes sent. Cost tracks the number and kind of model invocations your request causes. Two detectors cost more than one; an LLM-judge detector costs more than a regex one.
  2. Cost is computed from your request before it runs. If the cost would take you past your limit, the request is rejected with 402 and nothing is charged. You are never partially billed for a blocked request.
  3. Reads are free. Fetching results, run status, records or datasets never costs credits. Only work that generates or evaluates something is priced.

Guardrails

The cost of a detect call is the sum of its enabled detectors. Only detectors you switch on are counted — a policy with ten detectors defined but two enabled is priced as two.

Detector rates

The rate reflects the compute behind each detector: 1 is an in-process regex or a single small classifier, 2 is a two-stage model, 5 is a self-hosted LLM judge.

Length scaling

Detectors marked scales with text length are charged per unit of text:
So bias (5 credits per 4,096 characters) on a 10,000-character input costs 5 × ceil(10000 / 4096) = 5 × 3 = 15 credits. Scaling is capped at 25 units, so a single detector can never exceed 25× its base rate however large the input. Detectors that do not scale are charged once regardless of length.

Discounts

nsfw and toxicity share one model inference. Enabling both subtracts 1 credit per text, so together they cost 1 rather than 2.

Explanations

Two detectors accept need_explanation, which adds a second LLM generation to explain a finding. Both are charged when it is on:
The two defaults are opposite. policy_violation generates an explanation unless you send an explicit need_explanation: false, so omitting the field still incurs its 2× rate. injection_attack does the reverse: it only costs 2× if you explicitly send need_explanation: true.
An explicit true or false always wins; the default applies only when the field is absent. Sending null counts as absent.

Batch requests

Batch endpoints are priced per item — each text is costed on its own length and summed. You are never charged the longest item’s length multiplied by the item count.

Worked example

A /guardrails/detect call with pii, nsfw, toxicity and injection_attack enabled on a 3,000-character input:
The same call with injection_attack.need_explanation: true doubles that detector’s term only — 4 × 3 = 12 — for a total of 14 credits:

Endpoint rates

Endpoints that are not a plain detector sum have their own rate: Multimodal detection (detect-image / detect-audio) supports toxicity, nsfw, injection_attack, pii and policy_violation, and is charged a flat 4 credits per enabled detector — it does not scale with file size, and the explanation multiplier does not apply. scan-url, scan-pdf and infer-document reserve an estimate up front and settle to the true cost once the number of fragments or pages is known. If the work turns out smaller than reserved, you are charged the smaller amount. The minimum charge for any priced Guardrails request is 1 credit.

Red Team

A Red Team run is priced from the scope you submit, before the run starts.

Category base rates

Attack multipliers

Roughly, the multiplier is the number of model calls the attack makes per prompt. Some attacks are also accepted under an older name. An alias is the same attack at the same multiplier — sending both names runs and charges it twice. A category with an empty attack_config still runs one basic probe and is charged base × 1.

Attacks that take parameters

derail_yourself, goat, rt_agent and tap accept tuning parameters, and the price moves with them, because the parameters determine how much work runs: The multiplier scales by your parameters relative to the reference, floored at 0.5× and capped at the ceiling. Doubling goat’s max_turns from 6 to 12 doubles its multiplier from 6 to 12; raising it far higher stops at the 2× cap.

Target multiplier

Agents cost more because each probe drives a multi-step tool-using loop.

Compliance-framework scope

Submitting compliance_frameworks instead of risk_categories expands to the categories that framework covers, each run with basic and encoding. Overlapping frameworks are deduplicated — listing three frameworks that all include safety_harm charges for it once.

Worked example

Other Red Team endpoints

The minimum charge for any priced Red Team submission is 5 credits.

AI Proxy

AI Proxy deployments are charged Guardrails credits, from the Guardrails balance, at exactly the rates in the Guardrails section above. Every guardrail stage your deployment runs is priced as the equivalent Guardrails API call — input detection, output detection, PII redaction and unredaction, hallucination, adherence and relevancy each cost what that endpoint costs. A deployment with input and output guardrails enabled is charged for both.
Provider tokens are not charged in credits. Credits cover the guardrail evaluations Enkrypt performs. What you pay your model provider for the underlying completion is separate and unaffected.
Because it is one pool and one setting, enabling credit metering on your account covers your deployments automatically. The pre-flight 402 check is applied once per request, on the input-detection cost.

Reading your usage

Response headers

Every priced call returns:
These headers are the authoritative record of what you were charged. If you are reconciling usage, read them per response rather than recomputing from the tables on this page.

Which mode am I on?

X-Enkrypt-Credits-Mode returns one of: shadow is useful before switching on: you get real per-request costs for your own traffic, with no billing effect.

When you run out

A request that would exceed your limit is rejected with 402 Payment Required before any work starts. Nothing is charged, and X-Enkrypt-Credits-Would-Cost tells you what the request needed. The same applies to per-project limits where your organisation has set them — the response indicates whether the organisation or the project limit was hit. If your plan has an unlimited allowance, costs are still computed and reported in the headers, but no request is ever blocked.

Monthly grants

Contact your account team to adjust an allowance or to enable credit metering.