# Tanod Util > Developer utilities: encode, hash, HMAC, IDs, JSON, data conversion, cron, time zones, QR codes. A focused part of Tanod (https://tanod.dev/llms.txt covers every family), over HTTP and MCP. > > Pay per call in USDC on Base or Polygon or Solana with x402, or on Tempo with MPP; no account or API key. Free tier: a small daily per-IP > pool per family; over HTTP add the header `X-Tanod-Free: 1` to an unpaid call (without it every unpaid call gets the 402); over MCP > the free tier is automatic. > Every result is automated and heuristic, not an audit: findings can be false positives, and a clean result is not proof that code or a package is free of risk. > Tanod is operated by an autonomous AI agent on behalf of its owner. Scans run automatically; no person reviews individual results. ## API - [OpenAPI spec](https://util.tanod.dev/openapi.json): machine-readable description of this family's 30 routes. - [x402 resources](https://util.tanod.dev/.well-known/x402) - MCP: `https://tanod.dev/mcp/util` (server `tanod-util`) ## Routes - `POST https://util.tanod.dev/v1/qr` (generate_qr_code): Generate a QR code: make or create a QR code image (SVG or PNG) for text or a URL (utilpeek) Use when an agent must hand a person text or a URL as a scannable QR code image. Add output=url for a 24 h link. - `POST https://util.tanod.dev/v1/geocode` (geocode_city): Geocode a city: get its coordinates, or reverse geocode coordinates, offline (utilpeek) Use when an agent must turn a city name into coordinates, or coordinates into the nearest city. - `POST https://util.tanod.dev/v1/holidays` (get_public_holidays): Get public holidays: list a country's public (bank) holidays for a year (utilpeek) Use when an agent must know the public holidays of a country and year before scheduling dates. - `POST https://util.tanod.dev/v1/phone` (validate_phone_number): Validate a phone number: parse and format a phone number against its numbering plan (utilpeek) Use when an agent must parse a phone number and format it as E.164 or national before storing or dialling it. - `POST https://util.tanod.dev/v1/validate` (validate_iban): Validate an IBAN: validate a VAT number, ISBN or other ID by format and check digits (utilpeek) Use when an agent must check the format and check digits of an IBAN, VAT, ISBN, LEI or similar ID. - `POST https://util.tanod.dev/v1/useragent` (parse_user_agent): Parse a User-Agent string: browser, OS, device, bot heuristic (utilpeek) Use when an agent has a User-Agent string and needs the browser, OS, device and a bot flag. - `POST https://util.tanod.dev/v1/cron` (get_cron_next_run_times): Get the next run times of a cron expression in a time zone (utilpeek) Use when an agent must know when a cron expression will next fire in a given time zone. - `POST https://util.tanod.dev/v1/time` (convert_time_zone): Convert a time between time zones, with offsets and DST (utilpeek) Use when an agent must convert one moment to the local time in several time zones, with DST offsets. - `POST https://util.tanod.dev/v1/url` (parse_url): Parse a URL into its parts, IDNA and public suffix, without fetching it (utilpeek) Use when an agent must split a URL into its parts, registrable domain and IDNA form without fetching it. - `POST https://util.tanod.dev/v1/barcode` (generate_barcode): Generate a barcode image: Code 128, Code 39, EAN, UPC-A, ISBN-13 (utilpeek) Use when an agent must produce a Code 128, Code 39, EAN, UPC-A or ISBN barcode image. Add output=url for a 24 h link. - `POST https://util.tanod.dev/v1/json/validate` (validate_json_schema): Validate JSON against a JSON Schema (drafts 3 to 2020-12) (utilpeek) Use when an agent must check a JSON value against a JSON Schema and get the paths of any errors. - `POST https://util.tanod.dev/v1/convert` (convert_json_yaml_csv_toml_xml): Convert data between JSON, YAML, CSV, TOML and XML (utilpeek) Use when an agent must convert data between JSON, YAML, CSV, TOML and XML. - `POST https://util.tanod.dev/v1/hash` (hash_text_sha256_keccak): Hash text or bytes: sha256, keccak256, blake2b, md5, crc32, ... (utilpeek) Use when an agent needs a SHA-2, SHA-3, BLAKE2, Keccak, MD5 or CRC32 digest of text or bytes. - `GET https://util.tanod.dev/v1/uuid` (get_fresh_uuid_v7): Get one fresh UUIDv7 and its embedded timestamp (utilpeek) Use when an agent needs fresh UUID v4, UUID v7 or ULID identifiers. - `POST https://util.tanod.dev/v1/uuid` (generate_uuid_ulid): Generate UUIDs (v4 or time-ordered v7) or ULIDs (utilpeek) Use when an agent needs fresh UUID v4, UUID v7 or ULID identifiers. - `POST https://util.tanod.dev/v1/hmac` (hmac_sign_verify_webhook_signature): Sign or verify an HMAC, including GitHub, Stripe and Slack webhook signatures (utilpeek) Use when an agent must sign a message with HMAC or verify a webhook signature. - `POST https://util.tanod.dev/v1/phone/prefix` (lookup_phone_number_prefix_network): Look up a phone number prefix: country, line type and original network, with ambiguity (utilpeek) Use when an agent needs the country, line type and original network behind a phone prefix, or a country's mobile prefixes. - `POST https://util.tanod.dev/v1/convert/units` (convert_units_of_measurement): Convert units of measurement: length, weight, temperature, volume, pressure, energy, data size (utilpeek) Use when an agent must convert a quantity between units such as length, mass, temperature or data size. - `POST https://util.tanod.dev/v1/date/business-days` (count_business_days): Count business days between two dates Use when an agent must count working days between dates or find the date N working days ahead. - `POST https://util.tanod.dev/v1/color/convert` (convert_color_check_wcag_contrast): Convert a color between hex, RGB, HSL and OKLCH and check WCAG contrast (utilpeek) Use when an agent must convert a color between hex, RGB, HSL, CMYK and OKLCH, or check WCAG contrast. - `POST https://util.tanod.dev/v1/color/contrast` (check_wcag_contrast): WCAG contrast check Use when an agent must check whether text and background colors meet WCAG AA or AAA contrast. - `POST https://util.tanod.dev/v1/text/encode` (encode_decode_text_base64): Encode or decode text: base64, hex, URL, punycode, JWT decode, ... (utilpeek) Use when an agent must encode or decode base64, hex, URL or punycode strings, or read a JWT payload. - `POST https://util.tanod.dev/v1/image/qr-read` (read_qr_code): Read a QR code: scan and decode every QR code and barcode in an image (imagepeek) Use when an image holds QR codes or barcodes whose decoded text, positions or payment fields are needed. - `POST https://util.tanod.dev/v1/einvoice/peppol-lookup` (peppol_participant_lookup): Check whether a company is registered on the Peppol e-invoicing network (utilpeek) Use when an agent must check whether a business is registered on Peppol before sending an e-invoice. - `POST https://util.tanod.dev/v1/x402/lint` (lint_x402_listing): Lint an x402 listing, or check a seller's Bazaar coverage (utilpeek) Use when an agent must lint an x402 listing, or check which of a seller's routes the Bazaar lists, before publishing. - `POST https://util.tanod.dev/v1/calendar/ics-build` (build_ics_event): Build an iCalendar (.ics) file from JSON events (utilpeek) Use when an agent must hand a user a calendar invite: events as JSON in, a .ics file out. - `POST https://util.tanod.dev/v1/calendar/ics-parse` (parse_ics): Parse an iCalendar (.ics) file into JSON events (utilpeek) Use when an agent must read an .ics file or invite (Google, Outlook, Apple) as JSON events. - `POST https://util.tanod.dev/v1/calendar/rrule` (expand_rrule): Expand an iCalendar RRULE into dates (utilpeek) Use when an agent must list the dates of a recurring event (RRULE) in a time zone, DST-correct. - `POST https://util.tanod.dev/v1/jwt/decode` (decode_a_jwt): Decode a JWT Use when an agent must read a JWT's header and claims (exp, aud, kid) without verifying it. - `POST https://util.tanod.dev/v1/jwt/verify` (verify_jwt): Verify a JWT signature and claims (utilpeek) Use when an agent must check a JWT's signature and exp, aud and iss with a secret, a PEM key or a JWK Set. - `POST https://util.tanod.dev/v1/random` (generate_random_numbers_dice_bytes_csprng): Generate cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles (utilpeek) Use when an agent needs cryptographic random integers, floats, bytes, dice rolls, or a random pick or shuffle of a list.