apyhub
SECURITY & PRIVACY

Generate/Score Password API

What it does

Password Strength Checker scores a password or generates a strong one, depending on the request body you send.

Send password to evaluate an existing password. The response includes an analysis object with length, strength, warnings, entropy_bits, character_classes, and estimated_crack_time. That gives you a quick read on whether a password is short, predictable, missing character variety, or likely to be cracked quickly.

If you set generate to true, you can ask for a new password instead. Use length to control the generated password length from 8 to 128 characters, with 20 as the default. The response returns the generated password and a generated flag so you can distinguish creation from scoring.

Use Password Strength Checker in account signup flows, password reset screens, admin tools, or security reviews where you need immediate feedback before accepting a password.

POST
Score a password's strength, and/or generate a strong one.
https://api.eu.apyhub.com/creightonnick0/password-strength-evaluation

QUICKSTART

GUIDE

Quickstart

Score a password by sending it in a JSON body.

curl -X POST "https://api.eu.apyhub.com/creightonnick0/password-strength-evaluation" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"password":"Tr0ub4dour&3"}'

What you'll get back

Returns a JSON object with analysis (object), password (string), and generated (boolean) top-level fields.

  • analysis contains password details such as length (integer), strength (string), warnings (array), entropy_bits (number), character_classes (object), and estimated_crack_time (string).
  • password is the evaluated or generated password string.
  • generated is true when the API generated a password, and false when it scored the one you sent.
{
  "analysis": {
    "length": 12,
    "strength": "strong",
    "warnings": [],
    "entropy_bits": 78.4,
    "character_classes": {
      "digits": true,
      "symbols": true,
      "lowercase": true,
      "uppercase": true
    },
    "estimated_crack_time": "centuries"
  },
  "password": "Tr0ub4dour&3",
  "generated": false
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body
Length for a generated password (8-128, default 20)
Generate a strong password instead of scoring
Password to score (omit to generate one)

About this endpoint

What it does

Scores a provided password's strength, or generates a strong password when requested. The request body lets you supply a password to analyze, or set generate to true and optionally specify the generated password length.

Request Body

ParameterTypeMandatoryDescription
lengthIntegerNoLength for a generated password. Allowed range: 8-128. Default: 20.
generateBooleanNoGenerate a strong password instead of scoring.
passwordStringNoPassword to score. Omit this field to generate one.

Response

Returns a JSON object with analysis, password, and generated fields. analysis is an object containing the password evaluation details, password is the password value associated with the response, and generated is a boolean indicating whether the response contains a generated password.

ParameterTypeMandatoryDescription
analysisObjectNoPassword analysis details. Contains length, strength, warnings, entropy_bits, character_classes, and estimated_crack_time.
passwordStringNoPassword value returned by the service.
generatedBooleanNoIndicates whether the password was generated.

Notes

The request body does not define any mutually exclusive constraint in the schema, so password, generate, and length are all optional at the schema level.

Body

Name
Type
Description
bodyOPTIONAL
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.