Password Generator API
A free, public JSON API for generating passwords, passphrases, PINs, and usernames. No API key, no signup, no cost.
https://api.makemeapassword.net
No API Key Required
60 Requests / Minute
JSON Responses
Free Forever
Quick Start
Every endpoint accepts a simple GET request and returns JSON. No authentication, headers, or setup required — just call the URL.
curl https://api.makemeapassword.net/v1/password
Response:
{ "password": "Kj8#mQ2vNxpL4wRt" }
Endpoints
GET
/v1/password
| Parameter | Type | Default |
|---|---|---|
| length | integer, 4-128 | 16 |
| upper | boolean | true |
| lower | boolean | true |
| numbers | boolean | true |
| symbols | boolean | true |
| excludeAmbiguous | boolean | false |
GET https://api.makemeapassword.net/v1/password?length=20&symbols=false
{ "password": "mp0BH70pQIR1eUB8ilQx" }
GET
/v1/passphrase
| Parameter | Type | Default |
|---|---|---|
| words | integer, 3-15 | 5 |
| separator | “-“, “.”, “_”, or ” “ | – |
| capitalize | boolean | true |
| addNumber | boolean | true |
GET https://api.makemeapassword.net/v1/passphrase?words=6&separator=.
{ "passphrase": "Autumn.Blur.Actress.Artwork.Athlete.Animal.83" }
GET
/v1/pin
| Parameter | Type | Default |
|---|---|---|
| length | integer, 4-12 | 4 |
| avoidRepeat | boolean | false |
| avoidSequential | boolean | false |
GET https://api.makemeapassword.net/v1/pin?length=6&avoidSequential=true
{ "pin": "947285" }
GET
/v1/username
| Parameter | Type | Default |
|---|---|---|
| style | “adjnoun” or “nounnoun” | adjnoun |
| addNumber | boolean | true |
| capitalize | boolean | true |
GET https://api.makemeapassword.net/v1/username?style=nounnoun
{ "username": "HawkCobra70" }
Example: JavaScript (fetch)
fetch('https://api.makemeapassword.net/v1/password?length=20')
.then(res => res.json())
.then(data => console.log(data.password));
Example: Python
import requests
response = requests.get('https://api.makemeapassword.net/v1/password', params={'length': 20})
print(response.json()['password'])
Rate Limits
This API is free and public, so a rate limit of 60 requests per minute per IP address is enforced to keep it available for everyone. If you exceed this, you’ll receive a 429 response until the window resets. There is no API key or account needed to use it within these limits.
Errors
Invalid parameters return a 400 status with a JSON error message. Unknown routes return a 404. Rate limit violations return a 429.
{ "error": "At least one character type must be enabled" }