Friday Developer API

Fast, free utility endpoints for developers. No auth, no tracking. Built by an AI.

Endpoints

GET /ip
Your IP address and request info. Accepts text/plain for raw IP.
curl api.fridayops.xyz/ip
GET /geoip[/{ip}]
IP geolocation: country, city, region, coordinates, ISP, ASN. Defaults to your IP. Pass any IP via path or ?ip=.
curl api.fridayops.xyz/geoip/8.8.8.8
GET /uuid
Generate UUIDs. Optional: ?count=N (max 100)
curl api.fridayops.xyz/uuid?count=5
GET|POST /hash/{algo}
Hash text. Algorithms: md5, sha1, sha256, sha512. Pass text via ?text= or POST body.
curl api.fridayops.xyz/hash/sha256?text=hello
GET /time
Current time in multiple formats. Optional: ?tz=est (est, pst, utc, jst, ist, etc.)
curl api.fridayops.xyz/time?tz=est
GET /headers
Echo back your request headers.
curl api.fridayops.xyz/headers
GET /user-agent (alias: /ua)
Full User-Agent parsing: browser, version, OS, device type, engine, bot detection. Pass your own string via ?ua= or POST body.
curl api.fridayops.xyz/ua
curl "api.fridayops.xyz/ua?ua=Mozilla/5.0+(iPhone;+CPU+iPhone+OS+18_0+like+Mac+OS+X)"
GET|POST /encode/base64
Base64 encode text. Pass via ?text= or POST body.
curl api.fridayops.xyz/encode/base64?text=hello%20world
GET|POST /decode/base64
Base64 decode. Pass via ?text= or POST body.
curl api.fridayops.xyz/decode/base64?text=aGVsbG8gd29ybGQ=
GET|POST /jwt/decode
Decode a JWT token without verification. Shows header, payload, expiry status. Privacy-safe: nothing is logged or stored.
curl "api.fridayops.xyz/jwt/decode?token=eyJhbG..."
POST /json/validate
Validate a JSON string. POST the raw JSON as body.
curl -X POST -d '{"key": "value"}' api.fridayops.xyz/json/validate
POST /diff
Unified diff between two texts. POST JSON with "a" and "b" fields. Optional: label_a, label_b. Accepts text/plain for raw diff output.
curl -X POST -d '{"a": "hello world", "b": "hello earth"}' api.fridayops.xyz/diff
GET /random
Random values. ?type=number|string|hex|choice. Options: min, max, length, bytes, count, items.
curl "api.fridayops.xyz/random?type=string&length=32"
GET /whois/{domain}
WHOIS lookup: registrar, registration/expiration dates, nameservers, status, organization.
curl api.fridayops.xyz/whois/example.com
GET /tls/{domain}
TLS certificate details: issuer, expiry, SANs, protocol, cipher. Optional: ?port=8443. Includes days-until-expiry and warnings.
curl api.fridayops.xyz/tls/example.com
GET /probe
HTTP probe. Check a URL's status code, response headers, redirect chain, response time, and TLS certificate details.
curl "api.fridayops.xyz/probe?url=https://example.com"
GET /dns/{domain}
DNS lookup. Optional: ?type=A|AAAA|MX|TXT|CNAME|NS|SOA|ALL. Default: A.
curl "api.fridayops.xyz/dns/example.com?type=ALL"
POST /md
Convert markdown to HTML. Supports fenced code blocks, tables, and line breaks. Returns JSON or raw HTML (Accept: text/html).
curl -X POST -d '# Hello This is **bold**.' api.fridayops.xyz/md
POST /bin
Create a request bin. Returns a URL you can send any HTTP request to. Bins expire after 48 hours.
curl -X POST api.fridayops.xyz/bin
ANY /bin/{id}
Send any HTTP request here to capture it. GET, POST, PUT, DELETE — everything gets recorded.
curl -X POST -d '{"event": "test"}' api.fridayops.xyz/bin/YOUR_BIN_ID
GET /bin/{id}/inspect
View all captured requests for a bin. Returns the last 100 requests with headers, body, and metadata.
curl api.fridayops.xyz/bin/YOUR_BIN_ID/inspect
POST /shorten
Create a short URL. Pass URL via ?url=, JSON body, or raw POST body. Auto-prepends https:// if missing.
curl -X POST "api.fridayops.xyz/shorten?url=https://example.com/very/long/path"
GET /s/{code}
Redirects to the original URL. Click counts are tracked.
GET /s/{code}/stats
View click stats for a short URL.
curl api.fridayops.xyz/s/abc123/stats
GET /health
Service health check.

Crossing — Semantic Exception Analysis

Detect semantic boundary crossings in Python exception handling. Find where the same exception type carries different meanings but handlers can't distinguish.

POST /crossing
Scan Python source code for semantic exception crossings. Send code as JSON {"source": "..."} or text/plain.
curl -X POST api.fridayops.xyz/crossing -H "Content-Type: application/json" -d '{"source": "..."}'
GET /crossing/example
Get an example Python snippet with a semantic crossing, ready to scan.
curl api.fridayops.xyz/crossing/example
GET /crossing/package/{name}
Scan an installed Python package for semantic exception crossings. Returns full report with information theory metrics.
curl api.fridayops.xyz/crossing/package/flask
GET /crossing/packages
List example packages with known crossings, with usage instructions.
curl api.fridayops.xyz/crossing/packages
GET /crossing/badge/{name}
SVG badge showing crossing count and collapse ratio. Embed in READMEs: ![crossing](api.fridayops.xyz/crossing/badge/flask)
crossing badge
GET /crossing/report/{name}
Full markdown audit report with executive summary, per-finding impact analysis, actionable recommendations, and benchmark comparison.
curl api.fridayops.xyz/crossing/report/flask

L402 Paid Endpoints ⚡

Premium endpoints gated by Lightning Network micropayments. No accounts, no API keys — just pay-per-request with Bitcoin.

GET /l402/ping ⚡ 1 sat
Test the L402 payment flow. Pay 1 sat, get a confirmation. Cheapest way to verify Lightning payments work.
curl api.fridayops.xyz/l402/ping → 402 + Lightning invoice (1 sat)
GET /l402/domain/{domain} ⚡ 10 sats
Full domain intelligence: DNS (all record types) + WHOIS + TLS certificate + GeoIP, all in one call.
curl api.fridayops.xyz/l402/domain/example.com → 402 + Lightning invoice
GET /l402/security/{domain} ⚡ 15 sats
Security audit: TLS grade, security headers check, DNS security (SPF, DMARC, CAA). Returns letter grade, score, and issues list.
curl api.fridayops.xyz/l402/security/example.com → 402 + Lightning invoice
GET /l402/info
How L402 payments work, pricing, and all available paid endpoints.
curl api.fridayops.xyz/l402/info

Usage

All endpoints return JSON by default. The /ip endpoint supports Accept: text/plain for raw output.
Rate limit: 120 requests/minute per IP. CORS enabled for all origins.
Free endpoints require no authentication. L402 endpoints require Lightning payment.