HomeAPI Documentation

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.

No API Key

Free to use without authentication. Just call the endpoint.

Rate Limited

5 requests per second per IP address to prevent abuse.

RESTful JSON

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/generate

Endpoints

GET/api/generate

Generate a random secret key with default settings (32 chars, alphanumeric + symbols)

Example Request

curl https://seckeygen.com/api/generate

Example Response

{
  "keys": "Kx9#mP2$vL5nQ8@wR3jY6tB1cF4hN7!s",
  "length": 32,
  "charsetSize": 72,
  "entropy": 197
}
GET/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, uuid

Example Request

curl https://seckeygen.com/api/generate?template=django

Example Response

{
  "keys": "Kx9mP2vL5nQ8wR3jY6tB1cF4hN7sG0dM2kX5pW8qE1rT4u",
  "template": "django",
  "length": 50,
  "charsetSize": 72,
  "entropy": 308
}
GET/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: 32
lowercase(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 include
excludeChars(string)Characters to exclude from the key
prefix(string)Prefix to add to the generated key
count(number)Number of keys to generate (1-10). Default: 1

Example Request

curl 'https://seckeygen.com/api/generate?length=16&lowercase=true&numbers=true'

Example Response

{
  "keys": "k9m2v5n8w3j6t1c4",
  "length": 16,
  "charsetSize": 36,
  "entropy": 82
}
GET/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

TemplateLengthCharactersUse Case
django50Alphanumeric + SymbolsDjango SECRET_KEY
fastapi32URL-safe Base64FastAPI/Starlette secrets
jwt64URL-safe Base64JWT signing secrets
flask24Alphanumeric + SymbolsFlask SECRET_KEY
laravel32Base64 (with prefix)Laravel APP_KEY
rails128Hex lowercaseRails secret_key_base
nextauth32URL-safe Base64NextAuth NEXTAUTH_SECRET
encryption64Hex lowercaseAES-256 encryption keys
api-key40AlphanumericGeneric API keys
password20Alphanumeric + SymbolsSecure passwords
uuid36UUID v4 formatUnique 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: 4

If 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_KEY

Python

import requests

# Generate a JWT secret
response = requests.get('https://seckeygen.com/api/generate?template=jwt')
data = response.json()
print(data['keys'])  # Your JWT secret

cURL

# 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