# docs: What this service is, in several formats / What this is, for whom, and where everything is /agents.md Full guide for machine clients (Markdown) /llms.txt The guide in llms.txt format /endpoints Every path with a one-line description /openapi.json OpenAPI 3.1 specification /limits Current rate limits, input caps and time budget /sources Data sources: publisher, terms, refresh interval, current freshness /elsewhere Services with no key and no sign-up for what this service deliberately does not relay /about Who runs this, why, what is logged, retention, publication, lifetime, contact /robots.txt Everything is allowed /sitemap.xml All static addresses /.well-known/security.txt Security and abuse contact (RFC 9116) /health Liveness check: 'ok' and the age of each data set # time: Current time, parsing, conversion, arithmetic, business days, cron, ISO weeks /utc?[precision=] Current UTC time, ISO 8601 /time/now?tz= Current time in a timezone, with offset and DST state /time/unix?[unit=] Current Unix time /time/from-unix?value=&[unit=]&[tz=] Unix timestamp to ISO 8601 (UTC, or a timezone if given) /time/to-unix?value=&[tz=]&[ambiguous=] ISO 8601 date-time to Unix seconds /time/parse?value=&[tz=]&[dayfirst=]&[ambiguous=] Parse a date/time in almost any format into ISO 8601 /time/convert?value=&to=&[from=]&[ambiguous=] Convert a date-time between timezones (DST-aware) /time/diff?from=&to=&[tz=]&[ambiguous=] Difference between two instants or dates (exact and calendar) /time/add?value=&duration=&[tz=]&[ambiguous=] Add an ISO 8601 duration to a date or date-time (calendar arithmetic) /time/week?date= ISO week, day of year, quarter and weekday of a date /time/leap-year/{year} Whether a year is a leap year (proleptic Gregorian) /time/julian-day?value=&[tz=]&[ambiguous=] Julian Day and Modified Julian Day of an instant /time/cron?expr=&tz=&[n=]&[after=] Next firing times of a cron expression in a timezone /time/rrule?rule=&start=&tz=&[n=] Occurrences of an iCalendar RRULE in a timezone /time/duration?value=&[from=]&[tz=] Break down an ISO 8601 duration; exact seconds when unambiguous /time/age?birth=&on= Age in years, months and days on a given date /time/until?to=&[tz=]&[ambiguous=] Time remaining from now until an instant /time/business-days/add?date=&days=&country=&[region=]&[weekend=] Add N business days to a date for a country's calendar /time/business-days/count?from=&to=&country=&[region=]&[weekend=] Count business days between two dates (both inclusive) # calc: Arbitrary precision, exact fractions, expressions, statistics, number theory, loans /calc?expr=&[precision=] Evaluate an arithmetic expression with arbitrary precision (never float) /calc/exact?expr= Evaluate with exact rational arithmetic; result as a fraction and repeating decimal /calc/round?value=&[places=]&[mode=] Round a decimal number with an explicit rule /calc/base?value=&[from=]&[to=] Convert an integer between bases 2-36 /calc/bitwise?op=&a=&[b=]&[bits=] Bitwise and, or, xor, not, shifts on integers of a given width /calc/percent?percent=&of= A percentage of a value /calc/percent-change?from=&to=&[precision=] Percentage change from one value to another /calc/vat?amount=&rate=&mode=&[places=]&[rounding=] Add VAT/sales tax to a net amount, or extract it from a gross amount /calc/compound?principal=&rate=&years=&[per_year=]&[places=]&[rounding=] Compound interest: future value /calc/loan?principal=&rate=&months=&[schedule=]&[places=]&[rounding=] Annuity loan: monthly payment and optional amortisation schedule /calc/prime/{n} Whether an integer is prime (deterministic below 3.3e24) /calc/factor/{n} Prime factorisation (trial division + Pollard-Brent rho) /calc/next-prime/{n} Smallest prime greater than n /calc/prev-prime/{n} Largest prime smaller than n /calc/gcd?values= Greatest common divisor of integers /calc/lcm?values= Least common multiple of integers /calc/modpow?base=&exp=&mod= Modular exponentiation base^exp mod m /calc/modinv?a=&mod= Modular multiplicative inverse /calc/stats?values=&[stat=]&[precision=] Descriptive statistics of a list of numbers /calc/regression?x=&y= Least-squares linear regression y = a*x + b # convert: Length, mass, volume, temperature, pressure, energy, power, data, speed, area /convert/{value}/{from}/{to}?[precision=] Convert a value between units (exact SI coefficients) /convert?value=&from=&to=&[precision=] Convert a value between units (query form, for units such as km/h) /convert/units Every supported unit by dimension, with aliases # check: IBAN, ISBN, EAN, Luhn, VIN, UUID, ISIN, LEI, phone numbers, national identifiers /check/iban/{value} IBAN: country length and mod-97 check digits /check/bic/{value} BIC/SWIFT code structure (no check digit exists) /check/isbn/{value} ISBN-10 or ISBN-13 check digit, with conversion /check/ean/{value} EAN-8, UPC-A, EAN-13 or GTIN-14 check digit /check/card/{value} Payment card number: Luhn check and brand by range (not stored) /check/luhn/{value} Generic Luhn (mod 10) check /check/imei/{value} IMEI Luhn check digit (or compute it for 14 digits) /check/vin/{value} Vehicle identification number: characters and check digit /check/vat/{value} EU VAT number format by country (no registry lookup) /check/inn/{value} Russian ИНН (INN) check digits, 10 or 12 digits /check/snils/{value} Russian СНИЛС (SNILS) check number /check/ogrn/{value} Russian ОГРН / ОГРНИП check digit /check/kpp/{value} Russian КПП (KPP) structure /check/uuid/{value} UUID layout, version, variant and embedded timestamp /check/isin/{value} ISIN check digit (Luhn over expanded letters) /check/lei/{value} Legal Entity Identifier mod-97 check digits /check/mac/{value} MAC address format, unicast/multicast and local/universal bits /check/phone/{value}?[region=] Telephone number against the numbering plan: validity, type, E.164 # encode: base64/32/58, hex, URL, punycode, hashes, HMAC /encode/base64?[text=]&[hex=]&[b64=] Encode bytes as RFC 4648 base64, standard alphabet, with padding /encode/base64url?[text=]&[hex=]&[b64=]&[padding=] Encode bytes as RFC 4648 base64url (-_ alphabet) /encode/base32?[text=]&[hex=]&[b64=]&[padding=] Encode bytes as RFC 4648 base32 /encode/base58?[text=]&[hex=]&[b64=] Encode bytes as base58, Bitcoin alphabet, no checksum /encode/hex?[text=]&[hex=]&[b64=] Encode bytes as lowercase hexadecimal /decode/base64?value= Decode base64 (standard or URL-safe, padding optional) to text (or hex if not UTF-8) /decode/base64url?value= Decode base64url to text (or hex if not UTF-8) /decode/base32?value= Decode base32 to text (or hex if not UTF-8) /decode/base58?value= Decode base58 (Bitcoin alphabet) to text (or hex if not UTF-8) /decode/hex?value= Decode hex to text (or hex if not UTF-8) /encode/url?text=&[mode=] Percent-encode text (RFC 3986), stating which characters stay unencoded /decode/url?value=&[plus=] Decode percent-encoding /encode/punycode?domain= Internationalised domain name to ASCII (IDNA 2008 / punycode) /decode/punycode?domain= ASCII (xn--) domain name to Unicode /encode/hash/{alg}?[text=]&[hex=]&[b64=]&[output=] Hash digest: md5, sha1, sha256, sha512, sha3, blake2, blake3, crc32... /encode/hmac/{alg}?key=&[text=]&[hex=]&[b64=]&[output=] HMAC of a message with a key /encode/hmac/{alg}/verify?key=&signature=&[text=]&[hex=]&[b64=] Check an HMAC signature (constant-time comparison) /decode/jwt?token= Decode a JWT header and payload (signature NOT verified) # format: JSON, YAML, TOML, CSV validation and conversion, JSONPath, JSON Schema, diff, regex /format/json/validate?text= Validate JSON; errors give line, column and context /format/json/pretty?text=&[indent=]&[sort_keys=] Pretty-print JSON /format/json/minify?text= Minify JSON /format/jsonpath?json=&path= Query JSON with JSONPath (filters supported) /format/json-schema?json=&schema= Validate a JSON document against a JSON Schema /format/yaml/to-json?text= YAML to JSON (safe loader only) /format/json/to-yaml?text= JSON to YAML /format/toml/to-json?text= TOML to JSON /format/json/to-toml?text= JSON object to TOML /format/csv/to-json?text=&[delimiter=]&[header=] CSV to JSON (header row becomes keys) /format/json/to-csv?text=&[delimiter=] JSON array of objects to CSV /format/diff?a=&b=&[context=] Unified diff of two texts /format/regex/test?pattern=&text=&[flags=]&[limit=] Run a regular expression over text on the RE2 engine: matches, positions, groups # text: Unicode normalisation, codepoints, invisible and confusable characters, transliteration /text/normalize?text=&form= Unicode normalisation NFC, NFD, NFKC or NFKD /text/codepoints?text= Every character with code point, name and category /text/char/{char} Properties of one character (by U+XXXX, hex, or the character itself) /text/invisible?text= Find invisible, bidi-control, tag and non-standard space characters /text/confusables?text= Characters that look like others (homoglyphs) and mixed scripts /text/confusable?a=&b= Whether two strings are visually confusable (same UTS #39 skeleton) /text/length?text= Length in code points, grapheme clusters, UTF-8 bytes and UTF-16 units /text/translit?text=&system= Transliterate Cyrillic to Latin: ISO 9, GOST 7.79 B, Russian passport /text/slug?text=&[translit=]&[separator=]&[max_length=] URL slug from text, with explicit transliteration /text/detect-encoding?[hex=]&[b64=] Guess the character encoding of bytes (charset-normalizer) /text/transcode?from=&[hex=]&[b64=]&[to=] Convert bytes from one encoding to another (result as base64 and text preview) # net: CIDR arithmetic, IP classification, URL parsing, registrable domain, user agents /net/ip/{ip} Classify an IP address: normal forms, special-purpose block (IANA), mapped forms /net/cidr/{prefix:path} Prefix arithmetic: network, mask, broadcast, first/last host, size /net/contains?a=&b= Relation between two prefixes or a prefix and an address: equal, contains, inside, disjoint /net/aggregate?prefixes= Merge a list of prefixes into the fewest covering prefixes /net/subnets/{prefix:path}?length= Split a prefix into subnets of a given length /net/range?start=&end= Convert an address range to the minimal list of prefixes /net/url?url= Parse and normalise a URL (RFC 3986) without fetching it /net/domain/{host} Registrable domain and public suffix (Public Suffix List), TLD validity /net/useragent?[ua=] Parse a User-Agent string (yours if ua= is omitted), including AI agents and HTTP libraries # random: UUID v4 and v7, integers, choices, passwords, bytes (CSPRNG, never cached) /random/uuid?[count=] Random UUID version 4 /random/uuid/v7?[count=] UUID version 7: sortable by creation time (Unix ms) plus 74 random bits /random/int?min=&max=&[count=] Uniform random integers in an inclusive range (no modulo bias) /random/choice?items=&[count=] Pick items from a list, with replacement /random/sample?items=&count= Pick distinct items from a list, without replacement /random/shuffle?items= Random permutation of a list /random/password?[length=]&[symbols=]&[ambiguous=]&[count=] Random password with stated entropy /random/passphrase?[words=]&[separator=]&[count=] Diceware-style passphrase from the EFF large wordlist /random/bytes?[n=]&[output=] Random bytes as hex or base64 # geo: Great-circle distance, bearing, destination, coordinate formats, geohash, UTM, MGRS /geo/distance?from=&to=&[unit=] Distance between two points on the WGS84 ellipsoid (Karney), plus spherical estimate /geo/bearing?from=&to= Initial and final bearing (azimuth) from one point to another /geo/destination?from=&bearing=&distance=&[unit=] Point reached from a start point, bearing and distance (direct geodesic problem) /geo/midpoint?from=&to= Midpoint of the geodesic between two points /geo/dms?point= Decimal degrees to degrees, minutes, seconds /geo/decimal?lat=&lon= Degrees-minutes-seconds text to decimal degrees /geo/geohash?point=&[precision=] Encode a point as a geohash /geo/geohash/{hash} Decode a geohash to its cell centre and size /geo/utm?point= Latitude/longitude to UTM zone, easting, northing (WGS84) /geo/mgrs?point=&[precision=] Latitude/longitude to an MGRS grid reference /geo/mgrs/{code} MGRS grid reference to latitude/longitude (south-west corner of the square) # sky: Sunrise, sunset, twilight, moon phase, equinoxes, satellite positions - computed, not looked up /sky/sun?point=&tz=&[date=]&[event=] Sunrise, sunset, solar noon, day length and twilights for a place and date /sky/moon?tz=&[date=]&[point=] Moon phase, illumination, next principal phases; moonrise/moonset if a place is given /sky/seasons/{year}?[tz=] Instants of the equinoxes and solstices of a year /sky/satellite/{id}?[at=] Current (or given) position of a satellite from its latest TLE, via SGP4 /sky/satellites Satellites whose element sets are mirrored here # fx: Currency reference rates (ECB) and official rates (Bank of Russia) /fx/{base}/{quote}?[source=]&[date=]&[amount=] Exchange rate for a currency pair, with the publishing central bank and date /fx/rates?[source=]&[date=]&[base=] All rates from one central bank for a date /fx/currencies?[source=] Currencies each central bank publishes # holidays: Public holidays and business days by country /holidays/{country}/{when}?[region=]&[weekend=] Public holidays of a year (when=2026) or the status of one date (when=2026-12-25) /holidays/{country}/next?[after=]&[tz=]&[count=]&[region=] Next public holidays after a date /holidays/countries Countries with holiday data # ref: Country, currency, language, timezone, TLD, port, media type, HTTP and constant tables /ref/country/{code} Country by ISO 3166-1 code or name: codes, official name, calling code, timezones, currency /ref/subdivisions/{country} ISO 3166-2 subdivisions of a country /ref/currency/{code} ISO 4217 currency: name, numeric code, minor units /ref/language/{code} Language by ISO 639-1, 639-2/3 code or English name /ref/timezone/{name:path} Timezone: current offset, DST state, next transition, countries /ref/timezones?[country=] IANA timezone names, optionally for one country /ref/tld/{tld} Whether a top-level domain exists in the IANA root zone /ref/port/{port} IANA service names registered for a port number /ref/service/{name} Ports registered for a service name /ref/media-type/{type}/{subtype} Whether a media type is registered with IANA, and its reference /ref/http-status/{code} HTTP status code meaning and defining document /ref/http-header/{name} HTTP field (header) name: registration status and specification /ref/constant/{name} Physical constant (CODATA via NIST): value, uncertainty, unit /ref/airport/{code} Airport by IATA (3 letters) or ICAO (4 letters) code # feed: Earthquakes, space weather /feed/earthquakes?[period=]&[min_magnitude=]&[near=]&[radius_km=]&[limit=] Recent earthquakes, newest first (USGS) /feed/earthquakes/latest?[period=]&[min_magnitude=]&[near=]&[radius_km=] The most recent earthquake matching a filter /feed/earthquakes/strongest?[period=]&[min_magnitude=]&[near=]&[radius_km=] The strongest earthquake in a period /feed/space-weather Space weather now: Kp index, NOAA scales, solar wind, latest X-ray flare /feed/space-weather/kp?[hours=] Planetary K-index, observed for the last days /feed/space-weather/forecast 3-day Kp forecast and NOAA R/S/G scale probabilities /feed/space-weather/solar-wind Real-time solar wind at L1: speed, density, temperature, magnetic field /feed/space-weather/flares Latest solar X-ray flare (GOES) # self: Your request, your egress address, your client's capabilities /mirror Your request as received: method, path, protocol, headers, TLS /ip Your egress address, its network (ASN) and registration country, and a humble agent/human guess /probe/redirect?[hops=]&[code=]&[location=] Start a chain of redirects to see whether and how far your client follows them /probe/redirect/{n}?of=&[code=]&[location=] One step of the redirect chain; the last step reports how many were followed /probe/js HTML page that reports whether your client executes JavaScript (the only HTML on this service) /probe/js/beacon?token= Called by the script on /probe/js when JavaScript runs /probe/js/result?token= Whether the script of a /probe/js page load ran /probe/cookie Sets one random cookie and reports whether your client sent it back (the only cookie on this service) /probe/encoding Which compression your client accepts; the reply is compressed with the best one we support /probe/chunked Body streamed in 5 chunks over one second; the last line says whether you got all of it /probe/urllen?[sent=] Length of the URL that reached us; append any path or query to test longer ones /probe/urllen/{padding:path}?[sent=] Same as /probe/urllen with arbitrary padding in the path # test: Controlled responses for exercising your client /status/{code}?[retry_after=] Respond with the given HTTP status (200-599), with an explanatory body /delay/{seconds} Respond after a delay of up to 10 seconds /size/{bytes} Body of exactly N bytes (up to the 1 MB response cap), streamed with Content-Length /broken/{kind} Deliberately malformed responses: bad gzip, truncated gzip, invalid UTF-8, invalid JSON, wrong type # 193 endpoints; all also answer under /v1/ with frozen behaviour # parameters and examples: /agents.md, /openapi.json # type: computed