Yurlie REST API

Integrate 30+ developer, network, JSON, and encoding tools directly into your microservices, CLI scripts, and web applications.

Quick start

1

Create an account

Sign up free
2

Generate an API key

Dashboard API Keys
3

Make your first HTTP request

See endpoints below

Authentication & Headers

Include your secret API key in the X-API-Key HTTP header on every API request.

Example Request (cURL)bash
curl -X POST https://api.yurlie.app/v1/network/cidr \
  -H "X-API-Key: yurlie_live_9a8b7c6d5e4f..." \
  -H "Content-Type: application/json" \
  -d '{"cidr": "192.168.1.0/24"}'

The production API Base URL is https://api.yurlie.app. During local development, use http://localhost:8080.

Rate limits & Daily Quotas

Every HTTP API response includes rate limit headers informing you of your daily quota allowance.

Subscription PlanDaily Request QuotaBurst Limit
Free Plan100 requests / day10 / sec
Pro Developer15,000 requests / day60 / sec
Business Team100,000 requests / dayUnlimited

API Endpoints Reference

Explore all available Yurlie REST API endpoints grouped by category.

Network & IP Tools

POST/v1/network/cidr

Calculate IPv4 subnetting details, broadcast address, netmask, and usable host count

Request Body JSON

{ "cidr": "192.168.1.0/24" }

Response JSON (200 OK)

{
  "cidr": "192.168.1.0/24",
  "ip": "192.168.1.0",
  "prefix": 24,
  "netmask": "255.255.255.0",
  "wildcard_mask": "0.0.0.255",
  "first_usable_ip": "192.168.1.1",
  "last_usable_ip": "192.168.1.254",
  "total_ips": 256,
  "usable_hosts": 254
}
POST/v1/network/subnet

Convert CIDR prefix (e.g. /26) to dotted-decimal Subnet Mask and vice-versa

Request Body JSON

{ "prefix": 26 }

Response JSON (200 OK)

{
  "prefix": 26,
  "netmask": "255.255.255.192",
  "wildcard": "0.0.0.63",
  "usable_hosts": 62
}
POST/v1/network/ip-range

Convert start and end IP addresses into optimal CIDR prefix blocks

Request Body JSON

{ "start_ip": "10.0.0.0", "end_ip": "10.0.0.255" }

Response JSON (200 OK)

{
  "start_ip": "10.0.0.0",
  "end_ip": "10.0.0.255",
  "cidr_blocks": ["10.0.0.0/24"]
}
POST/v1/network/ip-convert

Convert IPv4 address to Decimal, Binary, Hexadecimal, and Octal formats

Request Body JSON

{ "ip": "192.168.1.1" }

Response JSON (200 OK)

{
  "ip": "192.168.1.1",
  "decimal": 3232235777,
  "binary": "11000000.10101000.00000001.00000001",
  "hex": "C0A80101"
}
POST/v1/network/wildcard

Calculate Wildcard (inverse mask) for router & firewall ACL rules

Request Body JSON

{ "mask": "255.255.255.0" }

Response JSON (200 OK)

{
  "netmask": "255.255.255.0",
  "wildcard_mask": "0.0.0.255"
}
POST/v1/network/ip-info

Inspect IPv4 address class type, loopback, private/public status

Request Body JSON

{ "ip": "8.8.8.8" }

Response JSON (200 OK)

{
  "ip": "8.8.8.8",
  "is_private": false,
  "is_loopback": false,
  "class": "Class A"
}

JSON & Data Tools

POST/v1/json/format

Format, beautify, and validate JSON payload syntax

Request Body JSON

{ "json": "{"name":"John","age":30}", "indent": 2 }

Response JSON (200 OK)

{
  "formatted": "{\n  \"name\": \"John\",\n  \"age\": 30\n}",
  "valid": true
}
POST/v1/json/validate

Validate JSON syntax compliance against RFC 8259 specifications

Request Body JSON

{ "json": "{invalid_json}" }

Response JSON (200 OK)

{
  "valid": false,
  "error": "invalid character 'i' looking for beginning of object key string",
  "line": 1,
  "column": 2
}
POST/v1/json/minify

Minify JSON by removing unnecessary whitespace and line breaks

Request Body JSON

{ "json": "{\n  \"status\": \"success\"\n}" }

Response JSON (200 OK)

{
  "minified": "{\"status\":\"success\"}",
  "saved_bytes": 10
}
POST/v1/json/to-csv

Convert an array of JSON objects into formatted CSV table data

Request Body JSON

{ "data": [{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}] }

Response JSON (200 OK)

{
  "csv": "id,name\n1,Alice\n2,Bob"
}
POST/v1/json/from-csv

Parse raw CSV tabular string input into JSON array of objects

Request Body JSON

{ "csv": "id,name\n1,Alice\n2,Bob" }

Response JSON (200 OK)

{
  "data": [
    {"id": "1", "name": "Alice"},
    {"id": "2", "name": "Bob"}
  ]
}

Encoding & Security Tools

POST/v1/encoding/base64/encode

Encode text or binary data into Base64 string format

Request Body JSON

{ "input": "Hello Yurlie!" }

Response JSON (200 OK)

{ "encoded": "SGVsbG8gWXVybGllIQ==" }
POST/v1/encoding/base64/decode

Decode Base64 string input back to original plaintext

Request Body JSON

{ "input": "SGVsbG8gWXVybGllIQ==" }

Response JSON (200 OK)

{ "decoded": "Hello Yurlie!" }
POST/v1/encoding/url/encode

Percent-encode special characters for safe URL query parameters

Request Body JSON

{ "input": "https://yurlie.app?q=code & data" }

Response JSON (200 OK)

{ "encoded": "https%3A%2F%2Fyurlie.app%3Fq%3Dcode%20%26%20data" }
POST/v1/encoding/url/decode

Decode percent-encoded URL string back to readable text

Request Body JSON

{ "input": "hello%20world%20%26%20more" }

Response JSON (200 OK)

{ "decoded": "hello world & more" }
POST/v1/encoding/html/encode

Escape dangerous HTML tags and characters to prevent XSS vulnerabilities

Request Body JSON

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

Response JSON (200 OK)

{ "encoded": "&lt;script&gt;alert('xss')&lt;/script&gt;" }
POST/v1/encoding/html/decode

Decode HTML entities back to raw HTML characters

Request Body JSON

{ "input": "&lt;div&gt;Hello&lt;/div&gt;" }

Response JSON (200 OK)

{ "decoded": "<div>Hello</div>" }
POST/v1/encoding/jwt/decode

Decode and inspect JSON Web Token header, claims payload, and expiry without secret

Request Body JSON

{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }

Response JSON (200 OK)

{
  "header": { "alg": "HS256", "typ": "JWT" },
  "payload": { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 },
  "is_expired": false
}

Developer & Utility Tools

POST/v1/developer/uuid

Generate globally unique UUID v4 (random) or UUID v7 (time-ordered)

Request Body JSON

{ "version": "v7", "count": 2 }

Response JSON (200 OK)

{
  "version": "v7",
  "uuids": [
    "01910d54-8e12-7000-84a1-3b9e4a2c1d01",
    "01910d54-8e12-7000-84a2-4c0f5b3d2e02"
  ]
}
POST/v1/developer/hash

Calculate cryptographic hash checksums (MD5, SHA-1, SHA-256, SHA-512)

Request Body JSON

{ "input": "my-secret-password", "algorithm": "sha256" }

Response JSON (200 OK)

{
  "algorithm": "sha256",
  "hash": "89e01536ac207279409d4de1e5253e01f4a1769e696db0d6062ca9b8f56767c8"
}
POST/v1/developer/timestamp

Convert Unix Epoch timestamp to ISO 8601 UTC date string and vice-versa

Request Body JSON

{ "timestamp": 1722513600 }

Response JSON (200 OK)

{
  "timestamp": 1722513600,
  "iso": "2026-08-01T12:00:00.000Z",
  "utc": "Sat, 01 Aug 2026 12:00:00 GMT"
}
POST/v1/developer/regex

Test Regular Expression pattern matching against input text string

Request Body JSON

{ "pattern": "^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$", "text": "user@yurlie.app" }

Response JSON (200 OK)

{
  "is_match": true,
  "matches": ["user@yurlie.app"]
}
POST/v1/developer/diff

Compute line-by-line diff between two text strings

Request Body JSON

{ "text_a": "line 1\nline 2", "text_b": "line 1\nline 3" }

Response JSON (200 OK)

{
  "diff": "- line 2\n+ line 3"
}
POST/v1/developer/sql/format

Beautify and format SQL statements with consistent indentation

Request Body JSON

{ "sql": "SELECT * FROM users WHERE active=1 ORDER BY id DESC" }

Response JSON (200 OK)

{
  "formatted": "SELECT\n  *\nFROM\n  users\nWHERE\n  active = 1\nORDER BY\n  id DESC"
}
POST/v1/developer/xml/format

Format and beautify XML markup documents

Request Body JSON

{ "xml": "<root><child>value</child></root>" }

Response JSON (200 OK)

{
  "formatted": "<root>\n  <child>value</child>\n</root>"
}
POST/v1/developer/cron/describe

Parse 5-field Cron schedule expression into human-readable description & upcoming runs

Request Body JSON

{ "cron": "0 0 * * 1" }

Response JSON (200 OK)

{
  "cron": "0 0 * * 1",
  "description": "At 00:00 AM, only on Monday",
  "next_runs": [
    "2026-08-03T00:00:00Z",
    "2026-08-10T00:00:00Z"
  ]
}