---
title: "Awkward passwords for a sign-up form's password field | Proxy Mail QA"
description: "Developer docs for Proxy Mail QA: the MCP server for coding agents, the REST API for test suites, and the Chrome extension."
url: https://proxymail.qa/docs/reference/operations/passwordvariants
---

# Awkward passwords for a sign-up form's password field

GET

/v1/variants/passwords

```js
const url = 'https://api.proxymail.qa/v1/variants/passwords?min_length=8&max_length=64&symbols=true';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request GET \
  --url 'https://api.proxymail.qa/v1/variants/passwords?min_length=8&max_length=64&symbols=true' \
  --header 'Authorization: Bearer <token>'
```

Values for testing what a form does with a password, within its rules: accept (exactly the minimum and the maximum, each symbol class including quotes, a backslash and a space, non-ASCII letters), reject (one under the minimum, one over the maximum, a symbol where none are allowed) and decide (only digits, only lower case, a space at the start or end, an emoji, composed and decomposed accents, and when the maximum is over 72 a pair sharing their first 72 bytes, which bcrypt stops at: apps differ, so note what the app did). Each call makes fresh values. See <https://proxymail.qa/docs/unusual-names-and-passwords>.

## Authorizations

- **[apiKey](https://proxymail.qa/docs/reference.html#apikey)**

## Parameters

### Query Parameters

**min\_length**

integer

default: 8 \>= 1 <= 256

The field’s minimum length.

**max\_length**

integer

default: 64 \>= 1 <= 1024

The field’s maximum length.

**symbols**

boolean

default: true

Whether the field allows symbols.

## Responses

### 200

The variants

Media typeapplication/json

### object

**min\_length**

integer

**max\_length**

integer

**symbols**

boolean

**accept**

Array<object>

### object

**tests**

What the value checks, e.g. “A hyphen”.

string

**value**

What to type into the field, exactly.

string

**reject**

Array<object>

### object

**tests**

What the value checks, e.g. “A hyphen”.

string

**value**

What to type into the field, exactly.

string

**decide**

Array<object>

### object

**tests**

What the value checks, e.g. “A hyphen”.

string

**value**

What to type into the field, exactly.

string

#### Example generated

```json
{
  "min_length": 1,
  "max_length": 1,
  "symbols": true,
  "accept": [
    {
      "tests": "example",
      "value": "example"
    }
  ],
  "reject": [
    {
      "tests": "example",
      "value": "example"
    }
  ],
  "decide": [
    {
      "tests": "example",
      "value": "example"
    }
  ]
}
```

### 400

An error

Media typeapplication/json

### object

**error**

string

**message**

string

#### Example generated

```json
{
  "error": "example",
  "message": "example"
}
```

[Previous Awkward names for a sign-up form's name field](https://proxymail.qa/docs/reference/operations/namevariants.html) [Next Check an email](https://proxymail.qa/docs/reference/operations/checkemail.html)

- [English ](https://proxymail.qa/docs/reference/operations/passwordvariants)
- [DeutschStartseite](https://proxymail.qa/de)
- [EspañolPágina de inicio](https://proxymail.qa/es)
- [FrançaisPage d’accueil](https://proxymail.qa/fr)
- [日本語トップページ](https://proxymail.qa/jp)
- [简体中文首页](https://proxymail.qa/zh-cn)
