API Documentation
Programmatic access to 50+ crypto, encoding, and generator tools via a simple REST API.
Base URL: https://api.encryptcodec.com
Authentication
All API requests require a Bearer token in the Authorization header. Get an API key from your account. Sign up is free.
Keys are prefixed with ec_live_ for production and ec_test_ for test environments. Include the key in every request:
curl https://api.encryptcodec.com/v1/generate/uuid \ -H "Authorization: Bearer ec_live_your_key_here"
Rate Limits & Quotas
Rate limits are applied per API key. Every response includes headers showing your current usage:
| Plan | Requests / min | Requests / month | Price |
|---|---|---|---|
| Free | 30 | 5,000 | $0 |
| Pro | 120 | 100,000 | $12/mo |
| Team | 600 | 1,000,000 | $49/mo |
Response headers you will receive:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Max requests per minute for your plan |
| X-RateLimit-Remaining | Requests remaining in current window |
| X-RateLimit-Reset | Unix timestamp when the window resets |
| X-Quota-Limit | Monthly quota for your plan |
| X-Quota-Remaining | Remaining monthly requests |
When you exceed your rate limit, the API returns 429 Too Many Requests. When your monthly quota is exhausted, subsequent requests return 403 Quota Exceeded.
Error Handling
All errors follow a consistent JSON format:
{
"error": "VALIDATION_ERROR",
"message": "The 'algorithm' field must be one of: sha256, sha384, sha512, md5",
"details": {
"field": "algorithm",
"received": "sha128"
}
}| Status | Error Code | Description |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid or missing request parameters |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | QUOTA_EXCEEDED | Monthly quota exhausted — upgrade your plan |
| 429 | RATE_LIMITED | Too many requests — retry after the reset window |
| 500 | INTERNAL_ERROR | Unexpected server error — contact support if persistent |
Endpoints
All endpoints accept and return JSON. Click any endpoint to expand its full documentation, including request/response schemas and code examples.
Crypto
POST/v1/encrypt/aesEncrypt plaintext using AES-256-GCM with a password-derived key.
Encrypt plaintext using AES-256-GCM with a password-derived key.
Request Body
{
"plaintext": "Hello, World!",
"password": "my-secret-password"
}Response Body
{
"ciphertext": "U2FsdGVkX1+..."
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/encrypt/aes \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"plaintext": "Hello, World!", "password": "my-secret-password"}'const res = await fetch("https://api.encryptcodec.com/v1/encrypt/aes", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
plaintext: "Hello, World!",
password: "my-secret-password",
}),
});
const data = await res.json();
console.log(data.ciphertext);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/encrypt/aes",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"plaintext": "Hello, World!", "password": "my-secret-password"},
)
print(res.json()["ciphertext"])POST/v1/decrypt/aesDecrypt AES-256-GCM ciphertext back to plaintext.
Decrypt AES-256-GCM ciphertext back to plaintext.
Request Body
{
"ciphertext": "U2FsdGVkX1+...",
"password": "my-secret-password"
}Response Body
{
"plaintext": "Hello, World!"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/decrypt/aes \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"ciphertext": "U2FsdGVkX1+...", "password": "my-secret-password"}'const res = await fetch("https://api.encryptcodec.com/v1/decrypt/aes", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
ciphertext: "U2FsdGVkX1+...",
password: "my-secret-password",
}),
});
const data = await res.json();
console.log(data.plaintext);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/decrypt/aes",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"ciphertext": "U2FsdGVkX1+...", "password": "my-secret-password"},
)
print(res.json()["plaintext"])POST/v1/hashGenerate a cryptographic hash digest. Supports SHA-256, SHA-384, SHA-512, and MD5.
Generate a cryptographic hash digest. Supports SHA-256, SHA-384, SHA-512, and MD5.
Request Body
{
"text": "Hello, World!",
"algorithm": "sha256"
}Response Body
{
"hash": "dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f",
"algorithm": "sha256"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/hash \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"text": "Hello, World!", "algorithm": "sha256"}'const res = await fetch("https://api.encryptcodec.com/v1/hash", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "Hello, World!", algorithm: "sha256" }),
});
const data = await res.json();
console.log(data.hash);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/hash",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"text": "Hello, World!", "algorithm": "sha256"},
)
print(res.json()["hash"])POST/v1/hmacGenerate an HMAC signature. Supports SHA-256, SHA-384, and SHA-512.
Generate an HMAC signature. Supports SHA-256, SHA-384, and SHA-512.
Request Body
{
"text": "Hello, World!",
"key": "my-hmac-key",
"algorithm": "sha256"
}Response Body
{
"hmac": "a4b1c3d2e5f6...",
"algorithm": "sha256"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/hmac \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"text": "Hello, World!", "key": "my-hmac-key", "algorithm": "sha256"}'const res = await fetch("https://api.encryptcodec.com/v1/hmac", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
text: "Hello, World!",
key: "my-hmac-key",
algorithm: "sha256",
}),
});
const data = await res.json();
console.log(data.hmac);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/hmac",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"text": "Hello, World!", "key": "my-hmac-key", "algorithm": "sha256"},
)
print(res.json()["hmac"])JWT
POST/v1/jwt/signSign a JWT with the given payload and secret. Supports HS256, HS384, and HS512.
Sign a JWT with the given payload and secret. Supports HS256, HS384, and HS512.
Request Body
{
"payload": { "sub": "1234567890", "name": "John" },
"secret": "my-jwt-secret",
"algorithm": "HS256",
"expiresIn": "1h"
}Response Body
{
"token": "eyJhbGciOiJIUzI1NiIs..."
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/jwt/sign \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"payload": {"sub": "1234567890"}, "secret": "my-jwt-secret", "algorithm": "HS256", "expiresIn": "1h"}'const res = await fetch("https://api.encryptcodec.com/v1/jwt/sign", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
payload: { sub: "1234567890", name: "John" },
secret: "my-jwt-secret",
algorithm: "HS256",
expiresIn: "1h",
}),
});
const data = await res.json();
console.log(data.token);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/jwt/sign",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={
"payload": {"sub": "1234567890", "name": "John"},
"secret": "my-jwt-secret",
"algorithm": "HS256",
"expiresIn": "1h",
},
)
print(res.json()["token"])POST/v1/jwt/verifyVerify a JWT signature and check expiration. Returns the decoded header and payload if valid.
Verify a JWT signature and check expiration. Returns the decoded header and payload if valid.
Request Body
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"secret": "my-jwt-secret"
}Response Body
{
"valid": true,
"header": { "alg": "HS256", "typ": "JWT" },
"payload": { "sub": "1234567890", "name": "John", "iat": 1711516800 }
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/jwt/verify \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"token": "eyJhbGciOiJIUzI1NiIs...", "secret": "my-jwt-secret"}'const res = await fetch("https://api.encryptcodec.com/v1/jwt/verify", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
token: "eyJhbGciOiJIUzI1NiIs...",
secret: "my-jwt-secret",
}),
});
const data = await res.json();
console.log(data.valid, data.payload);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/jwt/verify",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"token": "eyJhbGciOiJIUzI1NiIs...", "secret": "my-jwt-secret"},
)
data = res.json()
print(data["valid"], data["payload"])POST/v1/jwt/decodeDecode a JWT without verifying the signature. Useful for inspecting tokens.
Decode a JWT without verifying the signature. Useful for inspecting tokens.
Request Body
{
"token": "eyJhbGciOiJIUzI1NiIs..."
}Response Body
{
"header": { "alg": "HS256", "typ": "JWT" },
"payload": { "sub": "1234567890", "name": "John", "iat": 1711516800 }
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/jwt/decode \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"token": "eyJhbGciOiJIUzI1NiIs..."}'const res = await fetch("https://api.encryptcodec.com/v1/jwt/decode", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ token: "eyJhbGciOiJIUzI1NiIs..." }),
});
const data = await res.json();
console.log(data.header, data.payload);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/jwt/decode",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"token": "eyJhbGciOiJIUzI1NiIs..."},
)
data = res.json()
print(data["header"], data["payload"])Encoding
POST/v1/base64/encodeEncode text to Base64.
Encode text to Base64.
Request Body
{
"text": "Hello, World!"
}Response Body
{
"encoded": "SGVsbG8sIFdvcmxkIQ=="
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/base64/encode \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"text": "Hello, World!"}'const res = await fetch("https://api.encryptcodec.com/v1/base64/encode", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "Hello, World!" }),
});
const data = await res.json();
console.log(data.encoded);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/base64/encode",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"text": "Hello, World!"},
)
print(res.json()["encoded"])POST/v1/base64/decodeDecode a Base64 string back to text.
Decode a Base64 string back to text.
Request Body
{
"encoded": "SGVsbG8sIFdvcmxkIQ=="
}Response Body
{
"text": "Hello, World!"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/base64/decode \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"encoded": "SGVsbG8sIFdvcmxkIQ=="}'const res = await fetch("https://api.encryptcodec.com/v1/base64/decode", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ encoded: "SGVsbG8sIFdvcmxkIQ==" }),
});
const data = await res.json();
console.log(data.text);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/base64/decode",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"encoded": "SGVsbG8sIFdvcmxkIQ=="},
)
print(res.json()["text"])POST/v1/url/encodeURL-encode a string.
URL-encode a string.
Request Body
{
"text": "hello world & more"
}Response Body
{
"encoded": "hello%20world%20%26%20more"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/url/encode \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"text": "hello world & more"}'const res = await fetch("https://api.encryptcodec.com/v1/url/encode", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "hello world & more" }),
});
const data = await res.json();
console.log(data.encoded);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/url/encode",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"text": "hello world & more"},
)
print(res.json()["encoded"])POST/v1/url/decodeDecode a URL-encoded string.
Decode a URL-encoded string.
Request Body
{
"encoded": "hello%20world%20%26%20more"
}Response Body
{
"text": "hello world & more"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/url/decode \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"encoded": "hello%20world%20%26%20more"}'const res = await fetch("https://api.encryptcodec.com/v1/url/decode", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ encoded: "hello%20world%20%26%20more" }),
});
const data = await res.json();
console.log(data.text);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/url/decode",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"encoded": "hello%20world%20%26%20more"},
)
print(res.json()["text"])POST/v1/html/encodeHTML-encode special characters in a string.
HTML-encode special characters in a string.
Request Body
{
"text": "<script>alert('xss')</script>"
}Response Body
{
"encoded": "<script>alert('xss')</script>"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/html/encode \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"text": "<script>alert(\"xss\")</script>"}'const res = await fetch("https://api.encryptcodec.com/v1/html/encode", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "<script>alert('xss')</script>" }),
});
const data = await res.json();
console.log(data.encoded);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/html/encode",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"text": "<script>alert('xss')</script>"},
)
print(res.json()["encoded"])POST/v1/html/decodeDecode HTML entities back to their original characters.
Decode HTML entities back to their original characters.
Request Body
{
"encoded": "<script>alert('xss')</script>"
}Response Body
{
"text": "<script>alert('xss')</script>"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/html/decode \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"encoded": "<script>alert('xss')</script>"}'const res = await fetch("https://api.encryptcodec.com/v1/html/decode", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ encoded: "<script>alert('xss')</script>" }),
});
const data = await res.json();
console.log(data.text);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/html/decode",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"encoded": "<script>alert('xss')</script>"},
)
print(res.json()["text"])Generators
GET/v1/generate/uuidGenerate a single UUID v4.
Generate a single UUID v4.
Response Body
{
"uuid": "550e8400-e29b-41d4-a716-446655440000"
}Code Examples
curl https://api.encryptcodec.com/v1/generate/uuid \ -H "Authorization: Bearer ec_live_your_key_here"
const res = await fetch("https://api.encryptcodec.com/v1/generate/uuid", {
headers: { "Authorization": "Bearer ec_live_your_key_here" },
});
const data = await res.json();
console.log(data.uuid);import requests
res = requests.get(
"https://api.encryptcodec.com/v1/generate/uuid",
headers={"Authorization": "Bearer ec_live_your_key_here"},
)
print(res.json()["uuid"])POST/v1/generate/uuidGenerate multiple UUID v4s in a single request (max 100).
Generate multiple UUID v4s in a single request (max 100).
Request Body
{
"count": 5
}Response Body
{
"uuids": [
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"..."
]
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/generate/uuid \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"count": 5}'const res = await fetch("https://api.encryptcodec.com/v1/generate/uuid", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ count: 5 }),
});
const data = await res.json();
console.log(data.uuids);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/generate/uuid",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"count": 5},
)
print(res.json()["uuids"])POST/v1/generate/secretGenerate a cryptographically secure random secret or API key.
Generate a cryptographically secure random secret or API key.
Request Body
{
"length": 32,
"format": "hex"
}Response Body
{
"secret": "a1b2c3d4e5f6789012345678abcdef01a1b2c3d4e5f6789012345678abcdef01"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/generate/secret \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"length": 32, "format": "hex"}'const res = await fetch("https://api.encryptcodec.com/v1/generate/secret", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ length: 32, format: "hex" }),
});
const data = await res.json();
console.log(data.secret);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/generate/secret",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"length": 32, "format": "hex"},
)
print(res.json()["secret"])POST/v1/generate/password-strengthAnalyze a password and return a strength score, estimated crack time, and improvement suggestions.
Analyze a password and return a strength score, estimated crack time, and improvement suggestions.
Request Body
{
"password": "MyP@ssw0rd!"
}Response Body
{
"score": 3,
"crackTime": "centuries",
"suggestions": [
"Add more unique characters",
"Avoid common substitutions like @ for a"
]
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/generate/password-strength \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"password": "MyP@ssw0rd!"}'const res = await fetch("https://api.encryptcodec.com/v1/generate/password-strength", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ password: "MyP@ssw0rd!" }),
});
const data = await res.json();
console.log(data.score, data.crackTime, data.suggestions);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/generate/password-strength",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"password": "MyP@ssw0rd!"},
)
data = res.json()
print(data["score"], data["crackTime"], data["suggestions"])POST/v1/generate/sri-hashGenerate a Subresource Integrity (SRI) hash for a given content string.
Generate a Subresource Integrity (SRI) hash for a given content string.
Request Body
{
"content": "console.log('hello');",
"algorithm": "sha384"
}Response Body
{
"integrity": "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8w",
"tag": "<script src=\"...\" integrity=\"sha384-oqVuAf...\"></script>"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/generate/sri-hash \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"content": "console.log(\"hello\");", "algorithm": "sha384"}'const res = await fetch("https://api.encryptcodec.com/v1/generate/sri-hash", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
content: "console.log('hello');",
algorithm: "sha384",
}),
});
const data = await res.json();
console.log(data.integrity);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/generate/sri-hash",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"content": "console.log('hello');", "algorithm": "sha384"},
)
print(res.json()["integrity"])Utilities
POST/v1/cron/parseParse a cron expression and return a human-readable description with the next scheduled run times.
Parse a cron expression and return a human-readable description with the next scheduled run times.
Request Body
{
"expression": "*/5 * * * *"
}Response Body
{
"valid": true,
"description": "Every 5 minutes",
"next_runs": [
"2026-03-29T12:05:00Z",
"2026-03-29T12:10:00Z",
"2026-03-29T12:15:00Z"
]
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/cron/parse \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"expression": "*/5 * * * *"}'const res = await fetch("https://api.encryptcodec.com/v1/cron/parse", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ expression: "*/5 * * * *" }),
});
const data = await res.json();
console.log(data.description, data.next_runs);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/cron/parse",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"expression": "*/5 * * * *"},
)
data = res.json()
print(data["description"], data["next_runs"])POST/v1/cron/validateValidate a cron expression and return whether it is syntactically correct.
Validate a cron expression and return whether it is syntactically correct.
Request Body
{
"expression": "*/5 * * * *"
}Response Body
{
"valid": true
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/cron/validate \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"expression": "*/5 * * * *"}'const res = await fetch("https://api.encryptcodec.com/v1/cron/validate", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ expression: "*/5 * * * *" }),
});
const data = await res.json();
console.log(data.valid);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/cron/validate",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"expression": "*/5 * * * *"},
)
print(res.json()["valid"])POST/v1/useragent/parseParse a user-agent string and extract browser, version, OS, device type, and bot detection.
Parse a user-agent string and extract browser, version, OS, device type, and bot detection.
Request Body
{
"ua_string": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}Response Body
{
"browser": "Chrome",
"version": "120.0.0.0",
"os": "macOS 10.15.7",
"device": "desktop",
"is_bot": false
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/useragent/parse \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"ua_string": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."}'const res = await fetch("https://api.encryptcodec.com/v1/useragent/parse", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ ua_string: "Mozilla/5.0 ..." }),
});
const data = await res.json();
console.log(data.browser, data.os, data.is_bot);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/useragent/parse",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"ua_string": "Mozilla/5.0 ..."},
)
data = res.json()
print(data["browser"], data["os"], data["is_bot"])POST/v1/email/validateValidate an email address — check format, MX record existence, and disposable provider detection.
Validate an email address — check format, MX record existence, and disposable provider detection.
Request Body
{
"email": "user@example.com"
}Response Body
{
"valid": true,
"format_ok": true,
"mx_exists": true,
"is_disposable": false
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/email/validate \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'const res = await fetch("https://api.encryptcodec.com/v1/email/validate", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ email: "user@example.com" }),
});
const data = await res.json();
console.log(data.valid, data.is_disposable);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/email/validate",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"email": "user@example.com"},
)
data = res.json()
print(data["valid"], data["is_disposable"])POST/v1/regex/testTest a regular expression against a string and return matches, groups, and match count.
Test a regular expression against a string and return matches, groups, and match count.
Request Body
{
"pattern": "\\d+",
"flags": "g",
"text": "abc 123 def 456"
}Response Body
{
"valid": true,
"matches": ["123", "456"],
"groups": [],
"count": 2
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/regex/test \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"pattern": "\\d+", "flags": "g", "text": "abc 123 def 456"}'const res = await fetch("https://api.encryptcodec.com/v1/regex/test", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ pattern: "\\d+", flags: "g", text: "abc 123 def 456" }),
});
const data = await res.json();
console.log(data.matches, data.count);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/regex/test",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"pattern": "\\d+", "flags": "g", "text": "abc 123 def 456"},
)
data = res.json()
print(data["matches"], data["count"])POST/v1/markdown/renderRender a Markdown string to sanitized HTML.
Render a Markdown string to sanitized HTML.
Request Body
{
"markdown": "# Hello\n\nThis is **bold** text."
}Response Body
{
"html": "<h1>Hello</h1>\n<p>This is <strong>bold</strong> text.</p>"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/markdown/render \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"markdown": "# Hello\n\nThis is **bold** text."}'const res = await fetch("https://api.encryptcodec.com/v1/markdown/render", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ markdown: "# Hello\n\nThis is **bold** text." }),
});
const data = await res.json();
console.log(data.html);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/markdown/render",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"markdown": "# Hello\n\nThis is **bold** text."},
)
print(res.json()["html"])POST/v1/password/policyCheck a password against configurable policy rules and return a strength score with failure details.
Check a password against configurable policy rules and return a strength score with failure details.
Request Body
{
"password": "MyP@ss1",
"rules": {
"minLength": 8,
"requireUppercase": true,
"requireNumber": true,
"requireSpecial": true
}
}Response Body
{
"valid": false,
"score": 2,
"failures": ["Password must be at least 8 characters"]
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/password/policy \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"password": "MyP@ss1", "rules": {"minLength": 8}}'const res = await fetch("https://api.encryptcodec.com/v1/password/policy", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
password: "MyP@ss1",
rules: { minLength: 8, requireUppercase: true },
}),
});
const data = await res.json();
console.log(data.valid, data.score, data.failures);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/password/policy",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"password": "MyP@ss1", "rules": {"minLength": 8}},
)
data = res.json()
print(data["valid"], data["score"], data["failures"])POST/v1/ip/lookupLook up geolocation and ISP information for an IP address.
Look up geolocation and ISP information for an IP address.
Request Body
{
"ip": "8.8.8.8"
}Response Body
{
"country": "United States",
"city": "Mountain View",
"isp": "Google LLC",
"timezone": "America/Los_Angeles",
"lat": 37.386,
"lon": -122.0838
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/ip/lookup \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"ip": "8.8.8.8"}'const res = await fetch("https://api.encryptcodec.com/v1/ip/lookup", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ ip: "8.8.8.8" }),
});
const data = await res.json();
console.log(data.country, data.city, data.isp);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/ip/lookup",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"ip": "8.8.8.8"},
)
data = res.json()
print(data["country"], data["city"], data["isp"])Converters
POST/v1/convert/json-to-yamlConvert a JSON string to YAML format with optional indentation control.
Convert a JSON string to YAML format with optional indentation control.
Request Body
{
"json": "{\"name\": \"Alice\", \"age\": 30}",
"indent": 2
}Response Body
{
"yaml": "name: Alice\nage: 30\n"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/convert/json-to-yaml \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"json": "{\"name\": \"Alice\", \"age\": 30}", "indent": 2}'const res = await fetch("https://api.encryptcodec.com/v1/convert/json-to-yaml", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ json: '{"name": "Alice", "age": 30}', indent: 2 }),
});
const data = await res.json();
console.log(data.yaml);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/convert/json-to-yaml",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"json": '{"name": "Alice", "age": 30}', "indent": 2},
)
print(res.json()["yaml"])POST/v1/convert/yaml-to-jsonConvert a YAML string to JSON format with optional indentation control.
Convert a YAML string to JSON format with optional indentation control.
Request Body
{
"yaml": "name: Alice\nage: 30",
"indent": 2
}Response Body
{
"json": "{\"name\": \"Alice\", \"age\": 30}"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/convert/yaml-to-json \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"yaml": "name: Alice\nage: 30", "indent": 2}'const res = await fetch("https://api.encryptcodec.com/v1/convert/yaml-to-json", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ yaml: "name: Alice\nage: 30", indent: 2 }),
});
const data = await res.json();
console.log(data.json);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/convert/yaml-to-json",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"yaml": "name: Alice\nage: 30", "indent": 2},
)
print(res.json()["json"])POST/v1/convert/csv-to-jsonConvert CSV data to a JSON array with configurable delimiter and header detection.
Convert CSV data to a JSON array with configurable delimiter and header detection.
Request Body
{
"csv": "name,age\nAlice,30\nBob,25",
"delimiter": ",",
"headers": true
}Response Body
{
"json": [{"name": "Alice", "age": "30"}, {"name": "Bob", "age": "25"}],
"row_count": 2,
"column_count": 2
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/convert/csv-to-json \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"csv": "name,age\nAlice,30\nBob,25", "delimiter": ",", "headers": true}'const res = await fetch("https://api.encryptcodec.com/v1/convert/csv-to-json", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ csv: "name,age\nAlice,30\nBob,25", headers: true }),
});
const data = await res.json();
console.log(data.json, data.row_count);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/convert/csv-to-json",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"csv": "name,age\nAlice,30\nBob,25", "headers": True},
)
data = res.json()
print(data["json"], data["row_count"])POST/v1/convert/json-to-csvConvert a JSON array of objects to CSV format with configurable delimiter.
Convert a JSON array of objects to CSV format with configurable delimiter.
Request Body
{
"json": [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}],
"delimiter": ","
}Response Body
{
"csv": "name,age\nAlice,30\nBob,25",
"row_count": 2,
"column_count": 2
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/convert/json-to-csv \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"json": [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]}'const res = await fetch("https://api.encryptcodec.com/v1/convert/json-to-csv", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
json: [{ name: "Alice", age: 30 }, { name: "Bob", age: 25 }],
}),
});
const data = await res.json();
console.log(data.csv);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/convert/json-to-csv",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"json": [{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]},
)
print(res.json()["csv"])POST/v1/convert/properties-to-yamlConvert Java .properties format to YAML.
Convert Java .properties format to YAML.
Request Body
{
"properties": "server.port=8080\nserver.host=localhost"
}Response Body
{
"yaml": "server:\n port: 8080\n host: localhost\n"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/convert/properties-to-yaml \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"properties": "server.port=8080\nserver.host=localhost"}'const res = await fetch("https://api.encryptcodec.com/v1/convert/properties-to-yaml", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ properties: "server.port=8080\nserver.host=localhost" }),
});
const data = await res.json();
console.log(data.yaml);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/convert/properties-to-yaml",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"properties": "server.port=8080\nserver.host=localhost"},
)
print(res.json()["yaml"])POST/v1/convert/yaml-to-propertiesConvert YAML to Java .properties format.
Convert YAML to Java .properties format.
Request Body
{
"yaml": "server:\n port: 8080\n host: localhost"
}Response Body
{
"properties": "server.port=8080\nserver.host=localhost"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/convert/yaml-to-properties \
-H "Authorization: Bearer ec_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"yaml": "server:\n port: 8080\n host: localhost"}'const res = await fetch("https://api.encryptcodec.com/v1/convert/yaml-to-properties", {
method: "POST",
headers: {
"Authorization": "Bearer ec_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ yaml: "server:\n port: 8080\n host: localhost" }),
});
const data = await res.json();
console.log(data.properties);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/convert/yaml-to-properties",
headers={"Authorization": "Bearer ec_live_your_key_here"},
json={"yaml": "server:\n port: 8080\n host: localhost"},
)
print(res.json()["properties"])Monitoring (Pro/Business)
POST/v1/monitor/sslAdd a domain for SSL certificate monitoring. Alerts before expiry. Requires JWT auth and Pro/Business plan.
Add a domain for SSL certificate monitoring. Alerts before expiry. Requires JWT auth and Pro/Business plan.
Request Body
{
"domain": "example.com",
"alert_days_before": 30
}Response Body
{
"id": "mon_ssl_abc123",
"domain": "example.com",
"issuer": "Let's Encrypt",
"expires": "2026-09-15T00:00:00Z",
"days_remaining": 170,
"status": "active"
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/monitor/ssl \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com", "alert_days_before": 30}'const res = await fetch("https://api.encryptcodec.com/v1/monitor/ssl", {
method: "POST",
headers: {
"Authorization": "Bearer <jwt_token>",
"Content-Type": "application/json",
},
body: JSON.stringify({ domain: "example.com", alert_days_before: 30 }),
});
const data = await res.json();
console.log(data.domain, data.days_remaining);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/monitor/ssl",
headers={"Authorization": "Bearer <jwt_token>"},
json={"domain": "example.com", "alert_days_before": 30},
)
data = res.json()
print(data["domain"], data["days_remaining"])POST/v1/monitor/uptimeAdd a URL for uptime monitoring with configurable check intervals. Requires JWT auth and Pro/Business plan.
Add a URL for uptime monitoring with configurable check intervals. Requires JWT auth and Pro/Business plan.
Request Body
{
"url": "https://example.com",
"interval_minutes": 5,
"alert_on_failure": true
}Response Body
{
"id": "mon_up_xyz789",
"url": "https://example.com",
"interval_minutes": 5,
"status": "active",
"last_check": null
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/monitor/uptime \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "interval_minutes": 5, "alert_on_failure": true}'const res = await fetch("https://api.encryptcodec.com/v1/monitor/uptime", {
method: "POST",
headers: {
"Authorization": "Bearer <jwt_token>",
"Content-Type": "application/json",
},
body: JSON.stringify({ url: "https://example.com", interval_minutes: 5, alert_on_failure: true }),
});
const data = await res.json();
console.log(data.id, data.status);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/monitor/uptime",
headers={"Authorization": "Bearer <jwt_token>"},
json={"url": "https://example.com", "interval_minutes": 5, "alert_on_failure": True},
)
data = res.json()
print(data["id"], data["status"])POST/v1/scan/headersAnalyze the security headers of a URL and return a grade (A-F) with recommendations.
Analyze the security headers of a URL and return a grade (A-F) with recommendations.
Request Body
{
"url": "https://example.com"
}Response Body
{
"url": "https://example.com",
"grade": "B",
"headers_found": ["Strict-Transport-Security", "X-Content-Type-Options"],
"headers_missing": ["Content-Security-Policy", "Permissions-Policy"],
"recommendations": ["Add a Content-Security-Policy header"]
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/scan/headers \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'const res = await fetch("https://api.encryptcodec.com/v1/scan/headers", {
method: "POST",
headers: {
"Authorization": "Bearer <jwt_token>",
"Content-Type": "application/json",
},
body: JSON.stringify({ url: "https://example.com" }),
});
const data = await res.json();
console.log(data.grade, data.recommendations);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/scan/headers",
headers={"Authorization": "Bearer <jwt_token>"},
json={"url": "https://example.com"},
)
data = res.json()
print(data["grade"], data["recommendations"])POST/v1/monitor/headersAdd a URL for weekly security header scanning. Requires JWT auth and Pro/Business plan.
Add a URL for weekly security header scanning. Requires JWT auth and Pro/Business plan.
Request Body
{
"url": "https://example.com",
"notify_on_regression": true
}Response Body
{
"id": "mon_hdr_def456",
"url": "https://example.com",
"status": "active",
"schedule": "weekly",
"last_grade": null
}Code Examples
curl -X POST https://api.encryptcodec.com/v1/monitor/headers \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "notify_on_regression": true}'const res = await fetch("https://api.encryptcodec.com/v1/monitor/headers", {
method: "POST",
headers: {
"Authorization": "Bearer <jwt_token>",
"Content-Type": "application/json",
},
body: JSON.stringify({ url: "https://example.com", notify_on_regression: true }),
});
const data = await res.json();
console.log(data.id, data.status);import requests
res = requests.post(
"https://api.encryptcodec.com/v1/monitor/headers",
headers={"Authorization": "Bearer <jwt_token>"},
json={"url": "https://example.com", "notify_on_regression": True},
)
data = res.json()
print(data["id"], data["status"])Official SDKs
Official SDKs are coming soon. In the meantime, you can use any HTTP client to call the API directly.
Node.js / TypeScript
npm install @encryptcodec/sdk # coming soon
Python
pip install encryptcodec # coming soon
SDKs are in development. In the meantime, use the REST API directly with any HTTP client.