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. The password strength API measures actual entropy, checks the candidate against known-compromised and common-password lists, 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.

● StableFree · in your browser
Use it from WebAPIEmailApp soonTelegram soon

Runs in your browser. Free, unlimited — your data never leaves this page.

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 lists of common and previously breached 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 first hundred thousand an attacker tries, which is precisely why entropy alone is an incomplete measure and a common-list check 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 breach-list matches instead of a checklist of character types.

Password reset enforcement

Reject a new password during reset if it matches a common or previously breached list, closing the loop attackers rely on after a credential dump.

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 real breach data?

It checks candidates against known common and previously breached password lists as part of the assessment, not just a theoretical entropy calculation.

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, and soon from our app, email and Telegram.

curl -X POST https://api.kit.forhosting.com/verify/password \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":["valor-1","valor-2"]}'
{
  "items": [
    "valor-1",
    "valor-2"
  ]
}
{
  "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 →