EncryptCodecencryptcodec

API Documentation

Programmatic access to 50+ crypto, encoding, and generator tools via a simple REST API.

Base URL: https://api.encryptcodec.com

Get Started Free

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:

PlanRequests / minRequests / monthPrice
Free305,000$0
Pro120100,000$12/mo
Team6001,000,000$49/mo

Response headers you will receive:

HeaderDescription
X-RateLimit-LimitMax requests per minute for your plan
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when the window resets
X-Quota-LimitMonthly quota for your plan
X-Quota-RemainingRemaining 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"
  }
}
StatusError CodeDescription
400VALIDATION_ERRORInvalid or missing request parameters
401UNAUTHORIZEDMissing or invalid API key
403QUOTA_EXCEEDEDMonthly quota exhausted — upgrade your plan
429RATE_LIMITEDToo many requests — retry after the reset window
500INTERNAL_ERRORUnexpected 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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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..."}'
JavaScript
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);
Python
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
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!"}'
JavaScript
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);
Python
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
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=="}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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": "&lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;"
}

Code Examples

curl
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>"}'
JavaScript
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);
Python
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": "&lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;"
}

Response Body

{
  "text": "<script>alert('xss')</script>"
}

Code Examples

curl
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": "&lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;"}'
JavaScript
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: "&lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;" }),
});
const data = await res.json();
console.log(data.text);
Python
import requests

res = requests.post(
    "https://api.encryptcodec.com/v1/html/decode",
    headers={"Authorization": "Bearer ec_live_your_key_here"},
    json={"encoded": "&lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;"},
)
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
curl https://api.encryptcodec.com/v1/generate/uuid \
  -H "Authorization: Bearer ec_live_your_key_here"
JavaScript
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);
Python
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
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}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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!"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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 * * * *"}'
JavaScript
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);
Python
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
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 * * * *"}'
JavaScript
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);
Python
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
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)..."}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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."}'
JavaScript
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);
Python
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
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}}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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}'
JavaScript
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);
Python
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
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}'
JavaScript
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);
Python
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
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}'
JavaScript
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);
Python
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
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}]}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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}'
JavaScript
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);
Python
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
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}'
JavaScript
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);
Python
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
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"}'
JavaScript
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);
Python
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
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}'
JavaScript
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);
Python
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.