API Documentation
Generate secure secret keys programmatically with our free REST API. No API key required. Perfect for CI/CD pipelines, automation scripts, and development tools.
Free to use without authentication. Just call the endpoint.
5 requests per second per IP address to prevent abuse.
Simple GET requests with JSON responses.
Server-Side Generation
Unlike our web-based tools which generate keys entirely in your browser, the REST API generates keys server-side using Node.js's cryptographically secure crypto.randomBytes() function. We never store or log any generated secrets. If you prefer 100% client-side generation, use our web-based generator instead.
Base URL
https://seckeygen.com/api/generateEndpoints
/api/generateGenerate a random secret key with default settings (32 chars, alphanumeric + symbols)
Example Request
curl https://seckeygen.com/api/generateExample Response
{
"keys": "Kx9#mP2$vL5nQ8@wR3jY6tB1cF4hN7!s",
"length": 32,
"charsetSize": 72,
"entropy": 197
}/api/generate?template={template}Generate a secret key using a predefined framework template
Query Parameters
template(string)requiredTemplate name: django, fastapi, jwt, flask, laravel, rails, nextauth, encryption, api-key, password, uuidExample Request
curl https://seckeygen.com/api/generate?template=djangoExample Response
{
"keys": "Kx9mP2vL5nQ8wR3jY6tB1cF4hN7sG0dM2kX5pW8qE1rT4u",
"template": "django",
"length": 50,
"charsetSize": 72,
"entropy": 308
}/api/generate?length={n}&lowercase={bool}&uppercase={bool}&numbers={bool}&symbols={bool}Generate a custom secret key with specific character sets and length
Query Parameters
length(number)Key length (1-256). Default: 32lowercase(boolean)Include lowercase letters (a-z)uppercase(boolean)Include uppercase letters (A-Z)numbers(boolean)Include numbers (0-9)symbols(boolean)Include symbols (!@#$%^&*...)customChars(string)Additional custom characters to includeexcludeChars(string)Characters to exclude from the keyprefix(string)Prefix to add to the generated keycount(number)Number of keys to generate (1-10). Default: 1Example Request
curl 'https://seckeygen.com/api/generate?length=16&lowercase=true&numbers=true'Example Response
{
"keys": "k9m2v5n8w3j6t1c4",
"length": 16,
"charsetSize": 36,
"entropy": 82
}/api/generate?count={n}Generate multiple keys at once (up to 10)
Query Parameters
count(number)Number of keys (1-10)Example Request
curl 'https://seckeygen.com/api/generate?template=jwt&count=3'Example Response
{
"keys": [
"Kx9mP2vL5nQ8wR3jY6tB1cF4hN7sG0dM2kX5pW8qE1rT4uY7iO0aS3dF6gH9jK",
"L2mN5bV8cX1zQ4wE7rT0yU3iO6pA9sD2fG5hJ8kL1mN4bV7cX0zQ3wE6rT9yU",
"P8qW5eR2tY9uI6oA3sD0fG7hJ4kL1mN8bV5cX2zQ9wE6rT3yU0iO7pA4sD1fG"
],
"template": "jwt",
"length": 64,
"charsetSize": 64,
"entropy": 384
}Available Templates
| Template | Length | Characters | Use Case |
|---|---|---|---|
| django | 50 | Alphanumeric + Symbols | Django SECRET_KEY |
| fastapi | 32 | URL-safe Base64 | FastAPI/Starlette secrets |
| jwt | 64 | URL-safe Base64 | JWT signing secrets |
| flask | 24 | Alphanumeric + Symbols | Flask SECRET_KEY |
| laravel | 32 | Base64 (with prefix) | Laravel APP_KEY |
| rails | 128 | Hex lowercase | Rails secret_key_base |
| nextauth | 32 | URL-safe Base64 | NextAuth NEXTAUTH_SECRET |
| encryption | 64 | Hex lowercase | AES-256 encryption keys |
| api-key | 40 | Alphanumeric | Generic API keys |
| password | 20 | Alphanumeric + Symbols | Secure passwords |
| uuid | 36 | UUID v4 format | Unique identifiers |
Rate Limiting
The API is rate limited to 5 requests per second per IP address. Rate limit information is included in response headers:
X-RateLimit-Limit: 5
X-RateLimit-Remaining: 4If you exceed the rate limit, you'll receive a 429 Too Many Requests response:
{
"error": "Rate limit exceeded",
"message": "Too many requests. Please try again shortly.",
"retryAfter": 1
}Code Examples
JavaScript / Node.js
// Generate a Django secret key
const response = await fetch('https://seckeygen.com/api/generate?template=django');
const data = await response.json();
console.log(data.keys); // Your Django SECRET_KEYPython
import requests
# Generate a JWT secret
response = requests.get('https://seckeygen.com/api/generate?template=jwt')
data = response.json()
print(data['keys']) # Your JWT secretcURL
# Generate a custom 64-char alphanumeric key
curl 'https://seckeygen.com/api/generate?length=64&lowercase=true&uppercase=true&numbers=true'Bash Script
#!/bin/bash
# Generate and export as environment variable
export SECRET_KEY=$(curl -s 'https://seckeygen.com/api/generate?template=django' | jq -r '.keys')Need a Visual Generator?
Use our web-based tool to generate keys interactively with advanced settings.
Open Key Generator