Tools API Reference
Every utility under /tools documented per-endpoint: parameters, curl examples and response shapes. Machine-readable version: OpenAPI 3.1 · Interactive overview: /docs/api.
Conventions
POST /api/v1/tools/:slug with a JSON body. No authentication required (public utilities).
- Rate limit: 60 requests/min per IP →
429+Retry-After - Input ceiling: 64 KB →
413 PAYLOAD_TOO_LARGE - Errors: RFC 9457
application/problem+jsonbodies - Unknown slug →
404 NOT_FOUND(no echo mock)
ALL TOOLS AT A GLANCE
| Tool | Category | Server API | Reference |
|---|---|---|---|
| JSON Formatterjson-formatter | Formatting | POST /api/v1/tools/json-formatter | contract ↓ |
| JSON Validatorjson-validator | Validation | POST /api/v1/tools/json-validator | contract ↓ |
| JSON / XML Converterjson-xml | Conversion | browser-only | why ↓ |
| JSON → TypeScriptjson-to-ts | Conversion | POST /api/v1/tools/json-to-ts | contract ↓ |
| YAML / JSON Converteryaml-json | Conversion | POST /api/v1/tools/yaml-json | contract ↓ |
| TOML / JSON Convertertoml-json | Conversion | POST /api/v1/tools/toml-json | contract ↓ |
| CSV Convertercsv-converter | Conversion | browser-only | why ↓ |
| CSV → JSONcsv-to-json | Conversion | POST /api/v1/tools/csv-to-json | contract ↓ |
| XML Validatorxml-validator | Validation | browser-only | why ↓ |
| JSON-LD Validatorjson-ld-validator | Validation | POST /api/v1/tools/json-ld-validator | contract ↓ |
| Base64 Textbase64-text | Encoding | POST /api/v1/tools/base64-text | contract ↓ |
| Base64 Filebase64-file | Encoding | browser-only | why ↓ |
| Base64 URL Encodebase64-url | Encoding | POST /api/v1/tools/base64-url | contract ↓ |
| HTML Escapehtml-escape | Escape | POST /api/v1/tools/html-escape | contract ↓ |
| HTML → Markdownhtml-to-markdown | Conversion | POST /api/v1/tools/html-to-markdown | contract ↓ |
| Markdown → HTMLmarkdown-to-html | Conversion | POST /api/v1/tools/markdown-to-html | contract ↓ |
| CSS Minifiercss-minifier | Formatting | POST /api/v1/tools/css-minifier | contract ↓ |
| SQL Formattersql-formatter | Formatting | browser-only | why ↓ |
| Regex Testerregex-tester | Testing | POST /api/v1/tools/regex-tester | contract ↓ |
| Regex Escaperregex-escaper | Text | POST /api/v1/tools/regex-escaper | contract ↓ |
| Text Comparisontext-diff | Text | POST /api/v1/tools/text-diff | contract ↓ |
| Password Generatorpassword-generator | Generator | POST /api/v1/tools/password-generator | contract ↓ |
| Password Strengthpassword-strength | Analysis | POST /api/v1/tools/password-strength | contract ↓ |
| Passphrase Generatorpassphrase-generator | Generator | POST /api/v1/tools/passphrase-generator | contract ↓ |
| Hash Calculatorhash-calculator | Generator | POST /api/v1/tools/hash-calculator | contract ↓ |
| Checksum Calculatorchecksum | Generator | POST /api/v1/tools/checksum | contract ↓ |
| HMAC Generatorhmac-generator | Generator | POST /api/v1/tools/hmac-generator | contract ↓ |
| UUID Generatoruuid-generator | Generator | POST /api/v1/tools/uuid-generator | contract ↓ |
| UUID v7 Generatoruuid-v7 | Generator | POST /api/v1/tools/uuid-v7 | contract ↓ |
| Random Stringrandom-string | Generator | POST /api/v1/tools/random-string | contract ↓ |
| JWT Decoderjwt-decoder | Analysis | POST /api/v1/tools/jwt-decoder | contract ↓ |
| JWT Encode / Signjwt-encode | Generator | POST /api/v1/tools/jwt-encode | contract ↓ |
| TOTP Generatortotp-generator | Generator | POST /api/v1/tools/totp-generator | contract ↓ |
| RSA Key Generatorrsa-generator | Generator | POST /api/v1/tools/rsa-generator | contract ↓ |
| SSH Key Fingerprintssh-key-fingerprint | Analysis | POST /api/v1/tools/ssh-key-fingerprint | contract ↓ |
| Certificate Infopublic-key-info | Analysis | POST /api/v1/tools/public-key-info | contract ↓ |
| URL Encoderurl-encoder | Encoding | POST /api/v1/tools/url-encoder | contract ↓ |
| URL Parserurl-parser | Analysis | POST /api/v1/tools/url-parser | contract ↓ |
| URL Expanderurl-expander | Analysis | POST /api/v1/tools/url-expander | contract ↓ |
| UTM Builderutm-builder | Builder | POST /api/v1/tools/utm-builder | contract ↓ |
| Query String Builderquery-string-builder | Builder | POST /api/v1/tools/query-string-builder | contract ↓ |
| Slug Generatorslug-generator | Generator | POST /api/v1/tools/slug-generator | contract ↓ |
| Link Checkerlink-checker | Analysis | POST /api/v1/tools/link-checker | contract ↓ |
| Redirect Tracerredirect-tracer | Analysis | POST /api/v1/tools/redirect-tracer | contract ↓ |
| QR Generatorqr-generator | Generator | POST /api/v1/tools/qr-generator | contract ↓ |
| What Is My IPwhat-is-my-ip | Lookup | POST /api/v1/tools/what-is-my-ip | contract ↓ |
| My IP (plain)ip | Lookup | POST /api/v1/tools/ip | contract ↓ |
| IP Validatorip-validator | Validation | POST /api/v1/tools/ip-validator | contract ↓ |
| IP Subnet Calculatorip-subnet-calculator | Calculator | POST /api/v1/tools/ip-subnet-calculator | contract ↓ |
| DNS Lookupdns-lookup | Lookup | POST /api/v1/tools/dns-lookup | contract ↓ |
| Reverse DNS Lookupreverse-dns | Lookup | POST /api/v1/tools/reverse-dns | contract ↓ |
| RDAP / WHOIS Lookuprdap-lookup | Lookup | POST /api/v1/tools/rdap-lookup | contract ↓ |
| DNSSEC Checkdnssec-check | Lookup | POST /api/v1/tools/dnssec-check | contract ↓ |
| HTTP Header Viewerhttp-header-viewer | Lookup | POST /api/v1/tools/http-header-viewer | contract ↓ |
| HTTP Status Codeshttp-status-codes | Reference | POST /api/v1/tools/http-status-codes | contract ↓ |
| robots.txt Viewerrobots-txt-viewer | Lookup | POST /api/v1/tools/robots-txt-viewer | contract ↓ |
| Canonical Checkercanonical-checker | Lookup | POST /api/v1/tools/canonical-checker | contract ↓ |
| Favicon Finderfavicon-finder | Lookup | POST /api/v1/tools/favicon-finder | contract ↓ |
| Open Graph Previewopen-graph-preview | Lookup | POST /api/v1/tools/open-graph-preview | contract ↓ |
| MIME Type Lookupmime-type-lookup | Reference | POST /api/v1/tools/mime-type-lookup | contract ↓ |
| TLS Analyzertls-analyzer | Analysis | POST /api/v1/tools/tls-analyzer | contract ↓ |
| SSL Certificate Expiryssl-expiry | Lookup | POST /api/v1/tools/ssl-expiry | contract ↓ |
| DANE / TLSAdane-tlsa | Validation | POST /api/v1/tools/dane-tlsa | contract ↓ |
| SPF Inspectorspf-inspector | Validation | POST /api/v1/tools/spf-inspector | contract ↓ |
| DMARC Inspectordmarc-inspector | Validation | POST /api/v1/tools/dmarc-inspector | contract ↓ |
| DKIM Inspectordkim-inspector | Validation | POST /api/v1/tools/dkim-inspector | contract ↓ |
| MX Healthmx-health | Analysis | POST /api/v1/tools/mx-health | contract ↓ |
| MTA-STS & TLS-RPTmta-sts-tlsrpt | Validation | POST /api/v1/tools/mta-sts-tlsrpt | contract ↓ |
| Case Convertercase-converter | Transform | POST /api/v1/tools/case-converter | contract ↓ |
| String Lengthstring-length | Analysis | POST /api/v1/tools/string-length | contract ↓ |
| Text Sortertext-sorter | Transform | POST /api/v1/tools/text-sorter | contract ↓ |
| Readability Scorereadability-score | Analysis | POST /api/v1/tools/readability-score | contract ↓ |
| Lorem Ipsumlorem-generator | Generator | POST /api/v1/tools/lorem-generator | contract ↓ |
| Emoji Searchemojis-search | Lookup | POST /api/v1/tools/emojis-search | contract ↓ |
| Color Convertercolor-converter | Conversion | POST /api/v1/tools/color-converter | contract ↓ |
| Number Base Converternumber-base-converter | Conversion | POST /api/v1/tools/number-base-converter | contract ↓ |
| Credit Card Validatorcredit-card-validator | Validation | POST /api/v1/tools/credit-card-validator | contract ↓ |
| MAC Validatormac-validator | Validation | POST /api/v1/tools/mac-validator | contract ↓ |
| Unix Timestampunix-timestamp | Conversion | POST /api/v1/tools/unix-timestamp | contract ↓ |
| Cron Parsercron-parser | Analysis | POST /api/v1/tools/cron-parser | contract ↓ |
| Date Differencedate-difference | Calculator | POST /api/v1/tools/date-difference | contract ↓ |
| chmod Calculatorchmod-calculator | Calculator | POST /api/v1/tools/chmod-calculator | contract ↓ |
| ULID Generatorulid-generator | Generators | POST /api/v1/tools/ulid-generator | contract ↓ |
| NanoID Generatornanoid-generator | Generators | POST /api/v1/tools/nanoid-generator | contract ↓ |
| cURL to Fetch Convertercurl-to-fetch | Converters | POST /api/v1/tools/curl-to-fetch | contract ↓ |
| JSON Repair & Sanitizerjson-repair | Formatters | POST /api/v1/tools/json-repair | contract ↓ |
| Bcrypt Hash & Comparebcrypt-tester | Security | POST /api/v1/tools/bcrypt-tester | contract ↓ |
| User-Agent Parseruser-agent-parser | Network | POST /api/v1/tools/user-agent-parser | contract ↓ |
| CIDR Subnet Calculatorcidr-calculator | Calculators | POST /api/v1/tools/cidr-calculator | contract ↓ |
| security.txt RFC 9116 Validatorsecurity-txt-validator | Validation | POST /api/v1/tools/security-txt-validator | contract ↓ |
| XML Sitemap Validatorsitemap-validator | Validation | POST /api/v1/tools/sitemap-validator | contract ↓ |
| SemVer Comparatorsemver-comparator | Utilities | POST /api/v1/tools/semver-comparator | contract ↓ |
| URL Tracking Cleanerurl-cleaner | Utilities | POST /api/v1/tools/url-cleaner | contract ↓ |
| Base58 Converterbase58-converter | Converters | POST /api/v1/tools/base58-converter | contract ↓ |
| Hex Dump Viewerhex-viewer | Converters | POST /api/v1/tools/hex-viewer | contract ↓ |
| PEM Certificate Converterpem-converter | Converters | POST /api/v1/tools/pem-converter | contract ↓ |
| BIP-39 Mnemonic Generatorbip39-generator | Generators | POST /api/v1/tools/bip39-generator | contract ↓ |
| Email Warmup Scheduleremail-warmup-calculator | Calculators | POST /api/v1/tools/email-warmup-calculator | contract ↓ |
| Dangling CNAME Takeover Checkerdangling-cname-checker | Security | POST /api/v1/tools/dangling-cname-checker | contract ↓ |
| DNSBL & Spam Blacklist Radardnsbl-radar | Security | POST /api/v1/tools/dnsbl-radar | contract ↓ |
SERVER TOOL CONTRACTS
Base64 Text
base64-textPOST /api/v1/tools/base64-textEncode or decode a UTF-8 string with Base64.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Text to transform (≤ 64 KB) |
| mode | "encode" | "decode" | "encode" | Direction |
curl -X POST https://yas.sh/api/v1/tools/base64-text \
-H "Content-Type: application/json" \
-d '{"input":"hello world","mode":"encode"}'{ "slug": "base64-text", "result": "aGVsbG8gd29ybGQ=", "mode": "encode" }Hash Calculator
hash-calculatorPOST /api/v1/tools/hash-calculatorCryptographic digest of a string.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Text to hash (≤ 64 KB) |
| algo | string | "sha256" | One of md5, sha1, sha256, sha384, sha512 |
curl -X POST https://yas.sh/api/v1/tools/hash-calculator \
-H "Content-Type: application/json" \
-d '{"input":"hello","algo":"md5"}'{ "slug": "hash-calculator", "algo": "md5", "result": "5d41402abc4b2a76b9719d911017c592" }Checksum Calculator
checksumPOST /api/v1/tools/checksumIdentical to hash-calculator (checksum semantics).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Text to checksum (≤ 64 KB) |
| algo | string | "sha256" | md5 | sha1 | sha256 | sha384 | sha512 |
curl -X POST https://yas.sh/api/v1/tools/checksum \
-H "Content-Type: application/json" \
-d '{"input":"hello","algo":"sha1"}'{ "slug": "checksum", "algo": "sha1", "result": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" }UUID Generator
uuid-generatorPOST /api/v1/tools/uuid-generatorGenerate 1–50 random UUIDs (v4).
| Parameter | Type | Default | Description |
|---|---|---|---|
| count | integer | 1 | How many (1–50) |
| version | integer | 4 | 4 (random) or 7 (time-ordered) |
curl -X POST https://yas.sh/api/v1/tools/uuid-generator \
-H "Content-Type: application/json" \
-d '{"count":2,"version":4}'{ "slug": "uuid-generator", "count": 2, "version": 4, "result": ["<uuid>", "<uuid>"] }URL Encoder
url-encoderPOST /api/v1/tools/url-encoderPercent-encode / percent-decode a string.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Text or URL fragment |
| mode | "encode" | "decode" | "encode" | Direction |
curl -X POST https://yas.sh/api/v1/tools/url-encoder \
-H "Content-Type: application/json" \
-d '{"input":"a b&c=d","mode":"encode"}'{ "slug": "url-encoder", "result": "a%20b%26c%3Dd", "mode": "encode" }Case Converter
case-converterPOST /api/v1/tools/case-converterConvert text between naming conventions.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Source text |
| mode | string | "upper" | upper | lower | title | camel | pascal | snake | kebab |
curl -X POST https://yas.sh/api/v1/tools/case-converter \
-H "Content-Type: application/json" \
-d '{"input":"hello world","mode":"kebab"}'{ "slug": "case-converter", "result": "hello-world", "mode": "kebab" }HTML Escape
html-escapePOST /api/v1/tools/html-escapeEscape or unescape HTML entities (& < > " ').
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | HTML or plain text |
| mode | "encode" | "decode" | "encode" | Direction |
curl -X POST https://yas.sh/api/v1/tools/html-escape \
-H "Content-Type: application/json" \
-d '{"input":"<b>hi</b>","mode":"encode"}'{ "slug": "html-escape", "result": "<b>hi</b>", "mode": "encode" }String Length
string-lengthPOST /api/v1/tools/string-lengthCount characters (code points), bytes, words and lines.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Any text |
curl -X POST https://yas.sh/api/v1/tools/string-length \
-H "Content-Type: application/json" \
-d '{"input":"héllo\nworld"}'{ "slug": "string-length", "result": { "chars": 11, "bytes": 12, "words": 2, "lines": 2 } }JSON Validator
json-validatorPOST /api/v1/tools/json-validatorValidate JSON syntax; returns the parser error if invalid.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | JSON text |
curl -X POST https://yas.sh/api/v1/tools/json-validator \
-H "Content-Type: application/json" \
-d '{"input":"{\"a\":}"}'{ "slug": "json-validator", "valid": false, "error": "..." }JSON Formatter
json-formatterPOST /api/v1/tools/json-formatterBeautify (2-space indent) or minify JSON.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | JSON text |
| mode | "beautify" | "minify" | "beautify" | Direction |
curl -X POST https://yas.sh/api/v1/tools/json-formatter \
-H "Content-Type: application/json" \
-d '{"input":"{\"a\":1,\"b\":[2,3]}","mode":"minify"}'{ "slug": "json-formatter", "result": "{\"a\":1,\"b\":[2,3]}", "mode": "minify" }Password Generator
password-generatorPOST /api/v1/tools/password-generatorCSPRNG passwords, 8–128 chars, optional alnum-only sets.
| Parameter | Type | Default | Description |
|---|---|---|---|
| length | integer | 20 | 8–128 |
| count | integer | 1 | 1–10 passwords |
| mode | "full" | "alnum" | "full" | Charset (full includes symbols, unambiguous alnum) |
curl -X POST https://yas.sh/api/v1/tools/password-generator \
-H "Content-Type: application/json" \
-d '{"length":24,"count":1}'{ "slug": "password-generator", "length": 24, "result": "<password>" }Random String
random-stringPOST /api/v1/tools/random-stringRandom string from a named charset.
| Parameter | Type | Default | Description |
|---|---|---|---|
| length | integer | 16 | 1–256 |
| mode | string | "alnum" | alnum | alpha | numeric | hex |
curl -X POST https://yas.sh/api/v1/tools/random-string \
-H "Content-Type: application/json" \
-d '{"length":32,"mode":"hex"}'{ "slug": "random-string", "length": 32, "charset": "hex", "result": "<hex>" }Unix Timestamp
unix-timestampPOST /api/v1/tools/unix-timestampConvert a unix timestamp (s/ms) ↔ ISO/UTC date.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | e.g. 1754500000, 1754500000000, or an ISO date (blank = now) |
curl -X POST https://yas.sh/api/v1/tools/unix-timestamp \
-H "Content-Type: application/json" \
-d '{"input":"1754500000"}'{ "slug": "unix-timestamp", "result": { "unix": 1754500000, "iso": "2025-08-06T18:26:40.000Z", "utc": "..." } }JWT Decoder
jwt-decoderPOST /api/v1/tools/jwt-decoderDecode a JWT header & payload (NO signature verification — explicitly flagged).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | The 3-segment token |
curl -X POST https://yas.sh/api/v1/tools/jwt-decoder \
-H "Content-Type: application/json" \
-d '{"input":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.sig"}'{ "slug": "jwt-decoder", "result": { "header": {...}, "payload": {...} }, "warning": "Decoded WITHOUT signature verification" }Regex Tester
regex-testerPOST /api/v1/tools/regex-testerTest a regex against a string (ReDoS-guarded, max 100 matches).
| Parameter | Type | Default | Description |
|---|---|---|---|
| pattern* | string | — | ≤ 500 chars; nested-quantifier patterns rejected |
| text* | string | — | Test string (≤ 10 KB) |
| flags | string | "g" | Subset of d g i m s u v y |
curl -X POST https://yas.sh/api/v1/tools/regex-tester \
-H "Content-Type: application/json" \
-d '{"pattern":"(\\w+)@(\\w+)","text":"hello there world","flags":"g"}'{ "slug": "regex-tester", "count": 2, "truncated": false, "result": [{ "match": "o t", "index": 4 }, ...] }IP Validator
ip-validatorPOST /api/v1/tools/ip-validatorValidate IPv4 / IPv6 addresses.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | e.g. 192.168.1.1 or ::1 |
curl -X POST https://yas.sh/api/v1/tools/ip-validator \
-H "Content-Type: application/json" \
-d '{"input":"192.168.1.1"}'{ "slug": "ip-validator", "result": { "input": "192.168.1.1", "valid": true, "version": 4 } }MAC Validator
mac-validatorPOST /api/v1/tools/mac-validatorValidate MAC addresses (colon/hyphen/plain forms).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | e.g. 00:1B:44:11:3A:B7 |
curl -X POST https://yas.sh/api/v1/tools/mac-validator \
-H "Content-Type: application/json" \
-d '{"input":"00:1B:44:11:3A:B7"}'{ "slug": "mac-validator", "result": { "input": "00:1B:44:11:3A:B7", "valid": true } }Credit Card Validator
credit-card-validatorPOST /api/v1/tools/credit-card-validatorLuhn checksum + scheme detection (NOT an existence check).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Digits; spaces/dashes tolerated |
curl -X POST https://yas.sh/api/v1/tools/credit-card-validator \
-H "Content-Type: application/json" \
-d '{"input":"4242 4242 4242 4242"}'{ "slug": "credit-card-validator", "result": { "valid": true, "scheme": "visa", "note": "Luhn checksum only" } }Lorem Ipsum
lorem-generatorPOST /api/v1/tools/lorem-generator1–10 paragraphs of lorem ipsum.
| Parameter | Type | Default | Description |
|---|---|---|---|
| count | integer | 3 | Paragraphs (1–10) |
curl -X POST https://yas.sh/api/v1/tools/lorem-generator \
-H "Content-Type: application/json" \
-d '{"count":1}'{ "slug": "lorem-generator", "paragraphs": 1, "result": "Lorem ipsum ..." }QR Generator
qr-generatorPOST /api/v1/tools/qr-generatorRender a QR code for an http/https URL as a PNG data-URL.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | http/https URL (≤ 2048 chars) |
| size | integer | 512 | 128–1024 px |
curl -X POST https://yas.sh/api/v1/tools/qr-generator \
-H "Content-Type: application/json" \
-d '{"input":"https://yas.sh","size":256}'{ "slug": "qr-generator", "result": "data:image/png;base64,..." }UTM Builder
utm-builderPOST /api/v1/tools/utm-builderAppend UTM parameters to a base URL.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Base http/https URL |
| params.utm_source | string | — | ≤ 200 chars |
| params.utm_medium | string | — | ≤ 200 chars |
| params.utm_campaign | string | — | ≤ 200 chars |
| params.utm_term | string | — | ≤ 200 chars |
| params.utm_content | string | — | ≤ 200 chars |
curl -X POST https://yas.sh/api/v1/tools/utm-builder \
-H "Content-Type: application/json" \
-d '{"input":"https://yas.sh/pricing","params":{"utm_source":"newsletter","utm_medium":"email","utm_campaign":"launch"}}'{ "slug": "utm-builder", "result": "https://yas.sh/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=launch" }Text Comparison
text-diffPOST /api/v1/tools/text-diffLine-based diff (LCS) between two texts (≤ 2,000 lines each).
| Parameter | Type | Default | Description |
|---|---|---|---|
| a* | string | — | Left text (≤ 50 KB) |
| b* | string | — | Right text (≤ 50 KB) |
curl -X POST https://yas.sh/api/v1/tools/text-diff \
-H "Content-Type: application/json" \
-d '{"a":"one\ntwo","b":"one\nthree"}'{ "slug": "text-diff", "added": 1, "removed": 1, "unchanged": 1, "result": [{ "op": " ", "line": "one" }, ...] }My IP (plain)
ipPOST /api/v1/tools/ipYour public IP address and nothing else — also available as plain text via GET.
| Parameter | Type | Default | Description |
|---|---|---|---|
| ip | string | — | Optional specific IP to look up (defaults to your own). |
curl -X POST https://yas.sh/api/v1/tools/ip \
-H "Content-Type: application/json" \
-d '{}'{ "slug": "ip", "result": "8.8.8.8" } // GET returns bare text: 8.8.8.8What Is My IP
what-is-my-ipPOST /api/v1/tools/what-is-my-ipYour public IP with ASN, ISP, geo and VPN/Tor hints (ipinfo-style). No key needed.
| Parameter | Type | Default | Description |
|---|---|---|---|
| ip | string | — | Optional specific IP to look up (defaults to your own via X-Real-IP / X-Forwarded-For). Also supported as ?ip= on GET. |
curl -X POST https://yas.sh/api/v1/tools/what-is-my-ip \
-H "Content-Type: application/json" \
-d '{}'{ "result": { "ip": "1.2.3.4", "ipv4": "1.2.3.4", "asn": "AS13335", "asName": "Cloudflare", "org": "Cloudflare", "city": "Lisbon", "region": "Lisbon", "country": "PT", "loc": "38.7167,-9.1333", "timezone": "Europe/Lisbon", "isVpn": null, "isTor": null } }DNS Lookup
dns-lookupPOST /api/v1/tools/dns-lookupResolve A, AAAA, MX, TXT, NS, CNAME, SOA records for a domain (TTLs included).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Domain, e.g. example.com (no scheme, no IP literals) |
| type | string | "all" | all | A | AAAA | MX | TXT | NS | CNAME | SOA |
curl -X POST https://yas.sh/api/v1/tools/dns-lookup \
-H "Content-Type: application/json" \
-d '{"input":"yas.sh"}'{ "result": { "domain": "yas.sh", "A": [{ "address": "93.184.216.34", "ttl": 300 }], "MX": [{ "priority": 10, "exchange": "mx1.example.com" }], ... } }IP Subnet Calculator
ip-subnet-calculatorPOST /api/v1/tools/ip-subnet-calculatorIPv4 CIDR math: network, broadcast, netmask, usable hosts.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | CIDR, e.g. 192.168.1.0/24 |
curl -X POST https://yas.sh/api/v1/tools/ip-subnet-calculator \
-H "Content-Type: application/json" \
-d '{"input":"192.168.1.0/24"}'{ "result": { "valid": true, "network": "192.168.1.0", "broadcast": "192.168.1.255", "mask": "255.255.255.0", "hosts": 254, "prefix": 24 } }TLS Analyzer
tls-analyzerPOST /api/v1/tools/tls-analyzerFull TLS audit of a host: cert chain, expiry, SANs, protocol, cipher, OCSP stapling + HSTS header.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Hostname, e.g. yas.sh (host:port form allowed) |
| port | integer | 443 | TLS port (1–65535). Also accepted as host:8443. |
curl -X POST https://yas.sh/api/v1/tools/tls-analyzer \
-H "Content-Type: application/json" \
-d '{"input":"yas.sh"}'{ "result": { "authorized": true, "expiresInDays": 89, "sans": [...], "hsts": { "present": true, "maxAge": 63072000, "includeSubDomains": true, "preload": true }, ... } }DANE / TLSA
dane-tlsaPOST /api/v1/tools/dane-tlsaValidate DANE TLSA records (_port._tcp.domain) against the live TLS certificate.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Hostname, e.g. example.com |
| port | integer | 443 | Service port (default 443) |
| proto | string | "tcp" | tcp | udp |
curl -X POST https://yas.sh/api/v1/tools/dane-tlsa \
-H "Content-Type: application/json" \
-d '{"input":"example.com","port":443,"proto":"tcp"}'{ "result": { "records": [{ "raw": "3 1 1 abc...", "usage": 3, "selector": 1, "matchingType": 1, "match": true }], "cert": { "subject": "...", "expiresInDays": 120 } } }SPF Inspector
spf-inspectorPOST /api/v1/tools/spf-inspectorParse SPF (v=spf1): mechanisms, DNS-lookup count vs the 10 limit, ~all/-all, flattened IP count.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Domain, e.g. example.com |
curl -X POST https://yas.sh/api/v1/tools/spf-inspector \
-H "Content-Type: application/json" \
-d '{"input":"example.com"}'{ "result": { "record": "v=spf1 ip4:1.2.3.4 include:_spf.example.com ~all", "lookupCount": 2, "lookupLimit": 10, "hasAll": true, "allValue": "~all", "permError": false, "flattenedIps": 6, "tree": [...] } }DMARC Inspector
dmarc-inspectorPOST /api/v1/tools/dmarc-inspectorFetch and validate _dmarc.<domain> TXT: policy badge, alignment, pct, rua/ruf.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Domain, e.g. example.com |
curl -X POST https://yas.sh/api/v1/tools/dmarc-inspector \
-H "Content-Type: application/json" \
-d '{"input":"example.com"}'{ "result": { "found": true, "record": "v=DMARC1; p=reject; rua=mailto:dmarc@example.com", "policy": "reject", "subdomainPolicy": null, "pct": 100, "adkim": "r", "aspf": "r", "rua": ["dmarc@example.com"], "valid": true, "issues": [] } }DKIM Inspector
dkim-inspectorPOST /api/v1/tools/dkim-inspectorValidate <selector>._domainkey.<domain> TXT: v=DKIM1, k=rsa, key length, t= flags.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Domain, e.g. example.com |
| selector | string | "selector1" | DKIM selector |
curl -X POST https://yas.sh/api/v1/tools/dkim-inspector \
-H "Content-Type: application/json" \
-d '{"input":"example.com","selector":"selector1"}'{ "result": { "found": true, "record": "v=DKIM1; k=rsa; p=MIIB...", "keyLength": 2048, "flags": [], "valid": true } }MX Health
mx-healthPOST /api/v1/tools/mx-healthMX audit: priorities, A/AAAA resolution, STARTTLS-era port-25 probe, null MX (RFC 7505), duplicates.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Domain, e.g. example.com |
curl -X POST https://yas.sh/api/v1/tools/mx-health \
-H "Content-Type: application/json" \
-d '{"input":"example.com"}'{ "result": { "nullMx": false, "hosts": [{ "preference": 10, "exchange": "mx1.example.com", "ips": ["93.184.216.34"], "port25": { "open": true } }], "duplicatePriorities": [], "issues": [] } }MTA-STS & TLS-RPT
mta-sts-tlsrptPOST /api/v1/tools/mta-sts-tlsrptMTA-STS (mta-sts TXT + /.well-known/mta-sts.txt) and TLS-RPT (_smtp._tls TXT) validation.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Domain, e.g. example.com |
curl -X POST https://yas.sh/api/v1/tools/mta-sts-tlsrpt \
-H "Content-Type: application/json" \
-d '{"input":"example.com"}'{ "result": { "stsTxt": { "found": true, "id": "20260808", "valid": true }, "policy": { "found": true, "mode": "enforce", "maxAge": 86400, "mx": ["mx1.example.com"] }, "tlsrpt": { "found": true, "rua": ["tlsrpt@example.com"] }, "issues": [] } }URL Parser
url-parserPOST /api/v1/tools/url-parserSplit any URL into protocol, auth, host, port, path, query (parsed), hash + origin.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Any URL |
curl -X POST https://yas.sh/api/v1/tools/url-parser \
-H "Content-Type: application/json" \
-d '{"input":"https://user:pass@example.com:8443/a/b?q=1#frag"}'{ "result": { "protocol": "https:", "host": "example.com:8443", "hostname": "example.com", "port": "8443", "pathname": "/a/b", "query": { "q": "1" }, "hash": "#frag", "origin": "https://example.com:8443" } }HTTP Status Codes
http-status-codesPOST /api/v1/tools/http-status-codesLook up HTTP status codes by number or by searching names/classes.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | e.g. 404, or text like "gone" / "2xx" |
curl -X POST https://yas.sh/api/v1/tools/http-status-codes \
-H "Content-Type: application/json" \
-d '{"input":"404"}'{ "result": { "match": { "code": 404, "name": "Not Found", "class": "4xx Client Error", "meaning": "...", "useWhen": "..." } } }Cron Parser
cron-parserPOST /api/v1/tools/cron-parserParse a 5/6-field cron expression and compute the next 5 run times (UTC).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Cron expression, e.g. */15 * * * * |
| count | integer | 5 | 1–10 next runs |
curl -X POST https://yas.sh/api/v1/tools/cron-parser \
-H "Content-Type: application/json" \
-d '{"input":"*/15 * * * *"}'{ "result": { "valid": true, "expression": "*/15 * * * *", "next": ["2026-08-08T12:15:00.000Z", ...] } }Color Converter
color-converterPOST /api/v1/tools/color-converterConvert a color to HEX / RGB / HSL / CMYK / HSV + WCAG contrast ratios.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | #hex, rgb(), hsl(), or basic color name |
curl -X POST https://yas.sh/api/v1/tools/color-converter \
-H "Content-Type: application/json" \
-d '{"input":"#6366f1"}'{ "result": { "hex": "#6366f1", "rgb": "rgb(99, 102, 241)", "hsl": "hsl(239, 84%, 67%)", "contrastWhite": 4.87, "bestText": "white" } }Number Base Converter
number-base-converterPOST /api/v1/tools/number-base-converterConvert numbers between bases 2–36 (BigInt, arbitrary precision).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Value in the source base |
| from | integer | 10 | Source base (2–36) |
| to | integer | 16 | Target base (2–36) |
curl -X POST https://yas.sh/api/v1/tools/number-base-converter \
-H "Content-Type: application/json" \
-d '{"input":"255","from":10,"to":16}'{ "result": { "input": "255", "from": 10, "to": 16, "value": "ff" } }Markdown → HTML
markdown-to-htmlPOST /api/v1/tools/markdown-to-htmlRender Markdown to sanitized HTML (marked + sanitize-html allow-list, XSS-safe).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Markdown (≤ 64 KB) |
curl -X POST https://yas.sh/api/v1/tools/markdown-to-html \
-H "Content-Type: application/json" \
-d '{"input":"# Hello\n\n**bold**"}'{ "result": "<h1>Hello</h1>\n<p><strong>bold</strong></p>" }CSV → JSON
csv-to-jsonPOST /api/v1/tools/csv-to-jsonParse CSV (quoted fields, headers) into a JSON array.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | CSV text (≤ 64 KB, ≤ 5,000 rows) |
| delimiter | string | "," | Field delimiter |
| hasHeader | boolean | true | First row = keys |
curl -X POST https://yas.sh/api/v1/tools/csv-to-json \
-H "Content-Type: application/json" \
-d '{"input":"name,age\nAnna,30\nBob,25"}'{ "result": { "rows": [{ "name": "Anna", "age": "30" }], "count": 2, "columns": ["name", "age"] } }Slug Generator
slug-generatorPOST /api/v1/tools/slug-generatorTurn any text into a URL-safe slug (transliterates Latin accents).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Source text |
| separator | string | "-" | Word separator |
| maxLength | integer | 80 | Output cap |
curl -X POST https://yas.sh/api/v1/tools/slug-generator \
-H "Content-Type: application/json" \
-d '{"input":"Hello, World! 2026"}'{ "result": "hello-world-2026" }Text Sorter
text-sorterPOST /api/v1/tools/text-sorterSort lines ascending / descending / natural, dedupe, or shuffle (CSPRNG).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Multi-line text |
| mode | string | "asc" | asc | desc | natural | unique | shuffle |
curl -X POST https://yas.sh/api/v1/tools/text-sorter \
-H "Content-Type: application/json" \
-d '{"input":"b\na\nc","mode":"asc"}'{ "result": "a\nb\nc" }Readability Score
readability-scorePOST /api/v1/tools/readability-scoreFlesch Reading Ease + Flesch-Kincaid grade level + sentence/word stats.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Any English text |
curl -X POST https://yas.sh/api/v1/tools/readability-score \
-H "Content-Type: application/json" \
-d '{"input":"The quick brown fox jumps over the lazy dog."}'{ "result": { "sentences": 1, "words": 9, "syllables": 11, "fleschReadingEase": 70.2, "gradeLevel": 6.2 } }chmod Calculator
chmod-calculatorPOST /api/v1/tools/chmod-calculatorConvert between numeric (755) and symbolic (u=rwx,go=rx) permission modes, incl. special bits.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | e.g. 755, 4755, u=rwx,go=rx, or a+rwx |
curl -X POST https://yas.sh/api/v1/tools/chmod-calculator \
-H "Content-Type: application/json" \
-d '{"input":"755"}'{ "result": { "input": "755", "numeric": "755", "symbolic": "u=rwx,go=rx", "special": "none", "bits": { "owner": "rwx", "group": "r-x", "other": "r-x" } } }Date Difference
date-differencePOST /api/v1/tools/date-differenceDifference between two dates: years/months/days/hours/minutes/seconds + business days.
| Parameter | Type | Default | Description |
|---|---|---|---|
| a* | string | — | Date 1 (ISO or unix seconds) |
| b* | string | — | Date 2 (ISO or unix seconds) |
curl -X POST https://yas.sh/api/v1/tools/date-difference \
-H "Content-Type: application/json" \
-d '{"a":"2026-01-01","b":"2026-08-08"}'{ "result": { "milliseconds": ..., "days": 219, "weeks": 31, "businessDays": 156, "yearsApprox": 0.6 } }Password Strength
password-strengthPOST /api/v1/tools/password-strengthEntropy estimate, crack-time (fast hash & bcrypt), and actionable feedback (zxcvbn-flavored).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Password to evaluate |
curl -X POST https://yas.sh/api/v1/tools/password-strength \
-H "Content-Type: application/json" \
-d '{"input":"Tr0ub4dor&3"}'{ "result": { "score": 3, "length": 11, "entropyBits": 58.4, "crackFast": "4 days", "crackBcrypt": "102k years", "feedback": ["..."] } }RDAP / WHOIS Lookup
rdap-lookupPOST /api/v1/tools/rdap-lookupRegistry data for a domain via RDAP (registrar, dates, nameservers).
| Parameter | Type | Default | Description |
|---|---|---|---|
| domain* | string | — | Domain, e.g. example.com |
curl -X POST https://yas.sh/api/v1/tools/rdap-lookup \
-H "Content-Type: application/json" \
-d '{"domain":"example.com"}'{ "domain": "example.com", "registrar": "RESERVED-Internet Assigned Numbers Authority", "creationDate": "...", "expiry": "...", "nameservers": [...] }Reverse DNS Lookup
reverse-dnsPOST /api/v1/tools/reverse-dnsPTR lookup — find hostnames for an IP.
| Parameter | Type | Default | Description |
|---|---|---|---|
| ip* | string | — | IPv4 or IPv6 address |
| max | integer | 5 | Max results (1–20) |
curl -X POST https://yas.sh/api/v1/tools/reverse-dns \
-H "Content-Type: application/json" \
-d '{"ip":"8.8.8.8"}'{ "ip": "8.8.8.8", "result": ["dns.google"] }DNSSEC Check
dnssec-checkPOST /api/v1/tools/dnssec-checkVerify whether a domain has DNSSEC (DNSKEY records via Google DoH).
| Parameter | Type | Default | Description |
|---|---|---|---|
| domain* | string | — | Domain, e.g. example.com |
curl -X POST https://yas.sh/api/v1/tools/dnssec-check \
-H "Content-Type: application/json" \
-d '{"domain":"yas.sh"}'{ "domain": "yas.sh", "dnssec": true, "zoneSigningKeys": 1, "keySigningKeys": 1, "status": "SIGNED" }HTTP Header Viewer
http-header-viewerPOST /api/v1/tools/http-header-viewerSend a HEAD/GET to a URL and return sanitized response headers.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | http/https URL |
curl -X POST https://yas.sh/api/v1/tools/http-header-viewer \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'{ "url": "https://example.com", "status": 200, "headers": { "content-type": "text/html", ... } }Redirect Tracer
redirect-tracerPOST /api/v1/tools/redirect-tracerFollow an HTTP redirect chain and report each hop's status and URL.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | http/https URL |
curl -X POST https://yas.sh/api/v1/tools/redirect-tracer \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'{ "hops": [{ "hop":1, "status":302, "url":"...", "location":"..." }], "finalUrl": "...", "finalStatus": 200, "redirectCount": 1 }Link Checker
link-checkerPOST /api/v1/tools/link-checkerCheck URL reachability, HTTP status code, response time, and redirect chain.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | Target http/https URL |
curl -X POST https://yas.sh/api/v1/tools/link-checker \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'{ "url": "https://example.com", "finalUrl": "https://example.com", "reachable": true, "healthy": true, "status": 200, "statusText": "OK", "responseTimeMs": 120, "redirectCount": 0 }SSL Certificate Expiry
ssl-expiryPOST /api/v1/tools/ssl-expiryDays until a host's TLS certificate expires (live handshake).
| Parameter | Type | Default | Description |
|---|---|---|---|
| host* | string | — | Hostname, e.g. yas.sh |
| port | integer | 443 | TLS port |
curl -X POST https://yas.sh/api/v1/tools/ssl-expiry \
-H "Content-Type: application/json" \
-d '{"host":"yas.sh"}'{ "host": "yas.sh", "daysLeft": 87, "notAfter": "...", "issuedBy": "...", "isExpired": false, "expiringSoon": false }Passphrase Generator
passphrase-generatorPOST /api/v1/tools/passphrase-generatorDiceware-style word passphrases with an entropy estimate.
| Parameter | Type | Default | Description |
|---|---|---|---|
| words | integer | 6 | Word count (3–12) |
| separator | string | - | Separator between words |
curl -X POST https://yas.sh/api/v1/tools/passphrase-generator \
-H "Content-Type: application/json" \
-d '{"words":6}'{ "wordCount": 6, "entropyBits": 78.2, "result": "maple-saturn-quill..." }JWT Encode / Sign
jwt-encodePOST /api/v1/tools/jwt-encodeBuild and sign a JWT (HS256) from header + payload + secret.
| Parameter | Type | Default | Description |
|---|---|---|---|
| payload* | object | — | JWT claims (object or JSON string) |
| secret* | string | — | HMAC signing secret |
curl -X POST https://yas.sh/api/v1/tools/jwt-encode \
-H "Content-Type: application/json" \
-d '{"payload":{"sub":"123","name":"Yas"},"secret":"your-secret"}'{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "alg": "HS256" }HMAC Generator
hmac-generatorPOST /api/v1/tools/hmac-generatorCompute HMAC-SHA1/256/384/512 for a message and key.
| Parameter | Type | Default | Description |
|---|---|---|---|
| message* | string | — | Message |
| key* | string | — | Secret key |
| algorithm | string | sha256 | sha1 | sha256 | sha384 | sha512 |
curl -X POST https://yas.sh/api/v1/tools/hmac-generator \
-H "Content-Type: application/json" \
-d '{"message":"hello","key":"secret","algorithm":"sha256"}'{ "algorithm": "sha256", "hex": "2cf24dba5fb0a30e...", "base64": "LPI..." }TOTP Generator
totp-generatorPOST /api/v1/tools/totp-generatorGenerate the current 6-digit TOTP code from a base32 secret.
| Parameter | Type | Default | Description |
|---|---|---|---|
| secret* | string | — | Base32 TOTP secret |
curl -X POST https://yas.sh/api/v1/tools/totp-generator \
-H "Content-Type: application/json" \
-d '{"secret":"JBSWY3DPEHPK3PXP"}'{ "secret": "JBSWY3DPEHPK3PXP", "code": "123456", "secondsRemaining": 12, "period": 30 }SSH Key Fingerprint
ssh-key-fingerprintPOST /api/v1/tools/ssh-key-fingerprintShow type, bits and SHA256/SHA1 fingerprint of an OpenSSH public key.
| Parameter | Type | Default | Description |
|---|---|---|---|
| key* | string | — | OpenSSH public key (ssh-rsa AAAA...) |
curl -X POST https://yas.sh/api/v1/tools/ssh-key-fingerprint \
-H "Content-Type: application/json" \
-d '{"key":"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK3eyDY2BNmjqbvypHC8t9Pj99+8QZoE75QHMh4vYfku yas-example"}'{ "type": "ssh-ed25519", "bits": 256, "fingerprint": { "sha256": "SHA256:...", "sha1": "..." }, "comment": "yas-example" }Certificate Info
public-key-infoPOST /api/v1/tools/public-key-infoDecode a PEM X.509 TLS certificate.
| Parameter | Type | Default | Description |
|---|---|---|---|
| pem* | string | — | PEM-encoded certificate |
curl -X POST https://yas.sh/api/v1/tools/public-key-info \
-H "Content-Type: application/json" \
-d '{"pem":"-----BEGIN CERTIFICATE-----\nMIIDPzCCAiegAwIBAgIUFROGZxKVcppGcj4z4zgwVLlXZsswDQYJKoZIhvcNAQEL\nBQAwLzEXMBUGA1UEAwwOZXhhbXBsZS55YXMuc2gxFDASBgNVBAoMC1lBUyBFeGFt\ncGxlMB4XDTI2MDgxNjA5NDIxNloXDTI3MDgxNjA5NDIxNlowLzEXMBUGA1UEAwwO\nZXhhbXBsZS55YXMuc2gxFDASBgNVBAoMC1lBUyBFeGFtcGxlMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0cup17jicv9ioKZcYH3eROjxX3RT3FYtceK+\nXoO70jMOJFS2gLomGHmrwB8S+4Efhws787dQj8AbhYdUkiKFSLxKXyIrXcAjSQ/J\nkfQjxW2HPbTRGeDp6rAACWXxKDKZOA8KqAzTd6v1nkFyW1KbOTCTtNGr4OHz7JBR\negQRUvUiuGJ5l1Wa/2yLEhl90T8QuhJH/JNYoR1RYay1LiN2lMeyZ1j19jOsH5Et\nw33DX25Od77j9G3rew/Up3EPus4o4uBbmod6b4wCFK0MVg+dL+SwwdqBvstvpJwj\nbcFVt14Iigeynd3+IbM6zcJ3XYGVByiDXyVEc9YXYAqA+e2DqwIDAQABo1MwUTAd\nBgNVHQ4EFgQUhi0sY1RjLsBQdUZjxd2rRvswGUowHwYDVR0jBBgwFoAUhi0sY1Rj\nLsBQdUZjxd2rRvswGUowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAQv81fsF3iER517ed0yNrhU8QeTgsFMtodWXauKbvBxBlmdOA/fv0Acl467qx\n04W5zLqFn5diDHHFvzol4HzVRZi0jV7Mr4LsqYXrEN8SJET/VCA8RJxj8WBoUkD+\ndtIlDR7ciLGKbU3l077Y11wiglMElWD9Ne+u5Q2wrA3EfkUP1dbapHn0buH5D/xt\nN1PDzS7funBvQ5wnupHhqDJATJqVa83RK99fNm7eUpegnP+rmVrOcVnQjDldlMNb\nbIFoHxpopEgLIcQpZaBhl6sKeKhxMWcxDhwVMsW+XZh4z+hFRisa70DxYykfOnEY\nFfabtY8iTCPoJQLrRB6brGtEFw==\n-----END CERTIFICATE-----"}'{ "subject": "CN=example.yas.sh", "issuer": "CN=example.yas.sh", "validFrom": "...", "validTo": "...", "fingerprint256": "..." }RSA Key Generator
rsa-generatorPOST /api/v1/tools/rsa-generatorGenerate an RSA keypair (educational).
| Parameter | Type | Default | Description |
|---|---|---|---|
| bits | integer | 2048 | 1024–4096 |
curl -X POST https://yas.sh/api/v1/tools/rsa-generator \
-H "Content-Type: application/json" \
-d '{"bits":2048}'{ "bits": 2048, "publicKey": "-----BEGIN PUBLIC KEY-----...", "privateKey": "-----BEGIN PRIVATE KEY-----..." }YAML / JSON Converter
yaml-jsonPOST /api/v1/tools/yaml-jsonConvert between YAML and JSON (mode: to-json | to-yaml).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | YAML or JSON text |
| mode | string | to-json | to-json | to-yaml |
curl -X POST https://yas.sh/api/v1/tools/yaml-json \
-H "Content-Type: application/json" \
-d '{"input":"name: Jane\nage: 30","mode":"to-json"}'{ "result": { "name": "Jane", "age": 30 }, "mode": "to-json" }TOML / JSON Converter
toml-jsonPOST /api/v1/tools/toml-jsonConvert between TOML and JSON (mode: to-json | to-toml).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | TOML or JSON text |
| mode | string | to-json | to-json | to-toml |
curl -X POST https://yas.sh/api/v1/tools/toml-json \
-H "Content-Type: application/json" \
-d '{"input":"name = \"Jane\"\nage = 30","mode":"to-json"}'{ "result": { "name": "Jane", "age": 30 }, "mode": "to-json" }JSON → TypeScript
json-to-tsPOST /api/v1/tools/json-to-tsGenerate TypeScript interfaces from a JSON object.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | JSON object |
| name | string | Root | Interface name |
curl -X POST https://yas.sh/api/v1/tools/json-to-ts \
-H "Content-Type: application/json" \
-d '{"input":"{\"name\":\"Jane\",\"age\":30}","name":"User"}'{ "result": "interface User {\n name: string;\n age: number;\n}", "interfaceName": "User" }HTML → Markdown
html-to-markdownPOST /api/v1/tools/html-to-markdownConvert simple HTML into Markdown.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | HTML text |
curl -X POST https://yas.sh/api/v1/tools/html-to-markdown \
-H "Content-Type: application/json" \
-d '{"input":"<h1>Title</h1><p>Hello</p>"}'{ "result": "# Title\n\nHello\n\n" }CSS Minifier
css-minifierPOST /api/v1/tools/css-minifierMinify or beautify CSS (mode: minify | beautify).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | CSS text |
| mode | string | minify | minify | beautify |
curl -X POST https://yas.sh/api/v1/tools/css-minifier \
-H "Content-Type: application/json" \
-d '{"input":"body { color: red; }","mode":"minify"}'{ "result": "body{color:red}", "mode": "minify", "savings": 9 }Base64 URL Encode
base64-urlPOST /api/v1/tools/base64-urlEncode/decode using URL-safe Base64 (base64url).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Text |
| mode | string | encode | encode | decode |
curl -X POST https://yas.sh/api/v1/tools/base64-url \
-H "Content-Type: application/json" \
-d '{"input":"hello world","mode":"encode"}'{ "result": "aGVsbG8gd29ybGQ", "mode": "encode" }JSON-LD Validator
json-ld-validatorPOST /api/v1/tools/json-ld-validatorValidate JSON-LD structured data (context, type).
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | JSON-LD text |
curl -X POST https://yas.sh/api/v1/tools/json-ld-validator \
-H "Content-Type: application/json" \
-d '{"input":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\"}"}'{ "valid": true, "types": ["Article"], "errors": [], "warnings": [...] }URL Expander
url-expanderPOST /api/v1/tools/url-expanderDecode and dissect a URL into parts and query parameters.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | http/https URL |
curl -X POST https://yas.sh/api/v1/tools/url-expander \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/a?x=1#top"}'{ "protocol": "https:", "host": "example.com", "pathname": "/a", "queryParams": [{ "key":"x","value":"1" }], "hash": "#top" }Query String Builder
query-string-builderPOST /api/v1/tools/query-string-builderBuild a URL with query parameters safely.
| Parameter | Type | Default | Description |
|---|---|---|---|
| base* | string | — | Base URL |
| params | object | — | Query params to append |
curl -X POST https://yas.sh/api/v1/tools/query-string-builder \
-H "Content-Type: application/json" \
-d '{"base":"https://example.com","params":{"a":"1","b":"2"}}'{ "result": "https://example.com/?a=1&b=2", "paramsAdded": 2 }Canonical Checker
canonical-checkerPOST /api/v1/tools/canonical-checkerCheck a page's canonical link, robots meta, and title.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | http/https URL |
curl -X POST https://yas.sh/api/v1/tools/canonical-checker \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/page"}'{ "title": "...", "canonical": "...", "noindex": false, "nofollow": false }robots.txt Viewer
robots-txt-viewerPOST /api/v1/tools/robots-txt-viewerFetch and parse a site's robots.txt rules.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | Site URL (origin) |
curl -X POST https://yas.sh/api/v1/tools/robots-txt-viewer \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'{ "origin": "https://example.com", "status": 200, "rules": [{ "userAgent": "*", "allow":[], "disallow":["/admin"] }], "sitemaps": [...] }Favicon Finder
favicon-finderPOST /api/v1/tools/favicon-finderLocate a site's favicon URL(s).
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | Site URL |
curl -X POST https://yas.sh/api/v1/tools/favicon-finder \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'{ "origin": "https://example.com", "pageStatus": 200, "icons": ["https://example.com/favicon.ico"] }Open Graph Preview
open-graph-previewPOST /api/v1/tools/open-graph-previewFetch a URL and show its Open Graph / Twitter meta as a preview card.
| Parameter | Type | Default | Description |
|---|---|---|---|
| url* | string | — | http/https URL |
curl -X POST https://yas.sh/api/v1/tools/open-graph-preview \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'{ "pageUrl": "...", "openGraph": { "title":"...", "image":"..." }, "twitter": {...}, "fallbackTitle": "..." }Regex Escaper
regex-escaperPOST /api/v1/tools/regex-escaperEscape a literal string to be regex-safe.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Text to escape |
curl -X POST https://yas.sh/api/v1/tools/regex-escaper \
-H "Content-Type: application/json" \
-d '{"input":"a.b*c"}'{ "escaped": "a\.b\*c", "original": "a.b*c" }Emoji Search
emojis-searchPOST /api/v1/tools/emojis-searchFind emoji by keyword (common set).
| Parameter | Type | Default | Description |
|---|---|---|---|
| q* | string | — | Search term |
curl -X POST https://yas.sh/api/v1/tools/emojis-search \
-H "Content-Type: application/json" \
-d '{"q":"lock"}'{ "query": "lock", "count": 2, "results": [{ "emoji":"🔒", "keywords":"lock secure" }] }UUID v7 Generator
uuid-v7POST /api/v1/tools/uuid-v7Generate time-ordered (sortable) UUID v7.
| Parameter | Type | Default | Description |
|---|---|---|---|
| count | integer | 1 | How many (1–50) |
curl -X POST https://yas.sh/api/v1/tools/uuid-v7 \
-H "Content-Type: application/json" \
-d '{"count":1}'{ "version": 7, "count": 1, "result": "018f...-...-7...-..." }MIME Type Lookup
mime-type-lookupPOST /api/v1/tools/mime-type-lookupLook up MIME types by extension or type.
| Parameter | Type | Default | Description |
|---|---|---|---|
| q* | string | — | Extension (png) or MIME (image/png) |
curl -X POST https://yas.sh/api/v1/tools/mime-type-lookup \
-H "Content-Type: application/json" \
-d '{"q":"png"}'{ "query": "png", "type": "extension", "mime": "image/png", "known": true }ULID Generator
ulid-generatorPOST /api/v1/tools/ulid-generatorGenerate sortable 128-bit ULIDs or parse timestamp.
| Parameter | Type | Default | Description |
|---|---|---|---|
| count | integer | 1 | Count to generate (1–50) |
| input | string | — | Optional ULID string to parse |
curl -X POST https://yas.sh/api/v1/tools/ulid-generator \
-H "Content-Type: application/json" \
-d '{"count":1}'{ "slug": "ulid-generator", "count": 1, "result": "01ARZ3NDEKTSV4RRFFQ69G5FAV" }NanoID Generator
nanoid-generatorPOST /api/v1/tools/nanoid-generatorGenerate compact URL-friendly unique IDs.
| Parameter | Type | Default | Description |
|---|---|---|---|
| count | integer | 1 | Count (1–50) |
| size | integer | 21 | ID length (4–128) |
| alphabet | string | — | Custom alphabet |
curl -X POST https://yas.sh/api/v1/tools/nanoid-generator \
-H "Content-Type: application/json" \
-d '{"count":1,"size":21}'{ "slug": "nanoid-generator", "count": 1, "size": 21, "result": "V1StGXR8_Z5jdHi6B-myT" }cURL to Fetch Converter
curl-to-fetchPOST /api/v1/tools/curl-to-fetchConvert cURL command to JS Fetch, Python, and Go code.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | cURL command |
curl -X POST https://yas.sh/api/v1/tools/curl-to-fetch \
-H "Content-Type: application/json" \
-d '{"input":"curl -X POST https://api.example.com -d '{\"a\":1}'"}'{ "slug": "curl-to-fetch", "parsed": { "url": "https://api.example.com", "method": "POST" } }JSON Repair & Sanitizer
json-repairPOST /api/v1/tools/json-repairRepair broken, unquoted, and malformed JSON strings.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Malformed JSON text |
curl -X POST https://yas.sh/api/v1/tools/json-repair \
-H "Content-Type: application/json" \
-d '{"input":"{ name: 'test', count: 1, }"}'{ "slug": "json-repair", "repaired": "{
"name": "test",
"count": 1
}", "valid": true }Bcrypt Hash & Compare
bcrypt-testerPOST /api/v1/tools/bcrypt-testerHash password or verify plaintext against bcrypt hash.
| Parameter | Type | Default | Description |
|---|---|---|---|
| password* | string | — | Plaintext password |
| mode | string | hash | Mode: 'hash' or 'verify' |
| hash | string | — | Bcrypt hash to compare (when mode=verify) |
| rounds | integer | 10 | Salt rounds (4–12) |
curl -X POST https://yas.sh/api/v1/tools/bcrypt-tester \
-H "Content-Type: application/json" \
-d '{"password":"SecretPassword123!","mode":"hash","rounds":10}'{ "slug": "bcrypt-tester", "mode": "hash", "rounds": 10, "hash": "$2a$10$..." }User-Agent Parser
user-agent-parserPOST /api/v1/tools/user-agent-parserParse User-Agent string into browser, OS and device.
| Parameter | Type | Default | Description |
|---|---|---|---|
| userAgent* | string | — | User-Agent string |
curl -X POST https://yas.sh/api/v1/tools/user-agent-parser \
-H "Content-Type: application/json" \
-d '{"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"}'{ "slug": "user-agent-parser", "browser": { "name": "Chrome" }, "os": { "name": "macOS" } }CIDR Subnet Calculator
cidr-calculatorPOST /api/v1/tools/cidr-calculatorCalculate CIDR IP ranges, netmasks, and usable host counts.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | CIDR string e.g. 192.168.1.0/24 |
curl -X POST https://yas.sh/api/v1/tools/cidr-calculator \
-H "Content-Type: application/json" \
-d '{"input":"192.168.1.0/24"}'{ "slug": "cidr-calculator", "networkAddress": "192.168.1.0", "usableHosts": 254 }security.txt RFC 9116 Validator
security-txt-validatorPOST /api/v1/tools/security-txt-validatorValidate RFC 9116 security.txt files for contact and expiration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | security.txt content |
curl -X POST https://yas.sh/api/v1/tools/security-txt-validator \
-H "Content-Type: application/json" \
-d '{"input":"Contact: mailto:security@example.com\nExpires: 2027-01-01T00:00:00Z"}'{ "slug": "security-txt-validator", "valid": true, "totalDirectives": 2 }XML Sitemap Validator
sitemap-validatorPOST /api/v1/tools/sitemap-validatorInspect and validate XML sitemaps for schema compliance and URLs.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | XML sitemap text |
curl -X POST https://yas.sh/api/v1/tools/sitemap-validator \
-H "Content-Type: application/json" \
-d '{"input":"<urlset><url><loc>https://example.com/</loc></url></urlset>"}'{ "slug": "sitemap-validator", "valid": true, "urlCount": 1 }SemVer Comparator
semver-comparatorPOST /api/v1/tools/semver-comparatorCompare semantic versions and evaluate npm range specs.
| Parameter | Type | Default | Description |
|---|---|---|---|
| v1* | string | — | Version 1 |
| v2* | string | — | Version 2 |
| range | string | — | Optional range spec e.g. ^1.0.0 |
curl -X POST https://yas.sh/api/v1/tools/semver-comparator \
-H "Content-Type: application/json" \
-d '{"v1":"1.2.3","v2":"1.3.0","range":"^1.2.0"}'{ "slug": "semver-comparator", "comparison": "less", "satisfies": true }URL Tracking Cleaner
url-cleanerPOST /api/v1/tools/url-cleanerStrip marketing tracking parameters from URLs.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | URL with tracking params |
curl -X POST https://yas.sh/api/v1/tools/url-cleaner \
-H "Content-Type: application/json" \
-d '{"input":"https://example.com/page?utm_source=twitter&fbclid=123"}'{ "slug": "url-cleaner", "cleanedUrl": "https://example.com/page", "removedParams": ["utm_source", "fbclid"] }Base58 Converter
base58-converterPOST /api/v1/tools/base58-converterEncode and decode Base58 strings for Bitcoin and IPFS.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Input text |
| mode | string | encode | Mode: 'encode' or 'decode' |
curl -X POST https://yas.sh/api/v1/tools/base58-converter \
-H "Content-Type: application/json" \
-d '{"input":"Hello Bitcoin","mode":"encode"}'{ "slug": "base58-converter", "mode": "encode", "result": "726XnZrT3sVbU7j" }Hex Dump Viewer
hex-viewerPOST /api/v1/tools/hex-viewerFormat text and binary into canonical hex dump with ASCII column.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | Input string |
curl -X POST https://yas.sh/api/v1/tools/hex-viewer \
-H "Content-Type: application/json" \
-d '{"input":"Hello World!"}'{ "slug": "hex-viewer", "bytes": 12, "hexDump": "00000000: 48 65 6c 6c 6f 20 57 6f 72 6c 64 21 |Hello World!|" }PEM Certificate Converter
pem-converterPOST /api/v1/tools/pem-converterConvert between PEM text armor and base64 DER binary format.
| Parameter | Type | Default | Description |
|---|---|---|---|
| input* | string | — | PEM certificate text |
curl -X POST https://yas.sh/api/v1/tools/pem-converter \
-H "Content-Type: application/json" \
-d '{"input":"-----BEGIN CERTIFICATE-----\nMIIB...\n-----END CERTIFICATE-----"}'{ "slug": "pem-converter", "type": "CERTIFICATE", "byteLength": 240 }BIP-39 Mnemonic Generator
bip39-generatorPOST /api/v1/tools/bip39-generatorGenerate and validate 12 and 24-word BIP-39 mnemonic seed phrases.
| Parameter | Type | Default | Description |
|---|---|---|---|
| words | integer | 12 | Word count: 12 or 24 |
curl -X POST https://yas.sh/api/v1/tools/bip39-generator \
-H "Content-Type: application/json" \
-d '{"words":12}'{ "slug": "bip39-generator", "wordsCount": 12, "mnemonic": "abandon ability able about..." }Email Warmup Scheduler
email-warmup-calculatorPOST /api/v1/tools/email-warmup-calculatorCalculate automated 14-day and 30-day domain sending warmup schedules.
| Parameter | Type | Default | Description |
|---|---|---|---|
| targetDailyVolume | integer | 50000 | Target daily volume |
| days | integer | 30 | Duration: 14 or 30 days |
| speed | string | standard | conservative, standard, aggressive |
curl -X POST https://yas.sh/api/v1/tools/email-warmup-calculator \
-H "Content-Type: application/json" \
-d '{"targetDailyVolume":50000,"days":30,"speed":"standard"}'{ "slug": "email-warmup-calculator", "totalDays": 30, "targetDailyVolume": 50000 }Dangling CNAME Takeover Checker
dangling-cname-checkerPOST /api/v1/tools/dangling-cname-checkerInspect DNS CNAME records for dangling pointers to S3, GitHub and Vercel.
| Parameter | Type | Default | Description |
|---|---|---|---|
| domain* | string | — | Domain name |
| cnameTarget | string | — | Optional CNAME target hostname |
curl -X POST https://yas.sh/api/v1/tools/dangling-cname-checker \
-H "Content-Type: application/json" \
-d '{"domain":"assets.example.com","cnameTarget":"my-bucket.s3.amazonaws.com"}'{ "slug": "dangling-cname-checker", "isDangling": false, "riskLevel": "SAFE" }DNSBL & Spam Blacklist Radar
dnsbl-radarPOST /api/v1/tools/dnsbl-radarAudit IP and domain reputation across Spamhaus, Barracuda and SpamCop.
| Parameter | Type | Default | Description |
|---|---|---|---|
| target* | string | — | IP address or domain |
curl -X POST https://yas.sh/api/v1/tools/dnsbl-radar \
-H "Content-Type: application/json" \
-d '{"target":"1.1.1.1"}'{ "slug": "dnsbl-radar", "target": "1.1.1.1", "listedCount": 0, "totalAudited": 5 }BROWSER-ONLY TOOLS
These tools are intentionally not available via the server API — their canonical implementation runs in the browser at /tools/:slug (SSRF risk for arbitrary URL fetching, or browser-only APIs like the File API). A POST /api/v1/tools/:slug attempt returns HTTP 409 with an RFC 9457 body: { code: "CLIENT_ONLY_TOOL", tool, executionMode: "client", apiAvailable: false } — never a success-shaped response. GET metadata reports executionMode: "client" and apiAvailable: false:
- base64-fileRequires the browser File API — files are processed locally and never uploaded.
- xml-validatorUses the browser DOMParser — no server XML parser is bundled by design.
- json-xmlComplex JSON ⇄ XML conversion runs client-side in the tool page.
- csv-converterRuns client-side — potentially sensitive tabular data never leaves your browser.
- sql-formatterRuns client-side — SQL text must not leave your browser.