key: GET https://2s.io/api/quakes/recent

description: Recent earthquakes near a coordinate. Returns each quake with magnitude, place name, time (ISO), latitude/longitude/depth, tsunami flag, USGS event URL, and distance-from-query in km — sorted by time descending. Real-time data, post-LLM-training-cutoff. Backed by USGS FDSN event API (public domain). Query: lat (-90..90), lon (-180..180), radius_km (1-1000, default 500), hours (1-720, default 24), min_magnitude (0-10, default 2.0).

recordKey: GET https://2s.io/api/quakes/recent


key: GET https://2s.io/api/queue/enqueue

method: GET

title: 2s Control Plane — Queue Enqueue (durable job queue)

type: http

scheme: exact

health: healthy

registrySource: self-registered

recordKey: GET https://2s.io/api/queue/enqueue

level: direct-quote

scope: origin

method: HEAD

scope: exact-route

outcome: confirmed

requestedMethod: GET

source: exact-route

status: curated

basis: live-quote

matchScope: host


key: GET https://2s.io/api/recreation/search

description: Search the Recreation Information Database (RIDB) — the single source of truth for federal recreation lands and programs across NPS, USFS, BLM, USACE, BOR, FWS, NARA. Pick a resource: recareas (designated recreation areas), facilities (individual sites — campgrounds, day-use, visitor centers), campsites (individual reservable campsites with attributes), permits (special-use permits, lotteries), tours, events, activities (taxonomy lookup). Filter by free-text query, state, activity ID, or lat/lon + radius (miles, max 50). Used by every federal-recreation-related agent: trip planning, permit chasers, fishing/hunting locator, campground availability tools.

tokenName: USD Coin

tokenName: USDC

recordKey: GET https://2s.io/api/recreation/search

registrySource: bazaar


description: Look up an npm package by name (supports scoped packages like @sentry/node). Returns description, homepage, repository, license, author + maintainers list, keywords, distTags (latest/beta/rc/etc.), latest version + publication date, and the 50 most recent versions with their publish dates + deprecation status. ~3M JavaScript/TypeScript packages. npm public registry.


description: Look up a Python package on PyPI by name. Returns version, summary + long description, content-type, project URLs (Homepage, Source, Bug Tracker, Docs, etc.), license, author + maintainer (with emails), keywords, classifiers (top 30), requires-python spec, requires-dist (top 100 runtime deps), the 50 most recent releases with publish dates, and any yanked versions in that window. PyPI public registry.


key: GET https://2s.io/api/research/author

description: Resolve a researcher by ORCID iD. Pass orcid (e.g. 0000-0002-1825-0097, with or without the https://orcid.org/ prefix). Returns the researcher name, affiliations (employments and educations with organization, role, department, years, and a current flag), a total works count, and a works summary (title, type, year, DOI when present). Data: ORCID Public API, free and keyless; per-record visibility is set by the record holder. The canonical author key in scholarly metadata — pair with /api/papers/search, /api/paper/doi-lookup, and /api/research/org (ROR institutions). Use to verify an author identity, current institution, or publication record before citing.

recordKey: GET https://2s.io/api/research/author


key: GET https://2s.io/api/research/funding

description: Search US federal biomedical research grants via NIH RePORTER. Filter by term (free-text over project title, terms, and abstract), org (funded institution name), pi (principal-investigator name), and/or fiscalYear; page with limit (1-50) and offset. Returns each award with project number, title, fiscal year, award amount (USD), contact PI, organization (name, city, state, country, department), funding agency/institute, and project start/end dates — newest fiscal year first, with a total match count. Data: NIH RePORTER, free and public-domain. Fresh post-training award data agents cannot know; pair with /api/research/org (ROR) and /api/research/author (ORCID). Use for funding landscape research, competitor/lab tracking, and grant-opportunity context.

recordKey: GET https://2s.io/api/research/funding


key: GET https://2s.io/api/research/org

description: Resolve a research organization via the Research Organization Registry (ROR). Pass id (a ROR id like 056y0v115 or its full URL) to fetch one org, or name to search by free text. Returns the canonical ROR id and name, organization type, status, founding year, location (city, country, GeoNames coordinates), website, Wikipedia link, external identifiers (GRID, ISNI, Wikidata, Crossref Funder), parent/child relationships, and aliases/acronyms. Data: ROR, free and CC0. The canonical institution key in scholarly metadata — pair with /api/papers/search and /api/paper/doi-lookup (author affiliations) and /api/research/author (ORCID). Use to disambiguate an institution name to a stable id before joining datasets.

recordKey: GET https://2s.io/api/research/org


key: GET https://2s.io/api/schedule/create

title: 2s Control Plane — Schedule Create (cron callbacks)

recordKey: GET https://2s.io/api/schedule/create


key: GET https://2s.io/api/search/ai

description: AI web search optimized for agents. Returns ranked results with the relevant extracted content of each page (not just a link + blurb), plus a relevance score. topic=news for recent reporting. Distinct from search.web (raw SERP) — this returns clean, LLM-ready page content per result.

recordKey: GET https://2s.io/api/search/ai


key: GET https://2s.io/api/search/endpoints

description: Find the right 2s endpoint for a task using natural language. Pass q (e.g. 'check if a domain can be spoofed', 'is this CVE being exploited', 'screen a company for sanctions', 'decode a VIN') and get back the catalog's most relevant endpoints, ranked, each with its id, API path, method, group, description, and price. Deterministic keyword + synonym matching over the live endpoint registry (no LLM, no external calls) — a self-routing index so an agent (or its planner) can discover which paid call answers a question instead of reading the whole 290+ endpoint catalog. Returns the path you then call directly.

recordKey: GET https://2s.io/api/search/endpoints


key: GET https://2s.io/api/search/web

description: Live web search. Returns ranked results with title, URL, snippet description, site name, and page age — fresh information past any model training cutoff. Supports count (1-20), offset for paging, country (2-letter, e.g. US), freshness (pd=past day, pw=past week, pm=past month, py=past year, or a YYYY-MM-DDtoYYYY-MM-DD range), and safesearch (off/moderate/strict). Use for current events, fact verification, finding documentation, and research. Independent search index. For news-specific results with sources and timestamps see /api/news/search.

recordKey: GET https://2s.io/api/search/web


key: GET https://2s.io/api/security/attack

description: Authoritative MITRE ATT&CK (Enterprise) technique lookup. Pass id (e.g. T1059 or sub-technique T1059.001) for the canonical technique — name, tactics (kill-chain phases), description, platforms, sub-technique flag + parent, mitigations, and detection guidance — or query for a keyword search returning ranked techniques. Bundled current ATT&CK matrix (~700 techniques), zero external calls. Agents cite T-numbers and tactic names that must be exact; this returns version-pinned, citeable data instead of hallucinated IDs. For threat modeling, detection engineering, and report enrichment.

recordKey: GET https://2s.io/api/security/attack


key: GET https://2s.io/api/security/capec

description: Authoritative MITRE CAPEC (Common Attack Pattern Enumeration) lookup. Pass id (e.g. CAPEC-66, or just 66) for the canonical attack pattern — name, abstraction, description, typical likelihood + severity, mapped CWE weaknesses (with names), and related patterns (with names) — or query for a keyword search. Bundled catalog (~615 patterns), zero external calls. The attacker's-eye complement to security.cwe (the defender's weakness view) — the CAPEC↔CWE cross-links let an agent pivot between how an attack works and the weakness it exploits, with exact citeable IDs.

recordKey: GET https://2s.io/api/security/capec


key: GET https://2s.io/api/security/cve

description: Look up a CVE by id (e.g. CVE-2021-44228) across three authoritative vulnerability feeds in one call. Query: cve (CVE-YYYY-NNNN). Returns the canonical record — description, CVSS base score + severity + vector, CWE weakness ids, published/modified dates, reference links — plus whether it is on the US CISA Known Exploited Vulnerabilities catalog (with remediation due date and known-ransomware flag) and its EPSS exploit-probability score and percentile. The exploited and EPSS sections report independently, so one feed being unavailable does not fail the call. 404 if the CVE id is unknown. For triage, prioritization, and anti-hallucination on vulnerability claims.

recordKey: GET https://2s.io/api/security/cve


description: CVE change feed — the CVE records MODIFIED within a time window, so an agent can incrementally maintain a vulnerability view instead of re-scanning. Pass since (YYYY-MM-DD or ISO datetime); until defaults to now (window must be ≤ 120 days, the NVD limit). Optionally narrow by keyword (product/text) or cpe (exact CPE). Returns each changed CVE with its id, published + lastModified timestamps, current vulnStatus (e.g. Modified, Analyzed, Rejected), best-available CVSS score/severity, description, and kevListed — whether it is now on the CISA Known-Exploited Vulnerabilities catalog (the high-signal flag for a poller). Newest modification first. Sourced live from NVD (NIST) + CISA KEV, free/keyless. Pair with security.cve for full per-CVE detail.


description: Find vulnerabilities affecting a product by searching the NIST National Vulnerability Database. Pass product (free-text keyword, e.g. "apache log4j", "openssl", "wordpress plugin contact-form-7") or cpe (an exact CPE 2.3 name, e.g. cpe:2.3:a:apache:log4j:2.14.1:*:*:*:*:*:*:*). Returns matching CVEs newest-first, each with its id, description, CVSS base score/severity/vector, and dates. Optional limit (1–50). For "what CVEs affect X" / surveying a product's vulnerability history — distinct from security.cve, which resolves a single CVE id across NVD + CISA KEV + EPSS. Free, keyless.


key: GET https://2s.io/api/security/cwe

description: Authoritative MITRE CWE (Common Weakness Enumeration) lookup. Pass id (e.g. CWE-79, or just 79) for the canonical weakness — name, abstraction, description, extended description, ChildOf/ParentOf relationships (with names), and mapped CAPEC attack patterns (with names) — or query for a keyword search returning ranked matches. Bundled catalog (~970 weaknesses), zero external calls. Agents hallucinate CWE IDs and names constantly; this returns exact, citeable, version-pinned data. Pairs with security.cve (which returns CWE ids) and security.capec.

recordKey: GET https://2s.io/api/security/cwe


description: Does public exploit code exist for a CVE, and where? Pass cve (e.g. CVE-2021-44228). Returns hasPublicExploit, the count, hasMetasploitModule and hasVerifiedExploit flags, and the Exploit-DB entries (id, description, type, platform, date, verified, Metasploit flag, link). Bundled inverted index from the Exploit-DB archive (~25k CVEs). This is the triage signal BEYOND security.cve's KEV (exploited in the wild) + EPSS (exploit probability): is the vulnerability actually weaponized with available code? Use the trio together to decide how urgently to patch. Absence is not proof no exploit exists (private/other archives not covered).


description: Fetch a URL and grade its HTTP security headers. Pass url (scheme optional — defaults to https). Returns an overall letter grade + score, the list of present/missing headers, and a per-header analysis with the live value and specific issues for: Strict-Transport-Security (HSTS max-age/includeSubDomains), Content-Security-Policy (flags 'unsafe-inline'/'unsafe-eval'/missing default-src), X-Frame-Options or CSP frame-ancestors (clickjacking), X-Content-Type-Options (nosniff), Referrer-Policy, Permissions-Policy, and Cross-Origin-Opener/Resource-Policy. Also flags Server/X-Powered-By info disclosure. Analyzed from the target's LIVE response headers through an SSRF-guarded fetch (private/loopback targets refused) — an LLM cannot see a site's current headers. For web-app security review, vendor


description: CISA Industrial Control Systems (ICS) advisories — vulnerabilities in operational-technology gear (SCADA, PLCs, building automation, energy/manufacturing/transportation systems, and medical devices), from the official CISA advisory RSS feed. Each item is normalized to the canonical advisory id (ICSA-YY-DDD-NN, or ICSMA-YY-DDD-NN for medical), title, link to the full advisory, publication date (ISO), and a plain-text summary. Optionally filter by keyword (e.g. a vendor like "Siemens") and cap the count. Returned newest-first. Free, public-domain (CISA).


description: Threat-intelligence reputation for an indicator of compromise (IOC) — pass ioc as an IP, domain, URL, or file hash (md5/sha1/sha256) and the type is auto-detected. Returns a malicious boolean plus a per-source breakdown: abuse.ch ThreatFox (IOC→malware/threat mapping), URLhaus (malicious URLs on a host/URL), MalwareBazaar (known malware samples by hash), Feodo Tracker (active botnet C2 IPs), Tor exit-node membership, and Spamhaus DROP (hijacked/criminal netblocks). Each source reports listed + a detail. Sourced from live, hourly-rotating threat feeds an LLM cannot know — a ground-truth liveness check for SOC alert triage, log enrichment, and blocklist decisions. Absence of a match is not proof of safety.


key: GET https://2s.io/api/security/ip-abuse

description: AbuseIPDB abuse report for a single IP — the crowd-sourced abuse-confidence score (0-100) the fail2ban / SSH-scanner / web-attack ecosystem reports into. Pass ip (IPv4 or IPv6). Returns abuseConfidenceScore, totalReports, numDistinctUsers, lastReportedAt, usageType (e.g. Data Center / Residential), ISP, domain, hostnames, isTor, isWhitelisted, and country. Set verbose=true for the individual report records (categories + reporter country). Optional maxAgeInDays (1-365, default 90) bounds the reporting window. Live crowd data an LLM cannot know — SOC alert triage, login-abuse blocking, and firewall decisions.

recordKey: GET https://2s.io/api/security/ip-abuse


description: AbuseIPDB bulk blacklist — the most-reported abusive IPs above a confidence threshold, the canonical fail2ban / firewall block-feed. Returns ipAddress, countryCode, abuseConfidenceScore, and lastReportedAt for each entry, plus the list's generatedAt timestamp. Tune confidenceMinimum (25-100, default 90), limit (1-10000, default 100), ipVersion (4 or 6), and onlyCountries / exceptCountries (comma-separated ISO-2). Live crowd-sourced threat feed for populating drop lists, WAF rules, and edge blocklists.


key: GET https://2s.io/api/security/ip-block

description: AbuseIPDB subnet (CIDR) check — which IPs inside a network block have been reported for abuse. Pass network as a CIDR (e.g. 118.25.0.0/24; AbuseIPDB supports up to /16 for IPv4, /112 for IPv6). Returns the block metadata (network/netmask/min-max addresses, possible hosts, address-space description) plus reportedAddress: each flagged IP with numReports, abuseConfidenceScore, mostRecentReport, and country. Optional maxAgeInDays (1-365, default 30) and limit. Use to vet a hosting range, score a customer's netblock, or sweep your own allocation.

recordKey: GET https://2s.io/api/security/ip-block


description: Multi-source IP reputation with one combined authority score (0-100). Polls four independent reputation sources in parallel and blends them: AbuseIPDB (crowd-sourced abuse confidence), abuse.ch threat-lists (Feodo botnet C2 + ThreatFox + Spamhaus DROP + Tor exit nodes), blocklist.de (fail2ban attack-report network), and StopForumSpam. Returns combinedScore, a verdict (clean / low / suspicious / malicious), which sources flagged it, per-source opinions (score + weight + detail), and enrichment (ISP, usage type, country, ASN, Tor). An authoritative threat-list hit (botnet/malware/hijacked netblock) hard-floors the verdict at malicious. Per-source isolation: a down feed degrades that opinion only. The one-call answer for 'should I trust this IP?' instead of trusting a single feed.


key: GET https://2s.io/api/security/package

description: Security and provenance for an open-source package, composed live from three authoritative sources in one call. Pass ecosystem (npm, pypi, go, maven, cargo, nuget) + name (+ optional version; defaults to latest). Returns: known vulnerabilities from OSV (osv.dev — aggregates GitHub Security Advisories, PyPA, RustSec, Go vuln DB, etc.) each with its id, CVE aliases, summary, severity, and references; the resolved license and deprecation status (deps.dev); and the source repo's OpenSSF Scorecard health score (overall + per-check) plus stars/forks/open-issues. All live — newly-disclosed advisories appear within hours. Distinct from registry.npm-lookup / pypi-lookup (metadata only): this answers "is this dependency safe to add, what license does it carry, and how well-maintained is it."

recordKey: GET https://2s.io/api/security/package


description: USDA Plant Hardiness Zone for a US ZIP code — the standard planting zone (e.g. "9b") plus its average annual minimum-temperature range (°F) and the ZIP centroid. Keyless, public-domain (USDA PHZM). The "what grows where" primitive for gardening, landscaping, nursery, and agronomy agents.


key: GET https://2s.io/api/soil/profile

description: Ground-truth soil profile for any US latitude/longitude from the USDA-NRCS SSURGO survey (Soil Data Access). Returns the soil map unit plus its component soil types ranked by composition percent, each with taxonomic order/class, drainage class, hydrologic group, and representative slope. Keyless, public-domain. Use for agronomy, land assessment, hydrology, septic/foundation suitability, and crop-fit reasoning. Coordinates over water or outside surveyed areas return an empty component list.

recordKey: GET https://2s.io/api/soil/profile


key: GET https://2s.io/api/space/body

description: Look up any asteroid or comet in NASA JPL's Small-Body Database by designation, number, or name (e.g. "433", "Eros", "433 Eros", "1P/Halley", "2024 YR4"). Returns full name + kind + orbit class (e.g. Amor, Apollo, Jupiter-family comet), NEO and potentially-hazardous-asteroid flags, physical params (absolute magnitude H, diameter, extent, rotation period, albedo, density, spectral type), and orbital elements (eccentricity, semi-major axis, perihelion/aphelion, inclination, period, Earth MOID, observation arc). Astronomy, planetary-defense, and mission-planning research. Public-domain NASA/JPL data; for a body's near-Earth close approaches see /api/space/close-approaches.

recordKey: GET https://2s.io/api/space/body


description: List near-Earth asteroid/comet close approaches to Earth within a date window and maximum distance, from NASA JPL's Close-Approach Data API. Filter by dateMin / dateMax (YYYY-MM-DD) and distMaxAu (max approach distance in AU; default 0.05 AU ≈ 19.5 lunar distances). Each approach: object designation, close-approach date (UTC), nominal + minimum distance in AU and lunar distances, relative velocity (km/s), and absolute magnitude H (a size proxy). Sorted nearest-first. Planetary-defense, observation planning, and "what's passing by this month" queries. Public-domain NASA/JPL data; for full physical/orbital params of a listed object see /api/space/body.


key: GET https://2s.io/api/space/exoplanet

description: Search confirmed exoplanets in the NASA Exoplanet Archive (~6,000, updated weekly — past any LLM training cutoff). Filter by name (planet, partial), hostStar (partial), discoveryYear, or method (e.g. "Transit", "Radial Velocity", "Microlensing"). Each planet: name, host star + how many stars/planets in the system, discovery method/year/facility, orbital period, semi-major axis, radius (Earth radii), mass (Earth masses), equilibrium temperature, insolation; host-star spectral type/temperature/radius/mass; distance in parsecs + light-years; and RA/dec. Astronomy, habitability research, science education. Public-domain NASA data.

recordKey: GET https://2s.io/api/space/exoplanet


key: GET https://2s.io/api/space/launches

description: Upcoming or recent orbital rocket launches from The Space Devs' Launch Library 2 — the live manifest behind most launch-tracking apps. `when`=upcoming (default) or previous. Optional `search` filters by rocket, provider, or mission text (e.g. "Starship", "SpaceX", "Artemis"). Each launch: name, status (Go/TBD/Success/Failure), NET launch time + window (UTC), launch provider, rocket configuration, pad + location, mission name/type/orbit/description, and whether a webcast is live. Real-time data agents can't get from training. Public CC-BY data (attribute The Space Devs).

recordKey: GET https://2s.io/api/space/launches


key: GET https://2s.io/api/space/observe

description: Compute where any asteroid or comet is in the sky and whether you can see it. Give a body (designation/number/name, e.g. "433 Eros", "Ceres", "2024 YR4") and optionally your lat/lon and a time (ISO, default now). Returns the body's identity (NEO/PHA flags, orbit class, absolute magnitude H), its geocentric right ascension + declination, the constellation it's in, geocentric + heliocentric distance (AU), solar phase angle, and its apparent visual magnitude (IAU H-G model — how bright it appears now). With lat/lon it adds altitude/azimuth, whether it's above your horizon, a visible-now flag (up AND sky dark), and the best viewing window in the next 24 hours (when it's highest during darkness). Orbital position is computed locally from JPL elements — VALIDATED against JPL Horizons to <0.1 arc

recordKey: GET https://2s.io/api/space/observe


key: GET https://2s.io/api/space/satellite

description: Compute the current position of any cataloged Earth-orbiting satellite by NORAD catalog number (e.g. 25544 = ISS, 20580 = Hubble), using fresh Celestrak orbital elements propagated with SGP4. Returns sub-point latitude/longitude, altitude (km), and speed (km/s) for the requested instant (default: now; pass `at` as an ISO timestamp for any time within a few days of the elements' epoch). Supply observer `lat`/`lon` (and optional altKm) to also get look angles — azimuth, elevation, slant range, and whether the satellite is above your horizon — for visual/antenna pointing. Satellite tracking, pass prediction, ground-station planning. Public-domain orbital data; physical/mission metadata is not included.

recordKey: GET https://2s.io/api/space/satellite


key: GET https://2s.io/api/space/satellites

description: Search the catalog of every cataloged Earth-orbiting object — ~69,000 satellites, rocket bodies, and debris tracked by US Space Force / 18 SDS (via CelesTrak SATCAT). Filter by name (q, e.g. "starlink"), owner/launching country (owner — code like US/PRC/CIS or a name like "china"), object type (type = payload | rocket body | debris | unknown), launch-year range (launchYearFrom/launchYearTo), international/COSPAR designator prefix (intlDesignator, e.g. "2024-"), on-orbit vs decayed (onOrbit), or exact NORAD number (noradId). Each result carries the NORAD id, name, international designator, object type, owner + resolved country, launch date + site, decay date (null = still in orbit), and orbital parameters (period, inclination, apogee, perigee). The envelope total is the full count matching

recordKey: GET https://2s.io/api/space/satellites


key: GET https://2s.io/api/space/sky-tonight

description: Observer-local sky almanac for any lat/lon and time (default now). Returns the Sun's next rise/set + current altitude/azimuth; the Moon's rise/set, current alt/az, phase angle, phase name (New → Full → Waning Crescent), illuminated fraction, and next moon quarter; and for all seven non-Earth planets (Mercury→Neptune): altitude, azimuth, RA/dec, distance (AU), apparent magnitude, and whether each is currently above the horizon. Computed from first principles (astronomy-engine, sub-arcminute) — no external service, no key. Stargazing, astrophotography planning, 'what's up right now', is-it-dark-yet. `at` accepts any ISO timestamp.

recordKey: GET https://2s.io/api/space/sky-tonight


key: GET https://2s.io/api/space/skywatch

description: One call → what's notable in YOUR sky right now, for a lat/lon. Synthesizes three sources: (1) the live almanac — sun up/down, moon phase + illumination, and which of the 7 naked-eye planets are currently above your horizon with their altitude/azimuth/magnitude; (2) near-Earth asteroid close approaches over the next 7 days (designation, date, distance in lunar distances); and (3) the ISS — its current sub-point, and whether it is above your horizon right now with look angles. Each section reports found/error independently. The "is it dark, what's up, anything passing" digest for stargazers and astrophotographers. For the raw almanac alone see /api/space/sky-tonight.

recordKey: GET https://2s.io/api/space/skywatch


key: GET https://2s.io/api/space/system

description: Profile a confirmed exoplanetary system by host-star name (e.g. "TRAPPIST-1", "Kepler-90", "TOI-700"). Groups all the star's known planets into one view, summarizes the host star (spectral type, temperature, radius, mass, distance in light-years), and COMPUTES the star's habitable ("Goldilocks") zone — inner and outer boundary in AU, derived from the stellar luminosity (effective temperature + radius vs. the Sun) — then flags which planets orbit within it. Each planet: radius/mass (Earth units), orbital period, semi-major axis, equilibrium temperature, and in-habitable-zone flag. Astronomy, habitability research, education. Built from the NASA Exoplanet Archive (the same data as /api/space/exoplanet) plus the computed HZ. Public-domain NASA data.

recordKey: GET https://2s.io/api/space/system


description: MLB games for a date (and optionally one team), via the official MLB Stats API (free/keyless). Each game: gamePk, start time, detailed status (Scheduled/In Progress/Final), away and home team + score, and venue. Defaults to today when no date is given. Live scores + schedule for agents.


description: MLB regular-season standings for a season (official MLB Stats API, free/keyless). Each team: wins, losses, win %, games back, division + league rank, and current streak. Defaults to the current season.


key: GET https://2s.io/api/sports/nba-games

description: NBA games from balldontlie — schedule and scores in one feed. Filter by season (start year), a single date, and/or team id. Each game: date, season, status, postseason flag, home/visitor teams and final (or live) scores. Cursor-paginated (pass meta.cursor as cursor to continue).

recordKey: GET https://2s.io/api/sports/nba-games


description: NBA players from balldontlie — search by name and page through results. Each player: id, name, position, height, weight, jersey number, college, country, draft year, and current team. Cursor-paginated (pass meta.cursor as cursor to continue).


key: GET https://2s.io/api/sports/nba-teams

description: NBA teams from balldontlie — all 30 franchises with id, full name, abbreviation, conference, division, and city. Pass an optional team id to fetch a single team.

recordKey: GET https://2s.io/api/sports/nba-teams


key: GET https://2s.io/api/sports/nfl-games

description: NFL games from balldontlie — schedule and scores in one feed. Filter by season, week, and/or team id. Each game: date, season, week, status, postseason flag, venue, recap summary, home/visitor teams and final (or live) scores. Cursor-paginated (pass meta.cursor as cursor to continue).

recordKey: GET https://2s.io/api/sports/nfl-games


description: NFL players from balldontlie — search by name and page through results. Each player: id, name, position, height, weight, jersey number, college, experience, age, and current team. Cursor-paginated (pass meta.cursor as cursor to continue).


key: GET https://2s.io/api/sports/nfl-teams

description: NFL teams from balldontlie — all 32 franchises with id, full name, abbreviation, conference (AFC/NFC), division, and city. Pass an optional team id to fetch a single team.

recordKey: GET https://2s.io/api/sports/nfl-teams


description: Upcoming NHL game schedule for the week anchored on a date (official NHL api-web, free/keyless). Each game: id, date, start time (UTC), game state (FUT/LIVE/OFF), game type (Preseason/Regular Season/Playoffs), away and home team + abbreviation + score, venue, and TV broadcasts. Optionally filter to one team by 3-letter abbreviation (e.g. TOR). Defaults to the week starting today. Forward-looking matchups for scheduling agents — distinct from nhl-scores (single-day results).


key: GET https://2s.io/api/sports/nhl-scores

description: NHL scores and games for a date (official NHL api-web, free/keyless). Each game: id, game state (FUT/LIVE/FINAL), start time, away and home team + score. Defaults to today.

recordKey: GET https://2s.io/api/sports/nhl-scores


description: Recent news articles about a specific US-listed company. Pass ticker and optionally a from/to date window (YYYY-MM-DD; defaults to the last 14 days); returns headlines with source, summary, URL, image, related symbol, category, and publish time (newest first). Use it to catch up on what is being written about a company. News aggregated by Finnhub.


description: Historical quarterly earnings surprises for a US-listed company — reported (actual) EPS vs the analyst consensus estimate, the absolute surprise, and the surprise percentage, for the most recent quarters (newest first). Pass ticker (optionally limit). Tells you whether a company has been beating or missing expectations. Data by Finnhub.


description: As-reported financial statements for a US-listed company, exactly as filed with the SEC — balance sheet, income statement, and cash-flow statement line items, parsed from each 10-K/10-Q. Pass ticker and optionally freq (annual or quarterly) and limit; returns the most recent filings (newest first) with filing metadata (form, period, filed date, accession) and the full report under `report`. Data by Finnhub.


description: US federal government spending awarded to a public company (sourced from USAspending). Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~2 years); returns each award with the recipient (and parent), awarding agency/sub-agency, obligated/outlayed/potential/total values in USD, action date, and period of performance. Use it to see how much federal money flows to a company. Data by Finnhub.


key: GET https://2s.io/api/stocks/h1b-visas

description: US work-visa (H-1B and related) applications filed by a public company, sourced from Department of Labor LCA disclosures. Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~2 years); returns each application with job title, SOC code, visa class, case status, wage range, worksite city/state, employment dates, and case number. Use it as a hiring/headcount signal. Data by Finnhub.

recordKey: GET https://2s.io/api/stocks/h1b-visas


description: Aggregated insider sentiment for a US-listed company, by month. For each month returns the net change in insider share holdings and Finnhub's MSPR (Monthly Share Purchase Ratio, −100 to +100 — higher means more net insider buying). Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~1 year). A distilled signal layered on top of raw insider filings. Data by Finnhub.


key: GET https://2s.io/api/stocks/lobbying

description: US federal lobbying disclosures for a public company (sourced from US Senate LDA filings). Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~3 years); returns each filing with the registrant name, the period (year + quarter), reported lobbying income/expenses in USD, and a link to the official Senate filing. Use it to track a company’s lobbying spend over time. Data by Finnhub.

recordKey: GET https://2s.io/api/stocks/lobbying


key: GET https://2s.io/api/stocks/metrics

description: Key fundamental metrics and 52-week price statistics for a US-listed company. Pass ticker; returns headline valuation, margin, and per-share figures — P/E, P/B, P/S, PEG, EV/EBITDA, gross/operating/net margins, ROE, ROA, current ratio, debt/equity, dividend yield, beta, 52-week high/low, and YTD/52-week price returns — plus the full Finnhub metric map under `metric`. Computed ratios you would otherwise derive yourself from raw filings. Market & fundamental data by Finnhub.

recordKey: GET https://2s.io/api/stocks/metrics


key: GET https://2s.io/api/stocks/patents

description: USPTO patent activity associated with a public company. Pass ticker and optionally a from/to window (YYYY-MM-DD; defaults to ~2 years); returns each record with the application number, patent number (when granted), the filing company name(s), description/title, patent type, filing status, filing and publication dates, and a document URL. A company-level innovation/R&D signal (distinct from our keyword patent search). Data by Finnhub.

recordKey: GET https://2s.io/api/stocks/patents


key: GET https://2s.io/api/stocks/peers

description: Peer companies for a US-listed ticker — other companies in the same sector and sub-industry, useful for comparables, relative valuation, and screening. Pass ticker (optionally grouping to control how peers are grouped); returns a ranked list of peer ticker symbols (the input symbol is usually first). Data by Finnhub.

recordKey: GET https://2s.io/api/stocks/peers


key: GET https://2s.io/api/stocks/quote

description: Latest daily stock quote for a US-listed ticker. Returns the most recent completed trading session: open, high, low, close, volume, VWAP, and trade count, plus the change and percent change versus the prior session, and company reference data (name, primary exchange, security type, currency, market cap). NOTE: this plan tier serves end-of-day / delayed data (the response flags delayed=true), suitable for daily snapshots, fundamentals context, and post-close analysis rather than real-time trading. Pass ticker as a US symbol (e.g. AAPL, MSFT, BRK.B). Market data by Massive (formerly Polygon.io).

recordKey: GET https://2s.io/api/stocks/quote


description: Analyst recommendation trend for a US-listed company — the number of analysts rating it strong buy, buy, hold, sell, and strong sell, snapshotted per month (newest first). Pass ticker. Use it to see the consensus and how sentiment is shifting over time. Data by Finnhub.


key: GET https://2s.io/api/stocks/symbols

description: Search or list the tradable equity symbol universe for an exchange. Pass q to substring-match on symbol or company name (case-insensitive), and/or exchange (default US) and limit. Returns matching listings with symbol, display symbol, description (company name), security type (e.g. Common Stock, ETF), currency, MIC, and FIGI. Use it to resolve a name to a ticker or enumerate a market. Data by Finnhub.

recordKey: GET https://2s.io/api/stocks/symbols


key: GET https://2s.io/api/store/kv-get

title: 2s Store — KV Get (wallet-keyed persistence)

recordKey: GET https://2s.io/api/store/kv-get


key: GET https://2s.io/api/sunrise/compute

description: Compute sunrise, sunset, solar noon, and civil/nautical/astronomical twilight times for a coordinate + date. Query: lat (-90..90), lon (-180..180), date (YYYY-MM-DD). All times returned as ISO 8601 UTC. At high latitudes near solstices an event may not occur (polar day/night) — those fields return null and a note is included. dayLengthMinutes is the sunrise→sunset interval.

recordKey: GET https://2s.io/api/sunrise/compute


key: GET https://2s.io/api/tax/vat

description: Validate a European Union VAT number against the official VIES (VAT Information Exchange System) register in real time. Confirms whether the VAT identifier is currently registered for intra-EU trade and, when the member state discloses them, returns the registered business name and address. Covers the 27 EU member states (Greece as EL) plus Northern Ireland (XI); Great Britain (GB) is not in VIES. Pass either a full identifier (vat=DE811569869) or country + number. Returns {valid, countryCode, vatNumber, name, address, requestDate, reason}. When a member-state register is temporarily down, returns a retryable 503 rather than a false negative. Data from the European Commission VIES service.

recordKey: GET https://2s.io/api/tax/vat


key: GET https://2s.io/api/tax/vat-rates

description: Current EU VAT rates by member state — standard rate plus reduced/super-reduced/parking/zero rates. Pass `country` (ISO 2-letter; Greece is EL) for one state, or omit it for all 27. Each result returns the standard rate, the list of reduced rates in force, every rate category with its percentage, and the date the rates are in force. Source: European Commission TEDB (Taxes in Europe Database), refreshed regularly. Pairs with tax.vat (which validates a specific VAT number against the live VIES register).

recordKey: GET https://2s.io/api/tax/vat-rates


key: GET https://2s.io/api/tax/vat-validate

health: degraded

recordKey: GET https://2s.io/api/tax/vat-validate

level: origin-reachable

status: discovered

basis: discovery-only


key: GET https://2s.io/api/tcg/card

title: 2s TCG — Trading Card Lookup

recordKey: GET https://2s.io/api/tcg/card


description: Search FCC Electronic Comment Filing System (ECFS) filings for a proceeding/docket (e.g. 17-108 net neutrality, 11-42 Lifeline). Optionally filter by filer name. Returns the newest filings with the submission id, filer, type, lead bureau, received/disseminated dates, and document count. Public-domain federal data. Track FCC regulatory dockets, comments, and ex-parte filings an LLM can't recite fresh.


description: Map a US latitude/longitude to its FCC spectrum-licensing geographies — Cellular Market Area (CMA), Basic Trading Area (BTA), Major Trading Area (MTA), Partial Economic Area (PEA), and the BEA/EAG/MEA/REAG economic areas — plus the 2020 Census block FIPS, county, and block population. Keyless, public-domain (FCC). These market areas define spectrum-license boundaries (which CMA/BTA/PEA a point falls in) — distinct from ordinary geocoding, and not derivable by an LLM.


key: GET https://2s.io/api/tides/now

description: Next high/low tide predictions near a coordinate. Query: lat (-90..90), lon (-180..180), radius_km (1-500, default 100), hours (1-72, default 24). Returns { query, station:{ id, name, latitude, longitude, state, distanceKm }, predictions[{ time (station local), type: "high"|"low", heightMeters }], source }. Returns 404 NO_STATION if no NOAA tide station is within radius. Heights are referenced to MLLW (Mean Lower-Low Water).

recordKey: GET https://2s.io/api/tides/now


key: GET https://2s.io/api/time/parse

description: Parse a timestamp or date string into canonical forms — zero-dependency. Accepts unix seconds/millis or any standard date string (ISO-8601, RFC-2822, etc.). Returns UTC ISO, unix seconds + millis, RFC-2822, calendar components (year/month/day/hour/minute/second/weekday), ISO weekday, ISO year+week, and day-of-year. Pass an IANA timezone (tz) to also get the DST-correct local wall-clock time and UTC offset. The reliable time primitive for agents normalizing or converting timestamps.

recordKey: GET https://2s.io/api/time/parse


key: GET https://2s.io/api/timezone/lookup

description: Resolve a coordinate to its IANA timezone and return the current UTC offset, local wall time, DST status, and short abbreviation. Query: lat (-90..90), lon (-180..180), at (optional ISO 8601 instant; defaults to now). Returns { tz, abbreviation, offsetMinutes, offsetHours, localTime, observesDst, isDst, januaryOffsetMinutes, julyOffsetMinutes, instant, source }. Polygon lookup against a CC0 timezone boundary index; offsets and DST come from the runtime tzdata so transition rules stay current. Use when scheduling for a coordinate, converting timestamps to local wall time, or checking whether a location is currently observing daylight saving.

recordKey: GET https://2s.io/api/timezone/lookup


key: GET https://2s.io/api/tld/info

description: TLD registry intelligence and public-suffix analysis. Mode 1 (tld=io): IANA root-zone metadata — type (generic / country-code / sponsored), managing organization, unicode form for IDN TLDs. Mode 2 (domain=shop.example.co.uk): full Public Suffix List algorithm — the effective public suffix (co.uk), the registrable domain (example.co.uk), the subdomain part, the matched PSL rule, and whether the suffix is ICANN (registry) or private (corporate, e.g. github.io / s3.amazonaws.com) — plus the root-zone metadata for its TLD. Correctly handles wildcard and exception rules and IDN/punycode input. Use for cookie scoping, per-registrant rate limiting, URL dedup, and abuse/phishing analysis. Data: IANA root zone + Mozilla PSL, refreshed weekly.

recordKey: GET https://2s.io/api/tld/info


key: GET https://2s.io/api/tls/cert-info

description: Open a live TLS connection to a host and return its certificate. Give a host (and optional port, default 443). Returns the negotiated TLS protocol + cipher, whether the chain validates against system roots, and the leaf certificate's subject + issuer (CN/O/C), validity window (valid-from / valid-to), days until expiry + expired flag, serial number, SHA-256 fingerprint, Subject Alternative Names, and the chain length. A genuine network probe agents can't do from their sandbox — for cert-expiry monitoring, TLS audits, and verifying who issued a site's certificate. SSRF-guarded: the host must resolve to a public address. Self-signed and expired certs are reported (not rejected).

recordKey: GET https://2s.io/api/tls/cert-info


description: Cross-walk a traded-good code across HS (6-digit international Harmonized System) <-> HTS (US 10-digit import) <-> Schedule B (US 10-digit export) <-> NAICS industry. Pass the system + code and get the shared HS6, the official description, the matching Schedule B and HTS national lines, the NAICS industry(ies), and the SITC code. The join an import/export, customs, or supply-chain agent needs to move between the export schedule, the import tariff schedule, the international HS level, and the industry that makes the good -- all keyed on the globally-harmonized HS6 bridge. Backed by bundled public-domain US Census Foreign Trade concordances (Schedule B + HTS, latest annual). For a 10-digit input the NAICS is narrowed to that exact national line; cross-schedule lines are surfaced via the shar


key: GET https://2s.io/api/trade/flows

description: Annual international merchandise-trade flows from UN Comtrade (HS classification). Pass reporter (the country whose trade you want; ISO-2/ISO-3 like 'US'/'USA', a UN M49 number, or 'World'), optional partner (counterparty; default World), year (YYYY), flow (export|import), and commodity: 'TOTAL' (all goods, default), a specific HS code ('27', '8703'), or 'AG2'/'AG4'/'AG6' for a top-commodity breakdown at the 2/4/6-digit level. Returns trade value (USD), net weight, quantity, and the HS commodity, sorted by value. Country names are resolved from Comtrade's own reference data.

queryParamNames: commodity flow limit partner reporter year

recordKey: GET https://2s.io/api/trade/flows


key: GET https://2s.io/api/trade/locode

description: Look up or search UN/LOCODE — the United Nations Code for Trade and Transport Locations (~116k locations, all countries). Pass `locode` for an exact code (e.g. USNYC or 'US NYC'). Or pass `query` to search location names, optionally filtered by `country` (ISO 3166 alpha-2) and `function` (port, rail, road, airport, postal, multimodal, fixed, border). Each result: locode, name, country, subdivision, transport functions, entry status, IATA code where it differs, and coordinates. UN/LOCODE is the standard location identifier in shipping schedules, EDI messages, and customs documents.

recordKey: GET https://2s.io/api/trade/locode


key: GET https://2s.io/api/trade/tariff

recordKey: GET https://2s.io/api/trade/tariff


key: GET https://2s.io/api/transcribe/audio

title: 2s Media — Audio Transcription

schemes: exact upto

scheme: upto

recordKey: GET https://2s.io/api/transcribe/audio


key: GET https://2s.io/api/travel/advisory

description: Current US State Department travel advisories. Omit country for the full list (every country with an active advisory), or pass country (name, case-insensitive substring) for one. Each entry returns the country, the advisory level (1 Exercise Normal Precautions, 2 Exercise Increased Caution, 3 Reconsider Travel, 4 Do Not Travel) with its label, a plain-text summary of the reasons (crime, terrorism, unrest, kidnapping, health, etc.), the official advisory link, and the published date. Sourced live from the official travel.state.gov RSS feed (US government, public domain). For trip planning, duty-of-care, and travel-risk screening.

recordKey: GET https://2s.io/api/travel/advisory


key: GET https://2s.io/api/travel/visa

description: Look up the visa requirement for a traveler with a given passport visiting a destination country. Pass passport and destination as ISO-3166 alpha-3, alpha-2, or country name (e.g. passport=USA destination=Japan). Returns the requirement category — 'visa free' (with visaFreeDays, the allowed days), 'visa on arrival', 'e-visa', 'eta' (electronic travel authorization), 'visa required' (must arrange in advance), or 'no admission' — plus a plain-language description and the resolved passport/destination names. Data from the community-maintained Passport Index dataset (MIT). Informational only — not official immigration advice; verify with the destination's embassy before travel.

recordKey: GET https://2s.io/api/travel/visa


key: GET https://2s.io/api/treasury/cash

description: Daily Treasury Statement (DTS) operating cash balance via US Treasury Fiscal Data. Returns daily snapshots of the Treasury General Account (TGA) at the Federal Reserve plus tax-and-loan accounts and Federal Reserve deposit accounts. Each row carries record_date, account_type, close_today_bal, open_today_bal, open_month_bal, open_fiscal_year_bal. Useful for liquidity-tracking agents and macro researchers watching the Treasury Cash Balance heading into Treasury auctions, debt-ceiling pinch-points, etc. Fiscal Data filter syntax.

recordKey: GET https://2s.io/api/treasury/cash


key: GET https://2s.io/api/treasury/debt

description: US National Debt — daily "Debt to the Penny" via US Treasury Fiscal Data. Each row carries record_date, debt held by public, intragovernmental holdings, and total public debt outstanding (all USD, signed integers as strings to preserve precision). Optional `filter` uses Fiscal Data syntax: `col:op:val` joined by commas (ops: eq, lt, lte, gt, gte, in). Default sort is `-record_date` (newest first). Authoritative source for "how much does the US owe?" — every weekday since 1993.

recordKey: GET https://2s.io/api/treasury/debt


description: Official US Treasury exchange rates via US Treasury Fiscal Data. Used by federal agencies to report foreign-currency transactions in USD. Quarterly + ad-hoc updates per country/currency pair. Each row carries record_date, country, currency, country_currency_desc, exchange_rate, effective_date. Pair with `/api/fx/rates` (ECB Frankfurter, daily market rates) for cross-validation. Use Fiscal Data filter syntax — e.g. `filter=country:eq:Brazil` to scope to a single country.


description: Monthly Treasury Statement (MTS) — Table 4: receipts by source via US Treasury Fiscal Data. Returns monthly totals of federal government receipts grouped by classification (individual income tax, corporate income tax, social-insurance receipts, excise, customs, estate-and-gift, miscellaneous). Each row carries record_date, classification_id, classification_desc, current_month + current_fytd (fiscal year-to-date) gross_rcpt / refund / net_rcpt amounts, plus prior_fytd comparisons. Backbone of any "how much money is the federal government bringing in" question. Use Fiscal Data filter syntax.


key: GET https://2s.io/api/url/clean

description: Fetch any URL and return its article content with the clutter stripped — nav, ads, sidebars, footers, scripts, styles, comments removed via heuristic extraction (<article> / <main> / role=main / densest block). Choose the output with `format`: markdown (default), text, both (JSON envelope), html (a self-contained readable reader-view page, raw text/html), or pdf (a clean typeset reading document, raw application/pdf). html/pdf are built from the same cleaned content, so they carry no live page, no third-party assets, no trackers. SSRF-guarded, 512KB body cap, 8s timeout, 5 redirects max. JSON formats return { url, finalUrl, title, markdown?, text?, wordCount, sourceBytes }. This uses a raw HTTP fetch (no JavaScript) — for client-rendered / SPA pages whose content only appears after JS runs

recordKey: GET https://2s.io/api/url/clean


key: GET https://2s.io/api/url/map

description: Discover the URLs a page or sitemap points at in a single fetch. Point it at an XML sitemap or sitemap-index and it returns the <loc> URLs; point it at an HTML page and it returns the <a href> links — auto-detected. URLs are resolved to absolute, de-duplicated, fragment-stripped, and http(s)-only. `limit` (1-2000, default 200) caps the count; `sameHostOnly` keeps only links on the same host. Single SSRF-guarded fetch, no JavaScript, stateless — NOT a recursive crawler: to go deeper, call map again on a child sitemap or a discovered page. Returns { url, finalUrl, source: "sitemap"|"links", count, capped, urls }.

recordKey: GET https://2s.io/api/url/map


key: GET https://2s.io/api/url/render

description: Render a URL in a real headless browser (JavaScript executed) and return its article content with the clutter stripped — same cleaning + output formats as /api/url/clean, but for client-rendered / SPA pages whose content only appears after JS runs (where a raw HTTP fetch returns an empty shell). `format`: markdown (default), text, both (JSON envelope), html (self-contained reader page, raw text/html), or pdf (typeset reading doc, raw application/pdf). Optional `waitUntil` (load|domcontentloaded|networkidle0|networkidle2, default networkidle2) and `timeoutMs` (1000-15000, default 12000) control how long to let JS settle. Use /api/url/clean instead for server-rendered pages — it is faster and cheaper; only reach for render when JS rendering is required.

recordKey: GET https://2s.io/api/url/render


key: GET https://2s.io/api/url/unfurl

description: Fetch any URL and extract structured page metadata: title, description, og:image, canonical, favicon, site name, author, published time, language, and the first ~500 chars of body text. SSRF-guarded against private networks. 8s timeout, 512 KB max body. Returns the parsed metadata plus the raw og:/twitter:/itemprop meta dictionary for inspection.

recordKey: GET https://2s.io/api/url/unfurl


key: GET https://2s.io/api/validate/aba

description: Validate a US bank ABA routing number with the Federal Reserve weighted mod-10 checksum (3-7-1) — not just a 9-digit regex. Returns {valid, routingNumber, district (routing-symbol class), reason}. Catches transposed digits in ACH/wire setup that a length check misses. Structure + checksum only; not a bank-directory existence lookup.

recordKey: GET https://2s.io/api/validate/aba


key: GET https://2s.io/api/validate/bic

description: Validate a SWIFT/BIC code (ISO 9362): 8 or 11 characters = 4-letter institution + 2-letter ISO country + 2-char location + optional 3-char branch, with the country position checked against ISO 3166. Returns {valid, bic, institution, country, location, branch, reason}. Structure validation only — not a SWIFT-directory existence lookup.

recordKey: GET https://2s.io/api/validate/bic


key: GET https://2s.io/api/validate/cusip

description: Validate a CUSIP (9-character US/Canada securities identifier) with its mod-10 weighted check digit. Returns {valid, cusip, checkDigit, reason}. Catches transposed characters in security master / holdings data that a length check misses. Structure + checksum only.

recordKey: GET https://2s.io/api/validate/cusip


key: GET https://2s.io/api/validate/gln

description: Validate a GS1 GLN (Global Location Number) — 13 digits with the GS1 mod-10 check digit. GLNs identify trading parties and physical locations (ship-to, bill-to, warehouse) across CPG supply chains and EDI. Returns {valid, gln, checkDigit, reason}. Catches transposed digits a length check misses.

recordKey: GET https://2s.io/api/validate/gln


key: GET https://2s.io/api/validate/gtin

description: Validate a product barcode — GTIN-8/12/13/14, UPC-A, EAN-13, or ISBN-10/13 — with the GS1 mod-10 check digit (ISBN-10 uses mod-11). Returns {valid, type, gtin14 (canonical 14-digit form, left-padded), checkDigit, reason}. Normalizes every product identifier to one GTIN-14 key so a product-master/ETL pipeline can dedupe and validate SKUs in one deterministic call instead of doing checksum math in an LLM.

recordKey: GET https://2s.io/api/validate/gtin


key: GET https://2s.io/api/validate/iban

description: Validate an International Bank Account Number (IBAN) with full ISO 13616 checks: country-specific length and the ISO 7064 mod-97 checksum (not just a regex). Returns {valid, iban (normalized), formatted (4-char groups), countryCode, checkDigits, bban, reason}. Catches transposed digits and wrong-length accounts that a format check misses, and returns the canonical form so a glue/ETL pipeline can validate AND normalize bank details in one deterministic call. ~85 countries. No bank directory lookup — structure + checksum only.

recordKey: GET https://2s.io/api/validate/iban


key: GET https://2s.io/api/validate/isin

description: Validate an ISIN (International Securities Identification Number, ISO 6166): 2-letter country prefix + 9-char NSIN + Luhn check digit. Returns {valid, isin, country, nsin, embeddedCusip (for US/CA), checkDigit, reason}. Catches transposed characters in security master data that a regex misses. Structure + checksum only.

recordKey: GET https://2s.io/api/validate/isin


key: GET https://2s.io/api/validate/lei

description: Validate a Legal Entity Identifier (LEI, ISO 17442) with the ISO 7064 mod-97-10 check digits — not just a 20-character regex. Returns {valid, lei (normalized), louPrefix (issuing LOU), checkDigits, reason}. Confirms a counterparty/vendor LEI is well-formed before lookup; pairs with GLEIF data for name + ownership resolution. Structure + checksum only.

recordKey: GET https://2s.io/api/validate/lei


key: GET https://2s.io/api/validate/sscc

description: Validate a GS1 SSCC (Serial Shipping Container Code) — 18 digits with the GS1 mod-10 check digit. SSCCs identify individual logistic units (pallets, cases) and are the key field in shipping/ASN (EDI 856) flows. Returns {valid, sscc, extensionDigit, checkDigit, reason}.

recordKey: GET https://2s.io/api/validate/sscc


description: Canadian-market vehicle dimensions and weights from NHTSA vPIC's Canadian Vehicle Specifications dataset. Pass year + make (required) and optional model to narrow. Returns one entry per matching trim with labeled dimensions — overall length/width/height (cm), wheelbase (cm), curb weight (kg), front/rear track width, interior head/leg/shoulder/hip room, and weight distribution — plus the full raw spec map. Authoritative measured specs (the SAE dimension codes), not estimates. Keyless, public-domain; covers model years 1971+.


description: NHTSA consumer complaints for a US vehicle by (make, model, modelYear). Returns the top N records (newest-filed first) with ODI number, affected component, plain-English summary, crash/fire flags, injury and death counts, partial VIN, and incident + filing dates. Backed by NHTSA's public complaints database; data is public-domain US government records.


description: Decode a 3-character World Manufacturer Identifier (the first three characters of a VIN) to the assigning manufacturer. Returns full manufacturer legal name, common short name, make, vehicle type, and the date NHTSA published the assignment. Useful for partial-VIN analysis — crash reports, damaged-vehicle photos, fleet records — where only the WMI is recoverable. Backed by NHTSA.gov vPIC; data is public-domain US government records.


description: Official US EPA/DOE fuel-economy, fuel-cost, and emissions data for a vehicle by year + make + model. Because a model-year often has several powertrain configurations (engine/transmission), this returns one entry per configuration, each with: MPG city/highway/combined (or MPGe for EVs), CO2 tailpipe grams/mile, estimated annual fuel cost (USD), annual petroleum use (barrels), EPA greenhouse-gas score (1-10), 5-year savings vs the average new vehicle, plus transmission, drivetrain, cylinders, displacement, fuel type, EPA size class, and electric range for EV/PHEV. Authoritative EPA test figures — the real ratings an agent should not estimate. Keyless, public-domain (FuelEconomy.gov), covers model years 1984+.


description: Chronological feed of NHTSA ODI (Office of Defects Investigation) investigations, newest first. Returns preliminary evaluations (PE), engineering analyses (EA), defect petitions (DP), and recall queries (RQ) — each with NHTSA ID, type code, open/close dates, status, subject, and full description (HTML stripped + raw). Useful for tracking what NHTSA is currently investigating (Tesla FSD, autonomous-vehicle crashes, Rivian suspension, etc.). NOTE: NHTSA's endpoint does NOT support make/model/year filtering — use vehicle.recalls or vehicle.complaints for vehicle-scoped lookups. Public-domain US government records.


description: Paginated list of every motor vehicle manufacturer NHTSA tracks via vPIC. Each record includes the canonical Mfr_ID, full legal name, common short name (e.g., "Honda"), country, and the list of vehicle types the manufacturer produces (Passenger Car, Truck, Motorcycle, Bus, MPV, etc.). Pass the optional `manufacturer` param to substring-search Mfr_Name. 100 records per page. Backed by NHTSA.gov; data is public-domain US government records.


key: GET https://2s.io/api/vehicle/models

description: Enumerate every model a manufacturer sold in a given model year via NHTSA's vPIC taxonomy database. Returns canonical NHTSA Model IDs + names plus the Make ID + name for reference. Useful as a discovery step before VIN decode (when the agent only knows make + year) or as input validation for vehicle.recalls / vehicle.complaints. Backed by NHTSA.gov; data is public-domain US government records.

recordKey: GET https://2s.io/api/vehicle/models


key: GET https://2s.io/api/vehicle/profile

description: Vehicle 360 — decode a VIN and get its full safety picture in one call. Returns the decoded vehicle (make, model, year, trim, engine, plant, body class, drivetrain — NHTSA vPIC) plus that exact make/model/year's open safety recalls (with park-it / park-outside / over-the-air-update flags) and NHTSA owner complaints (crash/fire/injury/death flags). recalls and complaints are keyed to the decoded make+model+year, so they describe THIS vehicle, not a generic feed. Each section reports found/error independently. Pass vin (17 chars); optional modelYear disambiguates pre-1980 VINs. Used for used-car due diligence, fleet safety, insurance. Individual sources: /api/vehicle/vin-decode, /api/vehicle/recalls, /api/vehicle/complaints.

recordKey: GET https://2s.io/api/vehicle/profile


key: GET https://2s.io/api/vehicle/recalls

description: NHTSA recall campaigns for a US vehicle by (make, model, modelYear). Returns every open + historical campaign with the NHTSA campaign number, manufacturer, affected component, plain-English summary/consequence/remedy text, and the parkIt / parkOutside fire-risk advisories. Backed by NHTSA's public recalls database; data is public-domain US government records.

recordKey: GET https://2s.io/api/vehicle/recalls


description: NHTSA NCAP 5-Star crash-test ratings for a US vehicle by (make, model, modelYear). Returns one item per crash-tested body style with the overall star rating, front/side/rollover sub-ratings, modeled rollover probability, crash-avoidance tech flags (electronic stability control, forward-collision warning, lane-departure warning), and complaint/recall/investigation counts. A vehicle with no crash testing returns an empty list (a valid result, not an error). Backed by NHTSA's public 5-Star Safety Ratings program; data is public-domain US government records.


description: Decode a 17-character VIN to manufacturer-supplied vehicle metadata via NHTSA's vPIC database. Returns identity (year, make, model, trim, series, body class, manufacturer), assembly plant (city, state, country), engine (cylinders, displacement, HP, fuel type, configuration, engine model), transmission (style, speeds), and body/weight specs. Curated to the ~30 fields agents actually use from vPIC's ~140-field response. Backed by NHTSA.gov; data is public-domain US government records.


key: GET https://2s.io/api/watchers/status

description: Status of a watcher by watcherId: state (armed/completed/expired/cancelled), fires used/remaining, expiry, recent deliveries (with HTTP result + attempt count), and any UNDELIVERED events with their full callback bodies — the pull backstop, so a missed push is always recoverable here. Pairs with watchers.crypto-address-activity.

recordKey: GET https://2s.io/api/watchers/status


key: GET https://2s.io/api/water/gauge

description: Real-time US river/stream conditions from a USGS monitoring site. Pass site = the USGS site number (e.g. 01646500 = Potomac River near Washington DC). Returns the latest readings — streamflow (cubic feet/sec), gage height (ft), and water/air temperature where available — with the site name + coordinates and observation time. Useful for flood monitoring, recreation, and hydrology. Source: USGS National Water Information System (keyless, public domain).

recordKey: GET https://2s.io/api/water/gauge


description: Current air quality for any coordinate worldwide. Pass lat + lon. Returns the US AQI (+ category Good/Moderate/Unhealthy…), the European AQI, and pollutant concentrations: PM2.5, PM10, ozone, nitrogen dioxide, sulphur dioxide, carbon monoxide. Source: Open-Meteo / CAMS (keyless).


key: GET https://2s.io/api/weather/alerts

description: Live US severe-weather alerts from the National Weather Service. Pass a point ("lat,lon") to get every active watch, warning, and advisory for that exact location, or an area (2-letter US state or marine zone code) for area-wide alerts. Optionally filter by severity or urgency. Each alert returns the event type, severity, urgency, certainty, headline, affected-area description, issuing office, recommended public response, onset / expiry / end times, and the full hazard description plus protective-action instructions. Results are sorted most-severe first and capped by limit, with the true total reported. Public-domain NOAA / National Weather Service data, refreshed in real time.

recordKey: GET https://2s.io/api/weather/alerts


key: GET https://2s.io/api/weather/forecast

description: Official US weather forecast for a coordinate (US land + territories). Pass lat + lon. Returns the National Weather Service forecast as a list of periods — by default ~7 days of day/night periods; pass hourly=true for an hour-by-hour forecast. Each period gives the temperature + unit, wind speed/direction, chance of precipitation, and a short + detailed forecast, plus the resolved city/state and issuing office. Source: US National Weather Service (api.weather.gov), public domain. For active warnings use weather.alerts.

recordKey: GET https://2s.io/api/weather/forecast


key: GET https://2s.io/api/weather/history

description: Historical daily weather for any coordinate (ERA5 reanalysis, 1940→~5 days ago). Pass lat + lon + start + end (YYYY-MM-DD, range ≤366 days). Returns per-day max/min/mean temperature (°C), precipitation total (mm) + hours, and max wind (km/h). Source: Open-Meteo archive / ECMWF ERA5 (keyless).

recordKey: GET https://2s.io/api/weather/history


key: GET https://2s.io/api/weather/marine

description: Current marine/sea-state conditions for an ocean or coastal coordinate. Pass lat + lon. Returns significant wave height (m), wave direction + period, and the wind-wave and swell-wave components. Useful for surf, sailing, and coastal ops. Source: Open-Meteo marine (keyless). Returns 404 for inland points.

recordKey: GET https://2s.io/api/weather/marine


key: GET https://2s.io/api/weather/zip

description: Current weather conditions for a US ZIP code (temperature, wind, humidity, conditions). Backed by the US National Weather Service (api.weather.gov) — public domain, no rate-limit pressure on commercial use.

recordKey: GET https://2s.io/api/weather/zip


key: GET https://2s.io/api/wikidata/entity

description: Fetch a Wikidata entity (Q42, P31, etc.) — structured knowledge-graph record with labels + descriptions + aliases in selectable languages, claims (property → value statements grouped by property ID), sitelinks (Wikipedia article title per language). 110M+ entities. CC0 public domain. Pass languages= as comma-separated codes (default "en") to control which language strings are included; pass maxClaimsPerProperty to cap how many statements come back per property (default 10).

recordKey: GET https://2s.io/api/wikidata/entity


key: GET https://2s.io/api/wikipedia/summary

description: Fetch a Wikipedia article summary in any of 30 supported languages. Returns title, displayTitle, lang, pageId, description, extract (plain text), extractHtml, lead image, canonical URLs, last-modified timestamp, word count, license, and an attribution string. Backed by https://<lang>.wikipedia.org/api/rest_v1/page/summary. Content is CC BY-SA 4.0 with attribution provided.

recordKey: GET https://2s.io/api/wikipedia/summary


key: GET https://2s.io/api/word/define

description: English dictionary lookup via dictionaryapi.dev (Wiktionary-sourced). Returns full entries with IPA phonetic transcription(s), audio pronunciation URLs, and meanings grouped by part of speech. Each meaning carries definitions with usage examples and per-definition synonyms + antonyms. CC BY-SA 3.0/4.0 — attribute when redistributing. Useful for vocabulary agents, writing assistants, language-learning tools.

recordKey: GET https://2s.io/api/word/define


key: GET https://2s.io/api/word/related

description: Related-word lookup via Datamuse. Supply a seed word and a relation kind: rhymes, near-rhymes, synonyms, antonyms, means (semantic match), triggers (associated by usage), homophones, sounds-like (phonetic neighbour), spelled-like (typo / wildcard), follows-from (words that come after), preceded-by (words that come before). Returns ranked candidates with relevance score, syllable count, and grammatical tags. Useful for content generation, rhyme/poetry, vocabulary expansion, and naming agents.

recordKey: GET https://2s.io/api/word/related


description: World Bank Open Data — fetch a time series of a specific indicator for a country (or 'all'). 1000+ indicators across 200+ countries, many series going back to 1960. Indicator codes are dotted-token strings, e.g., NY.GDP.MKTP.CD (GDP current US$), SP.POP.TOTL (population total), FP.CPI.TOTL.ZG (inflation CPI annual %), SL.UEM.TOTL.ZS (unemployment %), SE.ADT.LITR.ZS (adult literacy %), SP.DYN.LE00.IN (life expectancy). Country = ISO 2-letter (e.g., US, CN), ISO 3-letter (USA, CHN), or 'all'. Optional yearFrom/yearTo bracket. Each observation: country id+name, year, numeric value (may be null for missing), obsStatus. Returns indicator name + total count + pagination metadata.


providerName: Autonomagic

title: Autonomagic x402 - diff

description: diff utility with x402 micropayments. USDC on Base.

health: unknown

level: source-confirmed

error: timeout

outcome: skipped-origin-unreachable


title: Autonomagic x402 - encode

description: encode utility with x402 micropayments. USDC on Base.


title: Autonomagic x402 - fetch-url

description: fetch-url utility with x402 micropayments. USDC on Base.


title: Autonomagic x402 API - Hash

description: Hash generation utility API with x402 micropayments. Part of 10 AI agent utility APIs. USDC on Base.


title: Autonomagic x402 - random

description: random utility with x402 micropayments. USDC on Base.


title: Autonomagic x402 - regex-test

description: regex-test utility with x402 micropayments. USDC on Base.


title: Autonomagic x402 - timestamp

description: timestamp utility with x402 micropayments. USDC on Base.


title: Autonomagic x402 API - UUID

description: UUID generation utility API with x402 micropayments. Part of 10 AI agent utility APIs. USDC on Base.


title: Autonomagic x402 - validate-json

description: validate-json utility with x402 micropayments. USDC on Base.


title: Autonomagic x402 - word-count

description: word-count utility with x402 micropayments. USDC on Base.


title: GET /flow

description: Accumulation/distribution: кто накапливает и кто сливает токен на Base за окно блоков (net по адресам)

network: base


title: GET /momentum

description: Momentum токена на Base: активность текущего окна vs предыдущего (heating/cooling с процентом)


key: GET https://31-172-70-14.nip.io/pulse

title: GET /pulse

description: On-chain пульс токена на Base: живность, объём переводов, уникальные адреса за окно блоков

recordKey: GET https://31-172-70-14.nip.io/pulse


key: GET https://31-172-70-14.nip.io/trust

title: GET /trust

description: Оракул доверия к x402-сервисам: жив ли эндпоинт, валиден ли, репутация/аптайм, стоит ли платить (?endpoint=url). Без параметра — каталог реально рабочих сервисов

recordKey: GET https://31-172-70-14.nip.io/trust


key: GET https://31-172-70-14.nip.io/whales

title: GET /whales

description: Whale-алерты: крупные переводы токена на Base за окно блоков (from/to/сумма/tx), с порогом

recordKey: GET https://31-172-70-14.nip.io/whales


title: Base X Raid (small) — one payment creates a cluster of jobs for a single X post:...

description: Base X Raid (small) — one payment creates a cluster of jobs for a single X post: 20 likes (≈ 0.5 USDC), 10 reposts (≈ 0.25 USDC), 10 comments (≈ 0.25 USDC). Per-slot price is 0.025 USDC; total is fixed at ≈ 1 USDC. Flow: call without X-PAYMENT returns 402 discovery; retry the exact same URL with X-PAYMENT to confirm payment and create/confirm the jobs.

health: down


title: Base X Raid (custom) — one payment creates a custom cluster of jobs for a single...

description: Base X Raid (custom) — one payment creates a custom cluster of jobs for a single X post: 20 likes (≈ 0.5 USDC), 10 reposts (≈ 0.25 USDC), 10 comments (≈ 0.25 USDC), 0 bookmarks (≈ 0 USDC). Per-slot price is 0.025 USDC; total is ≈ 1 USDC (sum of slots × 0.025). Flow: call without X-PAYMENT returns 402 discovery; retry the exact same URL with X-PAYMENT to confirm payment and create/confirm the jobs.


description: Base X Raid (custom) — one payment creates a custom cluster of jobs for a single X post: 5 likes (≈ 0.125 USDC), 6 reposts (≈ 0.15000000000000002 USDC), 0 comments (≈ 0 USDC), 3 bookmarks (≈ 0.07500000000000001 USDC). Per-slot price is 0.025 USDC; total is ≈ 0.35000000000000003 USDC (sum of slots × 0.025). Flow: call without X-PAYMENT returns 402 discovery; retry the exact same URL with X-PAYMENT to confirm payment and create/confirm the jobs.


title: Base X Raid (large) — one payment creates a cluster of jobs for a single X post:...

description: Base X Raid (large) — one payment creates a cluster of jobs for a single X post: 100 likes (≈ 2.5 USDC), 40 reposts (≈ 1 USDC), 50 comments (≈ 1.25 USDC), 10 bookmarks (≈ 0.25 USDC). Per-slot price is 0.025 USDC; total is fixed at ≈ 5 USDC. Flow: call without X-PAYMENT returns 402 discovery; retry the exact same URL with X-PAYMENT to confirm payment and create/confirm the jobs.


title: Base X Raid (medium) — one payment creates a cluster of jobs for a single X post...

description: Base X Raid (medium) — one payment creates a cluster of jobs for a single X post: 50 likes (≈ 1.25 USDC), 20 reposts (≈ 0.5 USDC), 25 comments (≈ 0.625 USDC), 5 bookmarks (≈ 0.125 USDC). Per-slot price is 0.025 USDC; total is fixed at ≈ 2.5 USDC. Flow: call without X-PAYMENT returns 402 discovery; retry the exact same URL with X-PAYMENT to confirm payment and create/confirm the jobs.


description: Base X Raid (small) — one payment creates a cluster of jobs for a single X post: 20 likes (≈ 1 USDC), 10 reposts (≈ 0.5 USDC), 10 comments (≈ 0.5 USDC). Per-slot price is 0.05 USDC; total is fixed at ≈ 2 USDC. Flow: call without X-PAYMENT returns 402 discovery; retry the exact same URL with X-PAYMENT to confirm payment and create/confirm the jobs.


title: Base X Raid (small) — one payment creates a cluster of 3 jobs for a single X pos...

description: Base X Raid (small) — one payment creates a cluster of 3 jobs for a single X post: 20 likes (≈ 0.5 USDC), 10 reposts (≈ 0.25 USDC), 10 comments (≈ 0.25 USDC). Per-slot price is 0.025 USDC; total is fixed at ≈ 1 USDC. Flow: call without X-PAYMENT returns 402 discovery; retry the exact same URL with X-PAYMENT to confirm payment and create/confirm the 3 jobs.


title: Pay to retrieve a private file from Pinata by CID

networks: Base base eip155:8453


description: Pay to retrieve a private file from Pinata by CID


description: Combines security flags with the verified ABI's function names, then Claude explains the contract's dangerous capabilities — owner can mint, pause, blacklist, upgrade or self-destruct — with a danger level. Goes beyond raw flags to read what the contract can actually do.

level: origin-and-cross-source

outcome: not-safely-testable

reason: unresolved-url-template

status: qualified

basis: qualified-signals


description: Pull named fields out of any text as clean JSON (e.g. name, email, company, date). Powered by Claude structured outputs.


description: The zoom-out flagship: aggregates trending and newly-listed Base tokens, then Claude writes a concise market brief — mood, highlights, new & notable launches, and cautions (fresh/unknown tokens flagged for rug risk). One call gives a trading agent market context instead of dozens of lookups.


description: Paste text and get a 3-5 bullet summary from Claude. Pay-per-call — no API key or subscription needed on your side.


description: The flagship report: aggregates token risk, holder concentration, price/liquidity and OFAC sanctions, then Claude synthesizes a structured verdict (avoid → favorable) with key risks and positives. One call, agent-ready intelligence you can't get free.


description: Translate text into a target language with Claude. One micro-payment per translation.


description: Give a Base transaction hash and Claude explains what it actually did in plain English — the action, a risk read (failed tx, risky approval, high-value transfer), and notes. Turns raw calldata into an answer agents and humans can use.


description: The flagship wallet report: aggregates net worth, age/activity and recent transactions, then Claude synthesizes a verdict (e.g. fresh/risky → established/active) with key observations. One call, agent-ready wallet intelligence.


description: Pulls a wallet's active token approvals and Claude writes a security audit: overall risk level, USD at risk, and concrete revoke recommendations (which token/spender and why). The wallet-safety check agents and users run before trusting an address.


description: Ranks a wallet's active token approvals by USD-at-risk × unlimited-allowance × unlabelled-spender, and returns a prioritised revoke queue. Approvals are the #1 drain vector; this tells an agent exactly what to revoke first.


description: Live Base chain snapshot: latest block, base fee + priority fee (Gwei), current ETH price, and the estimated USD cost of a simple ETH transfer. For agents timing or budgeting transactions.


key: GET https://402.com.tr/api/x402/deep-dd

description: The premium flagship. One call runs the FULL battery — contract risk, holder concentration, liquidity depth, EXIT liquidity (can you actually sell), OFAC sanctions — and Claude synthesizes an institutional verdict: safety score, explicit buy/sell tradeability, liquidity & holder assessments, factors, risks, positives and a recommendation. The value is the orchestration + AI synthesis you can't get in one call anywhere else.

recordKey: GET https://402.com.tr/api/x402/deep-dd


description: Returns the USD price of a Base token on a specific date (YYYY-MM-DD) via Covalent. For agents computing cost basis, backtests, or P&L.


key: GET https://402.com.tr/api/x402/holders

recordKey: GET https://402.com.tr/api/x402/holders


description: Returns the latest tokens profiled on Base from the DexScreener feed — address, description, and links. Great for discovery bots hunting new launches early.


description: Current floor price for a Base NFT collection (OpenSea / LooksRare) via Alchemy. Pass the collection contract address. Coverage is limited to marketplace-listed collections. For agents tracking NFT markets.


description: Pulls a wallet's holdings and runs a risk check on each, flagging which positions are honeypots / high-risk / illiquid and the USD sitting in risky tokens. One call audits the whole wallet — 'which of the things you already hold could hurt you'.


key: GET https://402.com.tr/api/x402/quote

recordKey: GET https://402.com.tr/api/x402/quote


description: Pay once to watch a Base token's liquidity. We snapshot a baseline and, on each monitor run, POST your webhook if liquidity collapses (a liquidity pull — the actual moment of a rug). Not price moving — the pool being drained out from under you. Expires after 30 days.


outcome: unreachable

reason: timeout


description: The hard honeypot question, answered three ways: security simulation (honeypot, cannot-sell-all, sell/buy tax, transfer-pausable), a LIVE transfer simulation we run ourselves from a real holder (reverts/taxed?), and exit liquidity. Returns a hard canSell verdict with reasons. Selling is where rugs hide — check before you buy.


description: Lists a wallet's active token approvals — which contracts can spend its tokens, the allowance, USD value at risk and a risk factor (revoke.cash-style). Essential wallet-security check for agents and users.


description: Recent transfers of a specific token for a wallet — direction (in/out), amount, USD value, counterparty, tx hash and time, via Covalent. For agents tracking token flows and cost basis.


description: The latest transactions for a Base address — hash, time, from/to, ETH value, success — via Covalent. For agents tracking what a wallet is doing.


description: Complete ERC-20 portfolio for a Base address with accurate USD values from Covalent (handles stablecoins & long-tail tokens). Spam-filtered, sorted by value, with a total. The reliable portfolio endpoint.


description: Lists the NFT collections a Base wallet holds — name, count and floor value — spam-filtered, via Covalent. For agents profiling a wallet's NFT exposure.


description: Complete ERC-20 portfolio for a Base address — every non-zero token with balance, metadata and live USD value, plus a total. Token discovery via CDP Data API (Coinbase) with Alchemy fallback; USD from DexScreener.


description: Total transaction count, first & last activity timestamps, and wallet age in days for any Base address. Built for sybil/rug screening and counterparty trust checks.


providerName: Pinata

title: Pinata: Retrieve Private File

description: Retrieve a private file from Pinata by CID. Returns a temporary access URL. $0.0001 per request. No account needed — pay via x402.

registrySource: discovery


key: GET https://402atlas.com/api/verified

description: Atlas — independent paid-test map of x402 services: every verified service + response samples + avoid-list, each with on-chain receipts. Free human-readable reports: https://402atlas.com/report.html and https://402atlas.com/market-report.html (audit / discovery layer, not a task service)

recordKey: GET https://402atlas.com/api/verified


title: Access to protected content

description: Access to protected content


description: Convert a time between any two IANA time zones (DST-aware). Pay-per-call in USDC on Base.


key: GET https://402utils.com/v1/barcode

recordKey: GET https://402utils.com/v1/barcode


key: GET https://402utils.com/v1/batch

recordKey: GET https://402utils.com/v1/batch


description: Business-day math with real holiday calendars for FR, DE, GB, US, ES, IT, NL, BE (2025-2027, official sources — same datasets as /v1/holidays). Count working/weekend/holiday days in a date range (?from&to&country) or shift a date by N business days (?from&add=10&country). Weekend configurable (?weekend=fri,sat), optional ?region= for Länder/UK divisions. Holidays that suppress a working day are listed by name.


key: GET https://402utils.com/v1/c2pa-verify

recordKey: GET https://402utils.com/v1/c2pa-verify


key: GET https://402utils.com/v1/card-check

recordKey: GET https://402utils.com/v1/card-check


key: GET https://402utils.com/v1/chunk

recordKey: GET https://402utils.com/v1/chunk


key: GET https://402utils.com/v1/color

description: Colour utilities: ?op=convert (default) turns any hex/rgb()/hsl()/CSS-name into hex, rgb, hsl, hsv, alpha, relative luminance and exact CSS name; ?op=contrast with ?fg=&bg= returns the WCAG 2.x contrast ratio and AA/AAA pass/fail for normal & large text plus UI components (accessibility / EAA); ?op=palette derives complementary, analogous, triadic, tints and shades. Send hex without '#'.

recordKey: GET https://402utils.com/v1/color


description: Country reference card by ISO code (alpha-2/alpha-3/numeric) or English name: ISO 3166 codes, official name, current ISO 4217 currency (Bulgaria = EUR since 2026-01-01), dialling prefix, IANA ccTLDs (incl. IDN), languages, EU/EEA/Schengen/euro-area membership and the EU VAT prefix (Greece = EL). 56 countries: EU-27, EEA/EFTA, GB, US + 24 majors. Compiled from ISO/IANA/ITU/europa.eu sources, dated `asOf`.


key: GET https://402utils.com/v1/cron-next

description: Next occurrences of a cron expression in any IANA time zone, DST-aware via the runtime's ICU tzdb (times skipped by DST shift forward by the gap; ambiguous times fire once). Dialect (croner): 5-7 fields with optional seconds and year, ranges, steps, lists, JAN-DEC/SUN-SAT names, L, W, #, ? and @daily-style aliases. Each occurrence is returned as local ISO with offset plus UTC. Bad expression → 400 naming the offending field.

recordKey: GET https://402utils.com/v1/cron-next


key: GET https://402utils.com/v1/csv-diff

recordKey: GET https://402utils.com/v1/csv-diff


key: GET https://402utils.com/v1/csv-profile

recordKey: GET https://402utils.com/v1/csv-profile


key: GET https://402utils.com/v1/csv-to-json

recordKey: GET https://402utils.com/v1/csv-to-json


key: GET https://402utils.com/v1/dedupe

recordKey: GET https://402utils.com/v1/dedupe


key: GET https://402utils.com/v1/diff

recordKey: GET https://402utils.com/v1/diff


key: GET https://402utils.com/v1/dns-lookup

description: Resolve DNS records for a domain over DNS-over-HTTPS: A, AAAA, MX, TXT, NS and CNAME, one or several types per call (type=A,MX). Records come back normalised — MX priority split out, trailing dots stripped, TXT quoting removed — each with its TTL. Cloudflare DoH with automatic Google DoH fallback for resilience; NXDOMAIN is reported explicitly instead of as an error.

recordKey: GET https://402utils.com/v1/dns-lookup


description: Domain availability and expiry intelligence via RDAP, the WHOIS successor. Queries the authoritative registry for any RDAP-enabled TLD: free domains return registered:false, taken ones return registrar, creation and expiry dates, nameservers and EPP status codes. TLDs without RDAP coverage return supported:false. Built for agents that buy, monitor or vet domains.


key: GET https://402utils.com/v1/donate

description: Support 402utils — or use it as a parametric x402 payment-test endpoint: you set the price with ?amount= (USD, clamped to $0.001–$0.05) and the 402 demands exactly that, so you can assert a client pays the precise amount and the on-chain USDC tx matches. After payment returns {thanks, amount, message}. The amount is a pure function of ?amount, identical on the unpaid probe and the paid retry.

recordKey: GET https://402utils.com/v1/donate


description: TARGET2/T2 settlement calendar — the SEPA banking calendar, to predict when a euro transfer settles. TARGET is closed on weekends + six fixed days (New Year, Good Friday, Easter Monday, 1 May, 25 & 26 Dec). ?year= lists the closing days; ?date= says whether it settles (and the next open day); ?date=&addBusinessDays=N returns the value date N settlement days away. The SEPA counterpart of /v1/business-days.


key: GET https://402utils.com/v1/echo

recordKey: GET https://402utils.com/v1/echo


key: GET https://402utils.com/v1/email-check

description: Validate an email address before you accept a signup or send to it: RFC 5322 syntax, whether the domain resolves and its MX records, whether it is a disposable/throwaway domain (community blocklist), and whether it is a role account (info@, support@…). DNS is checked over DoH. No SMTP probing (intrusive and spammy), so a true 'domainExists' does not guarantee the mailbox exists.

recordKey: GET https://402utils.com/v1/email-check


key: GET https://402utils.com/v1/embed

recordKey: GET https://402utils.com/v1/embed


key: GET https://402utils.com/v1/eori-check

description: Validate an EU EORI number (the customs operator id for any EU import/export) against the Commission's official EOS service. Format is checked locally first, so junk never hits the network. Valid numbers return the registered name/address when the operator consented. Never a false 'invalid': if the service is down you get a 503, not charged. Complements vat-check in the EU compliance toolkit. ?attest=1 → Ed25519-signed.

recordKey: GET https://402utils.com/v1/eori-check


key: GET https://402utils.com/v1/epc-qr

recordKey: GET https://402utils.com/v1/epc-qr


key: GET https://402utils.com/v1/favicon

description: Resolve a website's best icon: parses <head> for link rel=icon / apple-touch-icon / mask-icon, reads a linked web app manifest's icons, and adds the /favicon.ico fallback, then ranks them (scalable/large first). Returns the best iconUrl plus all ranked candidates with rel/sizes/type/source. The URL is SSRF-checked; fetches are capped. For agents building directories or UIs.

recordKey: GET https://402utils.com/v1/favicon


key: GET https://402utils.com/v1/fx-rates

description: Daily euro FX reference rates from the European Central Bank. ?base (default EUR), ?quote for a single rate, ?date=YYYY-MM-DD for history (last 90 ECB business days; older dates 404). Non-EUR bases are cross-rates derived via EUR (quote-per-EUR ÷ base-per-EUR). Weekend/holiday dates resolve to the last published ECB day — the date field says which. Published ~16:00 CET on ECB business days; informational rates, not for transaction pricing.

recordKey: GET https://402utils.com/v1/fx-rates


key: GET https://402utils.com/v1/hash

recordKey: GET https://402utils.com/v1/hash


key: GET https://402utils.com/v1/holidays

description: Public and bank holidays for FR, DE, GB, US, ES, IT, NL, BE — years 2025-2027, each dataset verified against the country's official source (Etalab, Land statutes, gov.uk feed, OPM, BOE, normattiva, rijksoverheid, SPF Emploi). Movable feasts are computed (Gregorian computus), substitute days follow each country's official rule. Optional ?region= for sub-national holidays (German Länder, UK divisions, Alsace-Moselle).

recordKey: GET https://402utils.com/v1/holidays


key: GET https://402utils.com/v1/html-tables

recordKey: GET https://402utils.com/v1/html-tables


key: GET https://402utils.com/v1/html-to-md

recordKey: GET https://402utils.com/v1/html-to-md


key: GET https://402utils.com/v1/iban-check

description: Validate an IBAN structurally before you pay or store it: ISO 7064 mod-97 check digits plus the official per-country length and BBAN layout (~90 countries), returning the bank/branch/account breakdown for FR, DE, ES, IT, BE and NL. Structural validation only — no BIC directory lookup (SWIFT's BIC registry is proprietary) and no proof the account exists. Local, instant. ?attest=1 → Ed25519-signed.

recordKey: GET https://402utils.com/v1/iban-check


key: GET https://402utils.com/v1/ics

recordKey: GET https://402utils.com/v1/ics


key: GET https://402utils.com/v1/jq

recordKey: GET https://402utils.com/v1/jq


key: GET https://402utils.com/v1/json-to-csv

recordKey: GET https://402utils.com/v1/json-to-csv


key: GET https://402utils.com/v1/jsonpath

recordKey: GET https://402utils.com/v1/jsonpath


key: GET https://402utils.com/v1/keywords

recordKey: GET https://402utils.com/v1/keywords


key: GET https://402utils.com/v1/lang-detect

recordKey: GET https://402utils.com/v1/lang-detect


key: GET https://402utils.com/v1/lei-lookup

description: Global KYB via the official GLEIF registry. ?lei=<20-char LEI> returns legal name, entity + registration status, jurisdiction, address, next renewal and direct parent; ?name=&country= searches by name. The ISO 17442 checksum is verified locally, so a typo is a 400 with no network call. GLEIF down → 503, unbilled. Public CC0 data. Part of the EU compliance toolkit; enriches supplier-check.

recordKey: GET https://402utils.com/v1/lei-lookup


key: GET https://402utils.com/v1/link-check

description: Verify a link before you cite or use it: HTTP status, the full redirect chain, the final URL, latency, and the final Content-Type/Content-Length. Redirects are followed manually (max 10) with SSRF validation on every hop; probes with HEAD by default and falls back to GET automatically when a server rejects HEAD. A dead or broken target (404, 410, 500…) is a valid result, not an error. Response bodies are never downloaded.

recordKey: GET https://402utils.com/v1/link-check


key: GET https://402utils.com/v1/llms-txt

description: Fetch and parse a site's llms.txt (llmstxt.org) — the LLM-era robots.txt. Give any page URL; it resolves the origin's /llms.txt, and returns the H1 title, the blockquote summary, and every section's links ([title](url): notes). Also probes /llms-full.txt and reports its size. A site without one returns {found:false} (a 200, still useful). The fetch is SSRF-checked. Bonus signal in /v1/site-profile.

recordKey: GET https://402utils.com/v1/llms-txt


description: Live market price stats for a kind of x402 service, from the public Bazaar catalog. Pass ?category=vat or ?query=pdf extraction and get {sampleSize, priceUsd:{min,p25,median,max,p75}, networks, examples} in USD — is your price fair, what should you charge? Computed over a live sample of up to 1000 resources; <3 matches returns an honest 'insufficient market data'. Neutral: our own endpoints are never featured.


key: GET https://402utils.com/v1/md-to-html

recordKey: GET https://402utils.com/v1/md-to-html


description: Link preview for any web page: fetches a URL and parses only the <head> (no JS, no rendering). Returns title, meta description, canonical URL, language, an always-absolute favicon, all Open Graph and Twitter Card tags, and RSS/Atom/JSON-feed links. Tolerant of messy real-world HTML and non-UTF-8 charsets. The caller-supplied URL is SSRF-checked; the fetch is capped at 5 MB and 8 s.


key: GET https://402utils.com/v1/mime-detect

recordKey: GET https://402utils.com/v1/mime-detect


key: GET https://402utils.com/v1/og-image

recordKey: GET https://402utils.com/v1/og-image


key: GET https://402utils.com/v1/pdf

recordKey: GET https://402utils.com/v1/pdf


key: GET https://402utils.com/v1/pdf-extract

recordKey: GET https://402utils.com/v1/pdf-extract


description: Look up a business in the public Peppol Directory — where to route an e-invoice (the BT-34/49 electronic address). ?id= (a Peppol id like 0225:992412536, or a value to search) or ?country=FR&name=. Returns { found, count, participants:[{peppolId, name, country, documentTypes[], schemes[]}] }. Unknown id → { found:false }. Directory down → 503, unbilled. Public source, 1h cache.


key: GET https://402utils.com/v1/phone-check

description: Validate and normalize a phone number with full Google libphonenumber metadata: strict validity against each national numbering plan, E.164 / international / national formats, country detection (correct across shared codes like +1 and +44) and line type (mobile, fixed_line, toll_free, voip…) where the plan distinguishes it. Pass ?country=FR to parse national formats. Purely local; the number is never stored.

recordKey: GET https://402utils.com/v1/phone-check


key: GET https://402utils.com/v1/qr

recordKey: GET https://402utils.com/v1/qr


key: GET https://402utils.com/v1/readability

recordKey: GET https://402utils.com/v1/readability


description: Verify on-chain that a transaction is the USDC payment you expected. Pass ?tx=0x… plus optional ?expectedPayTo=0x… and ?expectedAmount=0.01 (USD); ?network defaults to the deployment chain (base or base-sepolia). Decodes the tx's USDC Transfer logs and returns {verified, actualPayTo, actualAmount, asset, blockTime, confirmations, mismatch}. Unknown/unmined tx → 503 (unbilled). Add ?attest=1 for a signed receipt.


key: GET https://402utils.com/v1/redact

recordKey: GET https://402utils.com/v1/redact


key: GET https://402utils.com/v1/regex-test

recordKey: GET https://402utils.com/v1/regex-test


key: GET https://402utils.com/v1/rerank

recordKey: GET https://402utils.com/v1/rerank


description: ISO 11649 RF creditor reference (SEPA structured reference) — validate or generate. ?ref=RF18539007547034 checks the ISO 7064 mod 97-10 checksum and format (RF + 2 check digits + up to 21 alphanumerics); ?generate=539007547034 computes the check digits and returns the full RF reference with print formatting. Complements iban-check and vat-check for SEPA invoicing agents. Purely local, instant.


description: Robots.txt compliance check for polite crawlers and AI agents (GPTBot, ClaudeBot, ...). Pass a page URL and optionally your crawler's product token; returns whether the URL may be fetched, the winning Allow/Disallow rule, crawl-delay and sitemap URLs. Full RFC 9309 matching: wildcards, $ anchors, longest-match, merged groups. A 4xx robots.txt allows all; 5xx or unreachable hosts report disallowed. Cached per host for 1 hour.


description: Validate a US ABA routing number before initiating a transfer: the 3-7-1 checksum, the public structure rules (9 digits; assigned prefixes 00-12 primary, 21-32 thrift, 61-72 electronic, 80 traveler's cheque) and the implied Federal Reserve district. Checksum and structure only — no bank-name directory (the Fed's is redistribution-restricted) and no proof of assignment. ?attest=1 → Ed25519-signed.


key: GET https://402utils.com/v1/rss-to-json

description: Fetch an RSS 2.0 or Atom feed and return clean JSON: feed title, link and description, plus items with title, link, ISO-8601 publishedAt, summary and author. Handles both formats and normalises the dates. The caller-supplied URL is SSRF-checked; the fetch is capped at 2 MB and 8 s.

recordKey: GET https://402utils.com/v1/rss-to-json


key: GET https://402utils.com/v1/screenshot

recordKey: GET https://402utils.com/v1/screenshot


description: On-chain + config reliability report for any x402 seller, public data only, computed live. Pass ?payTo=0x… or ?url= (a third-party x402 endpoint) → {onchain:{firstSeenAt,totalIncomingTransfers,uniqueSenders,last30dInflows,note}, config, liveness, discovery} plus factual flags (new_seller, single_sender, config_issues, unreachable). On-chain counts all incoming USDC transfers, not only x402 settlements. No score, no verdict; fails open.


key: GET https://402utils.com/v1/sentences

recordKey: GET https://402utils.com/v1/sentences


description: Full profile of a web page in one paid call: <head> metadata (title, description, canonical, OpenGraph, favicon, feeds), DNS records (A/AAAA/MX/NS), robots.txt crawl permission for your user-agent, and domain registration/expiry (RDAP) — fanned out in parallel, each section with its own status. Pass ?userAgent= to test robots for a specific crawler. Page fetches are SSRF-checked. If every section fails technically you get a 503 and no charge.


description: Turn any sitemap.xml into clean JSON: URL entries with loc, lastmod and priority, plus sitemap-index detection with the child sitemap list. Handles gzipped .gz sitemaps (magic-byte detection, zip-bomb guarded) and namespaced XML; pass follow=1 to also expand up to 3 child sitemaps of an index in one call. SSRF-checked fetches, 10 MB per document, up to 50,000 URLs with a truncated flag.


key: GET https://402utils.com/v1/slugify

recordKey: GET https://402utils.com/v1/slugify


key: GET https://402utils.com/v1/tech-detect

description: Detect a website's tech stack — frameworks, CMS, e-commerce, analytics, tag managers, CDN, web server, language — from response headers, cookies, <meta generator> and HTML/script markers. HEURISTIC, signature-based on PUBLIC fingerprints (NOT the licensed Wappalyzer database): strong on popular tech, conservative elsewhere; not-listed ≠ absent. Each hit carries a confidence and the matched evidence. The URL is SSRF-checked; the fetch is capped.

recordKey: GET https://402utils.com/v1/tech-detect


description: Convert a datetime between any two IANA time zones using the runtime's ICU tzdb — always current, DST-correct, half-hour zones included. A datetime without offset is read as wall time in `from` (ambiguous fall-back times resolve to the earlier instant; times skipped by spring-forward shift ahead, flagged in `note`). Returns both ISO datetimes with offsets and DST status per side. Unknown zone → 400 with a spelling suggestion.


key: GET https://402utils.com/v1/token-count

recordKey: GET https://402utils.com/v1/token-count


description: US sales tax STATE-LEVEL base rates for the 50 states + DC, as statutory percent. ?state=CA for one state, omit for all. Returns the state-only rate, any mandatory statewide local add-on (CA/UT/VA) and their sum. STATE BASE RATE ONLY — optional city/county/district rates are EXCLUDED and can add several points; not tax advice. Compiled from state statutes, cross-checked against two dated published trackers (asOf field included).


key: GET https://402utils.com/v1/vat-check

description: Validate an EU VAT number against the official VIES registry before invoicing, onboarding or a reverse charge. Per-country syntax is checked locally first, so invalid formats never touch the network. Valid numbers return the registered company name and address when disclosed, plus an optional consultation number (requesterVat). Never a false 'invalid': if VIES is down you get a 503 and are not charged. ?attest=1 → Ed25519-signed.

recordKey: GET https://402utils.com/v1/vat-check