ForHosting KIT · Validation

Check password strength

Most password rules reward the wrong things: 'P@ssword1!' satisfies a length-plus-symbol policy and falls to a cracking tool in seconds, while a long, unusual passphrase with no symbols at all can be genuinely strong.

● StableFree · in your browser
Use it from WebAPIEmailTelegramApp soon

The password strength API measures actual entropy, checks the candidate against a built-in list of the most common passwords, and estimates realistic time-to-crack, so your signup form can guide users toward passwords that are strong in practice, not just on a checklist.

Why length-and-symbol rules keep failing

Composition rules requiring a digit, a symbol and a capital letter were a reasonable idea decades ago, but attackers adapted faster than the rules did: password-cracking dictionaries now include every predictable substitution pattern those rules encourage, from 'a' to '@' and 'o' to '0'. A policy built around character classes measures compliance with a checklist, not actual resistance to a cracking attempt, and it often pushes users toward memorable-but-weak patterns instead of genuinely strong ones.

What this endpoint measures instead

Call POST /verify/password with a candidate password and the task calculates its entropy based on character set and length, checks it against a built-in list of the most common passwords, and estimates time-to-crack under realistic attack assumptions rather than a worst-case theoretical bound. The response gives you a strength assessment grounded in how an actual attacker would approach the password, not an arbitrary point score tied to whether it contains an exclamation mark.

A brief note on why common-list checks matter so much

Billions of passwords have leaked from breaches over the years, and attackers no longer guess blindly; they run candidate passwords against those known lists first, because a shocking share of the population reuses a small set of predictable passwords and variations. A password can have decent theoretical entropy and still be one of the most common an attacker tries first, which is precisely why entropy alone is an incomplete measure and flagging the most common passwords is not optional.

Where it plugs into a signup flow

Most integrations call this at the moment a user types a candidate password, showing real-time feedback rather than a rejection after submission; because the task is asynchronous you get a task_id immediately and the result by signed webhook, or via a signed link valid 24 hours if your flow polls instead. At $0.002 per request with failed checks never billed, it's cheap enough to call on every keystroke pause without rationing calls to only the final submit.

What it won't tell you

This endpoint scores the password itself; it says nothing about how your system stores it, and a strong password hashed with a weak, fast algorithm is still a weak system. Strength scoring and secure storage are separate problems that both need solving, and this endpoint solves exactly the first one, deliberately and well.

Signup form live feedback

Score the password as a user types it and show a real strength meter driven by entropy and common-password matches instead of a checklist of character types.

Password reset enforcement

Reject a new password during reset if it matches the common-password list, closing the loop attackers rely on when they try predictable passwords first.

Bulk credential audits

Run an internal audit of legacy accounts' passwords, where policy allows, to flag accounts sitting on dangerously weak or reused passwords.

Enterprise password policy tooling

Give admins a realistic time-to-crack estimate instead of an arbitrary character-count rule when setting organization-wide password requirements.

Is the password strength API free?

The tool above runs free in your browser. The API is paid — each call draws from your prepaid ForHosting KIT balance: top up from $10.00 (it never expires), pay each request's published price, and a call with no balance returns HTTP 402. No subscription, no tokens, and a failed task is never charged.

How is it priced?

$0.002 per request, charged only on a successfully completed check; failed checks are retried automatically up to three times and never billed.

Does it check against common passwords?

Yes. It flags candidates that match a built-in list of the most common passwords, as part of the assessment, not just a theoretical entropy calculation. It does not query a live breach database, which would mean sending the password to an outside service.

How is this different from a simple regex rule?

A regex rule checks character composition; this endpoint measures actual entropy, common-list membership and estimated time-to-crack, which correlate far better with real-world resistance to cracking.

Can I use this for live typing feedback?

Yes, the low per-request cost and async task_id response make it practical to call on natural pauses as a user types, not only at final submission.

How do I get the result?

By signed webhook, recommended for real-time UI feedback pipelines, or via a signed link valid 24 hours if you prefer to poll.

Are submitted passwords stored?

No, submitted passwords are deleted after the retention window and are never used for training or any purpose beyond returning the strength result.

Does a strong score guarantee my system is secure?

No, this endpoint scores password strength only; secure hashing and storage on your end are a separate requirement that this check does not cover.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/verify/password

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/verify/password \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"password":"Tr0ub4dor&3"}'
{
  "password": "Tr0ub4dor&3"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "verify.password",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →