Credits and limits
How usage is metered in credits, what a document may contain, and the per-key rate limits with what the API answers at each edge.
Credits
Every check draws credits from the account's balance, per started 250 words, and the price depends on which checks run: 40 credits for every check plus the passes you turn on (plagiarism +70, grammar and spelling +20, citations +10, AI content +10), so 250 words of plagiarism only cost 110 credits and 250 words with everything on cost 150. A 1,000-word plagiarism-only check is 440 credits; the same document with everything on is 600. The credits are reserved when the check is accepted (the 202 quotes them as estimatedCredits) and settled when it finishes (the check then carries creditsCharged). A check that is rejected, fails or is cancelled releases its reservation and charges nothing. A finished check whose AI or language pass could not run (the report marks it failed under passes and its scores are null) is not charged for that pass.
- Meter
- Per started 250 words: 40 + the passes on
- Plagiarism only
- 110 credits per 250 words
- Plagiarism + AI content
- 120 credits per 250 words
- Everything on
- 150 credits per 250 words
- Starter credits
- 1,500 with your first key
- Pack credits
- Never expire
- Same balance as
- Your Silvertext plan
The cost calculator on the API page prices any combination of checks, document size and pack, and prints the options body that runs it. The live schedule is on GET /v1/capabilities under credits.passes (a base plus one rate per pass, with wordsPerCredit the chunk), so an integration can price a document before submitting it: ceil(words / 250) × (base + the rates of the passes on). Rates can change; the schedule is what the API bills by.
Read the balance at any time with GET /v1/me/usage:
curl https://api.silvertext.com/v1/me/usage \
-H "Authorization: Bearer $SILVERTEXT_API_KEY"balanceAvailableCredits is what a new check can draw on; balanceHeldCredits is reserved by checks in flight; log lists recent spend. Buy packs under Account, then Subscription in the app; the API page lists the packs and their per-1,000-word prices for plagiarism only and for everything on.
What a document may contain
- Words per check
- Up to 25,000
- Upload size
- Up to 25 MB
- Formats
- .txt .md .html .csv .docx .xlsx .pdf, images by OCR
- Languages
- English, Spanish, French, German, Portuguese, Italian, Dutch, and source code
Text is decoded from UTF-8, UTF-16 or Windows-1252. Files are judged by their bytes, never by their extension or declared type. Scripts written without spaces between words (Chinese, Japanese, Thai) are refused at submission with unsupported_language. Every one of these limits is judged before the check is accepted, so a 202 means the document was read and will run. The same numbers, live, are document on GET /v1/capabilities, beside the rate limits below as rateLimits.
Rate limits
Limits apply per key and are sized for integrations that submit in bursts.
- Requests
- 120 per minute, every route counted
- Check starts
- 300 per hour
- Checks in flight
- 5 at once per account
- Live keys
- 5 per account
| Limit hit | Status | Code | What to do |
|---|---|---|---|
| Requests per minute | 429 | rate_limited | Wait for the seconds in Retry-After, then retry. |
| Check starts per hour | 429 | rate_limited | Same: Retry-After says when the window opens. |
| Checks in flight | 409 | concurrent_limit | Poll an in-flight check to completion, or cancel one, then resubmit. |
| Credits | 402 | quota_exceeded | Buy a pack; the message says how many credits the check needed. |
Rate limits and backoff has a retry recipe that handles all four.