description: EPA Facility Registry Service (FRS) — every regulated facility known to the EPA across all programs (RCRA hazardous waste, NPDES water discharge, SDWA drinking water, TRI toxic release, CAA Clean Air, Superfund, etc.). Filter by state (required), facility name prefix, and EPA program acronym. Each record includes registry ID, primary name, address, city/state/county/zip, EPA region, program system + ID, source-of-data system. Public-domain US government records.


key: GET https://2s.io/api/gov/eu-tenders

method: GET

description: Search EU public-procurement notices from TED (Tenders Electronic Daily) — the official journal of European public tenders. Filter by country (ISO 3-letter buyer country, e.g. DEU, FRA, ESP), cpv (Common Procurement Vocabulary code/prefix, e.g. 72000000 = IT services), and/or keyword (full-text). Each result: publication number, English title, buyer name + country, publication date, tender deadline, CPV codes, notice + procedure type, total value, and links to the notice page + PDF. Power users can pass a raw `query` in TED's expert query language (e.g. '(buyer-country=FRA) AND (FT~"hospital")'). Free, reusable EU open data (attribution). Live procurement intelligence agents can't get from training — for bid discovery, market research, and supplier monitoring across all EU member states.

type: http

discoveredBy: primary-bazaar-api-crawl

reviewStatus: unreviewed


key: GET https://2s.io/api/gov/exclusions

description: Check whether a person or company is excluded (debarred or suspended) from receiving US federal contracts, grants, or assistance — the SAM.gov Exclusions list. Search by name (person or entity), ueiSAM, cageCode, and/or classificationType (Individual, Firm, Vessel, Special Entity Designation); page with limit (1-100). Returns each exclusion with the excluded name, classification, exclusion type and program, the excluding agency, UEI, activation and termination dates, and address — plus a total match count. Data: SAM.gov exclusions, free and public-domain. Distinct from /api/law/sanctions-check (OFAC sanctions) — this is federal procurement debarment. Use for vendor onboarding, grant eligibility, and counterparty due diligence; pair with /api/gov/entity and /api/law/sanctions-check.


description: HUD Fair Market Rents (FMR) for a US county or state — HUD’s annual gross-rent estimate (rent + utilities) by bedroom size (efficiency through 4-bedroom), the basis for Housing Choice Voucher payment standards and other HUD programs. Look up by 5-digit county FIPS (returns the county/metro rents, broken out per ZIP where HUD publishes Small Area FMRs) or by 2-letter state (returns every metro area + county). Optional year (defaults to latest). Source: HUD USER FMR API (US public domain).


key: GET https://2s.io/api/gov/fcc-id

description: Resolve an FCC ID (printed on US wireless/electronic devices) to the grantee — the manufacturer that holds the FCC equipment authorization. Pass fccId in any form (BCG-E3217A, BCGE3217A). Returns the grantee code, the product code, and the grantee company: name, city, state, country, and the date its grantee code was registered. Uses the FCC EAS Equipment Authorization Grantee Registrations open dataset, free and keyless — the "who made this device" lookup an agent reading a label off hardware cannot do natively. (Per-product RF detail — frequencies, equipment class — is not in the open dataset and is out of scope.)


description: FDA animal and veterinary adverse event reports, newest first. All filters optional. Each record includes AER ID, dates, animal species/gender/breed/age/weight, reactions (VeDDRA-coded), drugs (brand + active ingredients + administration), primary reporter (Veterinarian/Owner/Other). Use cases: veterinary practice safety research, pet food adverse events, livestock drug surveillance. Backed by OpenFDA's /animalandveterinary/event endpoint; public-domain US government records.


description: FDA medical device adverse event reports (MAUDE), newest first by date received. All filters optional. Each record includes report number, event type, dates received + of event, manufacturer, brand/generic device name, model + catalog numbers, listed device problems, patient outcomes, and primary narrative text. Backed by OpenFDA's /device/event endpoint; public-domain US government records.


description: Adverse drug event reports from FDA's Adverse Event Reporting System (FAERS) — 9M+ records since 1968 covering serious adverse events, hospitalizations, deaths, and disabilities. Search by drug name (brand/generic/substance, all OR-matched) and optionally filter by MedDRA reaction term. Returns report ID, received date, seriousness flags, patient demographics, MedDRA-coded reactions, implicated drugs (up to 5 per report), and reporting country. Backed by OpenFDA; data is public-domain US government records.


description: FDA food recall enforcement reports, newest first by report date. All filters optional. Each record includes recall number, status (Ongoing/Completed/Terminated/Pending), classification (Class I/II/III), product description, reason for recall, initial-notification mechanism, voluntary-vs-mandated, recalling firm + city/state/country, distribution pattern, and recall + report dates. Backed by OpenFDA's /food/enforcement endpoint; public-domain US government records.


key: GET https://2s.io/api/gov/fda-recalls

description: FDA drug recall enforcement reports, newest first. All filters optional. Each record includes recall number, status (Ongoing/Completed/Terminated/Pending), classification (Class I/II/III), product description, reason for recall, initial-notification mechanism, voluntary-vs-mandated flag, recalling firm name + city/state/country, distribution pattern, and recall + report dates. Backed by OpenFDA's /drug/enforcement endpoint; data is public-domain US government records.


key: GET https://2s.io/api/gov/fec

description: US federal campaign finance from the FEC (openFEC). Two modes: pass name to search candidates (returns FEC candidate id, party, office, state, district, incumbent/challenger, status, and election cycles); or pass candidateId (e.g. P80000722) to get that candidate's aggregate financial totals — total receipts, disbursements, cash on hand, and individual / PAC / party / self contributions in USD for the newest cycle, alongside identity. Free, public-domain (FEC). Search by name first, then pass a returned candidateId back in for the money. For donor/spend diligence, political research, and disclosure lookups.


key: GET https://2s.io/api/gov/fec-candidate

description: Search US federal political candidates via the OpenFEC API. Filter by free-text q (name match), candidate ID (e.g. H0VA01076), state, district, party (DEM, REP, IND, LIB, GRE, etc.), office (P=President | S=Senate | H=House), election cycle (even years), election year, and hasRaised (only candidates with reported receipts). Returns FEC candidate ID, name, party, office, state/district, incumbency status, active-through cycle, first/last file dates, cycles, principal committee linkage. Use the candidate ID returned here to fetch their committees with /api/gov/fec-committee.


key: GET https://2s.io/api/gov/fec-committee

description: Search US federal political committees (PACs, super PACs, party committees, candidate principal committees, leadership PACs, etc.) via the OpenFEC API. Filter by q (name match), committee ID, candidate ID (returns committees linked to that candidate), committee type (P=Presidential | S=Senate | H=House | X=Independent expenditure-only | Y=Party | Z=National Party non-federal), designation (A=Authorized | J=Joint fundraising | P=Principal | U=Unauthorized | B=Lobbyist/Registrant PAC), state, party, cycle, organization type (C=Corporation | L=Labor | M=Membership | T=Trade | V=Cooperative | W=Corp without stock). Returns FEC committee ID, name, type/designation/organization labels, state, party, treasurer, linked candidate IDs, cycles, affiliated-committee names, first/last file dates.


description: Search FEC Schedule A — every itemized contribution to a federal political committee (>264M rows across all cycles). Filter by recipient committeeId or candidateId, contributor name / city / state / zip / employer / occupation, amount range, cycle (twoYearTransactionPeriod e.g. 2024), date range, isIndividual (true = individuals only; false = committee-to-committee). Sort by contribution date or amount, asc/desc. Requires at least one scope (committeeId, candidateId, twoYearTransactionPeriod cycle, or a date range) — an unscoped query scans every cycle and times out. The investigative-journalism + political-research goldmine: who gives, how much, when, working where, doing what. Each row carries the contribution receipt date, amount, contributor aggregate YTD, receipt type, memo, entity ty


description: Search FEC Schedule B — every itemized disbursement (spend, vendor payment, operating expenditure, contribution out, transfer) made by a federal political committee (>157M rows). Filter by committeeId, recipient name / city / state, disbursement purpose category (Administrative / Fundraising / Media / Polling / Salary / Travel / Operating / Contribution / Loan / etc.), description text, amount range, cycle, date range. Sort by date or amount. Every row carries: who got paid, when, how much, for what, with link to underlying PDF. The natural pair with /api/gov/fec-contributions for following the money on both sides of any federal committee.


key: GET https://2s.io/api/gov/fec-totals

description: Aggregate financial summaries (receipts, disbursements, cash-on-hand, debt, transfers, refunds, contributions by source, etc.) per cycle for federal candidates (scope=candidates) or committees (scope=committees). Filter by candidateId / committeeId, cycle, office (P/S/H), party, state, district. For candidates, electionFull=true rolls all cycles of a single election into one row (e.g. a presidential cycle spans 4 years). Use this for top-line "how much did they raise/spend" answers without paging through millions of itemized transactions.


description: Newest Federal Register documents by publication date — chronological feed for compliance change-detection. Filter by document type (RULE / PRORULE / NOTICE / PRESDOCU), agency name, and publication date range. Each record includes document number, type, title, abstract, publication date, effective date, agencies, citations (CFR/USC), HTML + PDF URLs. Defaults to last 7 days of final rules. Free public-domain data from federalregister.gov.


description: Search currently-active FARA (Foreign Agents Registration Act) registrants by name. Pass a company or person name; returns whether the entity is a registered foreign agent (isRegisteredForeignAgent), a single KYB-safe bestMatch (null below medium confidence — no false positives), and scored candidate matches with registration number, registration date, city/state, and a 0-1 match score + confidence (high/medium/low). FARA registration is a US disclosure status (an agent acting for a foreign principal), not wrongdoing. Authoritative DOJ FARA eFile data, free and keyless — the foreign-agent check a compliance or procurement agent cannot derive from training.


description: FEMA Hazard Mitigation Assistance (HMA) funded projects — the pre- and post-disaster mitigation grants FEMA has actually obligated (HMGP, BRIC/PDM, FMA). Filter by state (2-letter), disasterNumber, programFy (program fiscal year), and/or programArea; at least one filter is required. Returns the total matching project count plus projects (identifier, program area, project type, status, recipient/subrecipient, county, disaster number, project amount and federal share obligated in USD, cost-share %, benefit-cost ratio, number of properties, approval/close dates), largest federal share first. Free, public-domain (OpenFEMA). Distinct from gov.public-assistance (post-disaster recovery grants) and gov.nfip-claims (flood losses paid) — this is mitigation funding: who got money to reduce future ris


key: GET https://2s.io/api/gov/house-votes

description: US House of Representatives roll-call votes, newest first by action date. Each record includes year + roll number, congress/session, vote question + type + result, action date/time, bill reference (legis_num), description, grand totals (yea/nay/present/not-voting), AND per-party breakdown (Republican/Democratic/Independent yea/nay/present/not-voting counts). Filters (all optional, AND-combined): year, congress, result substring, bill substring (legis_num ILIKE), since/until (action_date), limit + offset. Locally aggregated from clerk.house.gov XML feeds (refreshed daily by cron). Public-domain US government records.


key: GET https://2s.io/api/gov/income-limits

description: HUD Income Limits (IL) for a US county or state — the program-eligibility thresholds for HUD assistance, derived from Area Median Family Income: extremely-low (30% AMI), very-low (50% AMI), and low (80% AMI) income limits for household sizes 1–8, plus the area median income. Look up by 5-digit county FIPS or by 2-letter state. Optional year (defaults to latest). The raw HUD il30/il50/il80 codes are reshaped into clear nested limits by household size. Source: HUD USER Income Limits API (US public domain).


description: Search the Federal Bureau of Prisons inmate locator — federal inmates from 1982 to present, both currently incarcerated and released. Search by lastName (+ optional firstName/middleName, age, sex, race) or by exact BOP register number (inmateNumber, e.g. "12345-678"). Each match: full name, register number, sex, race, age, current facility (code/name/type), projected release date, actual release date (when released). KYC, due-diligence, journalism, and background-research staple. Federal public data.


description: Search US federal lobbying disclosures (Senate LDA filings) — who lobbies for whom, on what issues, for how much. Filter by registrant (lobbying firm name), client (organization being represented), lobbyist (individual name), year, period (first_quarter|second_quarter|third_quarter|fourth_quarter|mid_year|year_end), and type (e.g. RR=registration, Q1-Q4=quarterly reports). Each filing: type, year/period, reported income or expenses (USD), registrant + client (id/name/description/state), lobbying issues (code + description), lobbyist count, official document URL, posted timestamp. Money-in-politics, journalism, and policy-intelligence staple. Public federal data.


description: Search MSHA mine safety accident records via US Department of Labor Open Data Portal (~738k accidents at US mines). Each row carries mine id, contractor id, mine subunit (underground/surface/mill/etc.), FIPS state code, accident date, classification, narrative, injury degree + nature + body-part, occupation code, experience, schooling, sex, age. Filter by mine id, contractor id, FIPS state code, subunit code, accident date range, classification code. Source of truth for fatalities + injuries at every US coal + metal/nonmetal mine since 2000.


description: Search OSHA-investigated workplace accident reports via US Department of Labor Open Data Portal (~165k accidents). Each row carries summary number, related inspection number, report id, event date, narrative, nature of injury, body part affected, source of injury, occupation, age, sex, degree of injury (1 = fatality, 2 = hospitalized, 3 = no lost time, etc.). Filter by event date range, nature of injury code, fatality flag. Pair with /api/gov/osha-inspections + /api/gov/osha-violations to follow injury → investigation → citations.


description: Search OSHA inspection records via the US Department of Labor Open Data Portal (~5M historical inspections). Filter by US state (2-letter), city, zip, or establishment-name substring (estabName, case-insensitive). Optional `filter` accepts raw OData-style clauses (joined with AND); `fields` selects columns; `sort` sorts (prefix with `-` for desc). Each row carries activity number, reporting id, establishment name + full site address, owner type/code, advance-notice flag, safety/health type, SIC + NAICS industry codes, open + close dates, host establishment number, union status. Backbone of workplace-safety + investigative-journalism agents.


description: Search OSHA citation / violation records via US Department of Labor Open Data Portal (~13.2M citations). Each citation links to an inspection via `activityNr` — pair with /api/gov/osha-inspections to follow site → inspection → violations. Filter by activityNr, citationId, standard (29 CFR section, e.g. "19100132" for PPE general requirements), issuance date range, initial-penalty min/max, emphasis program code.


description: CPSC consumer-product recalls from SaferProducts.gov, newest first. Covers products outside FDA (food/drug/device) and NHTSA (vehicles): strollers, appliances, lithium batteries, furniture, toys, power tools, and more. All filters optional (with none set, returns the last 12 months). Each record includes recall number + date, title, CPSC URL, description, affected products (name/model/units), hazards, remedies, reported injuries, manufacturers/importers/distributors/retailers, where sold, manufacturing countries, images, and consumer-contact info. Public-domain US government data.


description: FEMA Public Assistance (PA) funded project details — the post-disaster grants FEMA obligates to state/local/tribal governments and eligible nonprofits to repair public infrastructure and cover emergency response (debris removal, emergency protective measures, roads, buildings, utilities, parks). Filter by state (2-letter) and/or disasterNumber (one of the two is required); optionally refine by incidentType. Returns the total matching worksheet count plus projects (disaster number, declaration date, incident type, project worksheet number, application title, applicant, damage category, project size, status, county, federal share obligated / total obligated / project amount in USD, obligation date), largest federal share first. Free, public-domain (OpenFEMA). Distinct from gov.hazard-mitigat


description: Your sitting members of the US Congress for a location. Pass a US address (geocoded to its state + congressional district for you), or an explicit state (2-letter) with optional district number. Returns the current US House representative for that district plus the state's two US senators — each with full name, party, state/district, the Bioguide ID, DC office, phone, official website, and contact form. State-only returns just the two senators; territories/DC return their non-voting delegate (no senators). Bundled CC0 data (unitedstates/congress-legislators), refreshed periodically. Fills the gap after gov.district (which gives the district, not the people) — for civic lookup, advocacy, and constituent tooling.


key: GET https://2s.io/api/gov/risk-index

description: FEMA National Risk Index for a US county — the authoritative natural-hazard risk profile. Look up by countyFips (5-digit STCOFIPS), by state + county name, or by a lat/lon point. Returns the composite Risk Index score/rating/national-percentile (an 18-hazard model combining Expected Annual Loss × Social Vulnerability ÷ Community Resilience), each component (expected annual loss in dollars, social vulnerability, community resilience) with its rating, and per-hazard risk ratings + expected-annual-loss for all 18 natural hazards (wildfire, earthquake, hurricane, riverine & coastal flooding, tornado, heat/cold wave, drought, etc.). The structural natural-hazard risk picture an LLM can't recall — for siting, insurance, and resilience planning. Free, public-domain. Complements geo.flood-zone (wh


key: GET https://2s.io/api/gov/senate-votes

description: US Senate roll-call votes, newest first by vote date. Each record includes congress + session + vote_number, vote question + result + title + majority requirement, vote date/time, document name (e.g., S. 5, H.R. 4499), document title, grand totals (yeas/nays/present/absent), AND per-party breakdown (D/R/I yea/nay/present/absent counts derived from member-level vote_cast). Filters (all optional, AND-combined): congress, session (1 or 2), result substring, document substring (e.g., 'S. 5'), since/until (vote_date), limit + offset. Locally aggregated from senate.gov XML feeds (refreshed daily). Public-domain US government records.


key: GET https://2s.io/api/gov/uk-crime

description: UK street-level crime around a location from the Home Office data.police.uk service. Give a latitude/longitude (and optional month YYYY-MM, defaults to the latest available — UK data lags ~2 months) and get the total crime count, a breakdown by category (anti-social behaviour, burglary, violent crime, vehicle crime, etc.), and recent individual records (category, approximate street, lat/lon, and outcome status). Free, Open Government Licence (commercial use permitted). Location-risk signal an LLM cannot recall — for property, insurance, and safety agents. Locations are anonymised to nearby map points by the Home Office.


key: GET https://2s.io/api/gov/usajobs

description: Search open US federal government job postings from the official USAJOBS API. Filter by keyword (title/skills), location (e.g. "Austin, Texas" or a state), and/or hiring organization; at least one is required. Returns the total matching count plus current openings with title, agency and department, location(s), salary range (USD) and pay interval, GS pay grade, work schedule, posting/close dates, and the official apply link. Keyless to the caller, public-domain (OPM). Live federal hiring data an LLM cannot recall — for job search, labor-market and workforce research.


description: Search federal awards (contracts, grants, loans, direct payments) from USAspending.gov. Largest amount first within the date window. Each record includes award ID, recipient name, dollar amount, award type, awarding agency + sub-agency, start + end dates, description, and a permalink to the usaspending.gov detail page. Filter by recipient name, awarding agency name, recipient state, award type group, and date range. Backed by USAspending.gov's spending_by_award API; public-domain US government records.


key: GET https://2s.io/api/gov/usgs-water

description: Real-time water data from USGS NWIS stream / river / groundwater gauges within a bounding box around lat/lon. Returns each site's latest reading per requested variable: streamflow (00060, ft³/s), gage height (00065, ft), water temperature (00010, °C), precipitation (00045, in), and others. Each reading: site code + name, lat/lon, variable name + description + unit, value (or null if no data / sentinel), qualifier codes (e.g., 'P' = provisional, 'A' = approved), observed timestamp. Free public-domain data from waterservices.usgs.gov.


description: Current US notifiable-disease surveillance from the CDC NNDSS (National Notifiable Diseases Surveillance System) weekly tables. Returns provisional weekly case counts for ~139 nationally notifiable conditions (e.g. Measles, Pertussis, Mumps, Hepatitis A, Lyme disease, Gonorrhea, West Nile, Dengue) by reporting area and MMWR week, updated weekly. Filter by condition (substring, case-insensitive: "measles" matches "Measles, Indigenous"), location (a reporting area: a US state full name like "California", "New York City", "U.S. Residents", a census region like "Pacific", or a territory), year (MMWR year, 2022 to current), and weeks (most-recent N observations). At least one of condition or location is required. Each record reports the current-week count, the previous-52-week maximum, cumulati


description: CMS Care Compare lookup for every CMS-certified US hospital (~5k). Lookup by 6-digit CMS Facility ID for direct match, or fuzzy by name + state + city + hospital type, with optional minimum overall rating (1-5) filter. Each record includes facility ID, name, full address, phone, hospital type (Acute Care / Critical Access / Psychiatric / etc.), ownership category, emergency services flag, birthing-friendly designation, CMS overall star rating, and per-measure-group counts (mortality, safety, readmission, patient experience, effectiveness, timeliness, medical imaging). Public-domain federal data.


description: CMS Care Compare hospital quality ratings — the data behind medicare.gov hospital ratings, for all ~5,300 Medicare-certified US hospitals. Look up by facilityId (CMS certification number), or filter by state, city, and name (partial match). Each row: facility id/name/address/phone, hospital type + ownership, emergency services, overall star rating (1-5), and per-domain measure summaries (mortality, safety of care, readmission, patient experience, timeliness, effectiveness) showing whether the hospital performs better/same/worse than the national average. Rows returned with CMS's documented column names. Public-domain federal data.


description: Medicare utilization + payments by provider (CMS 'Physician & Other Practitioners - by Provider' annual dataset). Look up by npi, or filter by lastName (exact last/organization name) + state. Each row: provider NPI, name, credentials, entity type, full address, provider type/specialty, Medicare participation, beneficiary counts, total services, submitted charges, Medicare allowed/payment amounts, plus beneficiary demographic + chronic-condition aggregates — CMS's documented column names (Rndrng_NPI, Tot_Srvcs, Tot_Mdcr_Pymt_Amt, etc). Complements /api/health/open-payments (industry payments to the same NPIs). KYC, healthcare-fraud research, and provider due diligence. For a provider 360 (identity + industry payments + this) by NPI in one call, see /api/health/provider-profile. Public-domai


description: US mortality statistics from CDC NCHS. dataset=leading-causes (default): annual deaths + age-adjusted death rate per 100k by state and top-10 cause of death, 1999-2017 — filter by state (full name, e.g. "California", or "United States"), year, cause (e.g. "Heart disease", "Cancer", "Suicide"). dataset=weekly-counts: provisional weekly death counts by jurisdiction with per-cause columns (all-cause, natural, COVID-19, heart disease, cancer, etc.), 2020-2023 — filter by state and mmwrYear. Rows returned raw from CDC with documented column names. Public-domain federal data.


description: Search CMS Open Payments — every payment from a drug/device manufacturer or GPO to a US physician or teaching hospital under the Sunshine Act (~10M records per year). Lookup by 10-digit NPI for the recipient (most precise), by last/first name + state, or by payer (manufacturer) name. Each record includes recipient (NPI, name, specialty, location), payer (manufacturer name + state/country), payment (amount USD, date, nature of payment such as 'Consulting Fee'/'Food and Beverage'/'Travel'/'Royalty', form of payment), and associated product (drug/device name + therapeutic area). Investigative journalism + KYC + healthcare conflict-of-interest research. Public-domain federal data.


description: Provider 360 — everything we know about a US healthcare provider, merged on their 10-digit NPI in one call. Combines three federal datasets: identity (NPPES registry: name, specialty/taxonomy, practice address, licenses), industry payments (CMS Open Payments: what drug & device makers paid them), and Medicare billing (CMS Physician & Other Practitioners: services, charges, and Medicare payment amounts). Each section reports found/error independently — a provider with no Open Payments or Medicare record still returns identity. KYC, healthcare-fraud research, investigative journalism, provider due diligence. Pass npi (required). For the individual sources see /api/license/medical, /api/health/open-payments, /api/health/medicare-provider.


description: Adjust a US dollar amount for inflation between two dates ('what is $100 in 1990 worth today?'). Pass amount, from (YYYY-MM-DD or YYYY), and optional to (defaults to the latest CPI month). Uses CPI-U (CPIAUCNS — the same not-seasonally-adjusted all-items index as the official BLS inflation calculator), data back to 1913. Returns the inflation-adjusted amount, cumulative inflation %, annualized rate, and the CPI index values used on each date. Source: BLS CPI via FRED (St. Louis Fed).


key: GET https://2s.io/api/inflation/hicp

description: EU harmonized inflation — the latest HICP annual rate of change (the official, cross-country-comparable inflation rate) for the EU, euro area, and each member state. Pass country as a Eurostat geo code (DE, FR, EL for Greece, EA20 = euro area, EU27_2020 = EU) for one, or omit for all (sorted highest inflation first). All-items index (COICOP CP00). Source: Eurostat (free, no key). For US inflation use inflation.rates.


key: GET https://2s.io/api/inflation/rates

description: Current US inflation rates by measure, with the index level plus computed year-over-year and month-over-month % change. Pass measure for one, or omit for all. Measures: cpi, cpi-nsa, core-cpi, cpi-w, pce, core-pce, ppi, cpi-food, cpi-energy, cpi-shelter, cpi-medical, import-prices, export-prices — i.e. headline CPI (SA + NSA), core CPI, CPI-W, PCE, core PCE (the Fed's 2% target gauge), PPI final demand, and CPI by category (food, energy, shelter, medical) + import/export prices. The YoY change is the headline "inflation rate". Each result names the FRED series ID used. Source: BLS/BEA via FRED (St. Louis Fed). For raw access to any other series use bls.series; this is the curated, rate-computed layer.


key: GET https://2s.io/api/iso/currency

description: Look up an ISO 4217 currency. Pass code (alphabetic like USD, or 3-digit numeric like 840) for the canonical record, or country to find the currency/currencies a country uses. Returns the alphabetic + numeric code, English name, minor unit (decimal places — e.g. JPY 0, USD 2, BHD 3), and the countries using it. Bundled authoritative ISO 4217 data — the currency-code + decimal-places ground truth an LLM gets wrong on less-common currencies.


key: GET https://2s.io/api/iso/language

description: Look up an ISO 639 language. Pass code in any form — 639-1 (en), 639-2/B (ger) or 639-2/T (deu) — or name (English, partial match). Returns the English name and all sibling codes (alpha-2, alpha3-B, alpha3-T), so you can normalize a messy language tag to canonical ISO identifiers and resolve the bibliographic-vs-terminological alpha-3 split (e.g. German = de / deu / ger). Bundled authoritative ISO 639 data.


key: GET https://2s.io/api/iso/subdivision

description: Look up ISO 3166-2 subdivisions (states, provinces, regions). Pass code (e.g. US-CA) to resolve a single subdivision → name + country, or country (2-letter ISO 3166-1, e.g. US) to list all of that country's subdivisions with their codes. Bundled authoritative ISO 3166-2 data (~3.8k subdivisions across 237 countries) — the address/jurisdiction ground truth an LLM hallucinates codes for.


key: GET https://2s.io/api/job/federal-codes

description: Fetch a USAJobs reference codelist (lookup tables behind every federal job posting). Pass name to pick which list: agencysubelements (every agency + sub-element), occupationalseries (2210 IT, 0301 Misc Admin, 0801 Engineer, etc.), paygrades, payplans (GS, SES, ES, WG, etc.), hiringpaths (veteran, military spouse, native American, etc.), securityclearances, locationcodes, countries, countrysubdivisions, ethnicities, racecodes, militarystatuscodes, languagecodes, positionscheduletypecodes (full-time/part-time/seasonal), travelpercentages, missioncriticalcodes, cyberworkroles, etc. (33 lists total). Use the returned codes as filter inputs to /api/job/federal-search.


description: Search current US federal job postings via the USAJobs API. Filter by keyword, positionTitle, locationName ("Washington, DC" or city/zip), remote (telework-eligible), pay grade range (e.g. payGradeLow=GS09 + payGradeHigh=GS13), jobCategoryCode (occupational series, e.g. 2210 for IT), organization (agency sub-element code, e.g. TR40 for IRS), whoMayApply (all/public/status). Returns per-posting: control number, position ID, title, USAJobs URL + apply URL, organization + department, locations, schedule, offering type, pay scales (min/max + interval), publication start + application close, qualification summary, job category + grade. Use sortField + sortDirection to sort. Pagination via resultsPerPage + page.


key: GET https://2s.io/api/labor/openings

description: US labor-market turnover from the BLS JOLTS survey (total nonfarm, national), monthly, newest first. Pass measure = openings (default), hires, quits, layoffs, or separations. Returns the level in thousands per month for a trailing window. Public-domain, live-wrap. The standard signal for labor-market tightness (job openings) and worker confidence (the quits rate) — fresh macro data agents can't recite.


description: US unemployment from BLS, monthly, newest first — national (CPS, "US") or by US state (LAUS). Pass area ("US" or a 2-letter state) and optionally measure = rate (default), unemployed, employed, or laborforce. Returns seasonally-adjusted values per month for a trailing window (rate in percent; counts in thousands). Public-domain, live-wrap. Fresh local labor-market context agents can't recite.


key: GET https://2s.io/api/labor/wages

description: Occupational employment and wages from the BLS OEWS survey, by SOC occupation code, nationally or for a US state. Pass soc (e.g. 15-1252 Software Developers) and optionally a 2-letter state. Returns total employment, hourly mean wage, and annual mean + 10th/25th/median/75th/90th-percentile wages for the latest survey year. Public-domain, live-wrap. Authoritative ground-truth wages an agent must not guess — for comp benchmarking, job-offer evaluation, and labor-cost modeling.


description: Find US attorneys by name in CourtListener's RECAP corpus (PACER-derived attorney directory). Query by name (case-insensitive prefix match: "Jennifer Lee" matches "Jennifer Lee Pasquarella" but not "Sara Jennifer Lee"), optional firm/contact-text contains filter, and limit (1-50, default 10). Returns id, normalized name, parsed firm + mailing address, phone, email, fax, count of known (docket, party) appearances, and canonical CourtListener URL per match. Use for opposing-counsel research, conflict checks, and "who has filed this type of motion in this district" queries. Underlying data is public domain (PACER filings); the directory itself is maintained by Free Law Project.


key: GET https://2s.io/api/law/case-search

description: Search US court opinions (SCOTUS, federal circuits, state appellate/supreme — ~9M opinions). Query by free-text (party names, keywords, docket #, citation). Filter by court slug (e.g., "scotus", "ca9", "nysupct"), filing date range, and order (relevance/dateFiled-desc/dateFiled-asc/citeCount-desc). Returns clusterId, caseName, court, year, docket, reporter citations, citationCount, snippet, canonical URL. Discovery-side complement to case-verify. Backed by CourtListener (Free Law Project); underlying opinions are public domain.


key: GET https://2s.io/api/law/cfr-section

description: Fetch the authoritative text of any section of the US Code of Federal Regulations by title and section number — for example title 12, section 1026.43 returns Regulation Z’s ability-to-repay standards. Returns the canonical citation, section heading, full plain text, Federal Register source credit, the as-of date, and a link to the official eCFR page. An optional date parameter (YYYY-MM-DD) retrieves the historical text in force on that date, back to 2017. Data from the Electronic Code of Federal Regulations (US GPO / Office of the Federal Register), public domain, updated daily — verify regulatory citations against the authoritative source instead of relying on model memory.


key: GET https://2s.io/api/law/docket-search

description: Search US federal court dockets — civil and criminal — from the RECAP/PACER archive. Full-text q (case name, party, e.g. "United States v. Bankman-Fried"), optional court (CourtListener court id like "cand", "nysd", "ca9"), filedAfter/filedBefore (YYYY-MM-DD), page. Or pass docketNumber (+ court) for exact lookup. Each docket: id, case name, court, docket number, date filed/terminated, nature of suit, assigned judge, public docket URL. Criminal-case research, litigation monitoring, KYC/due-diligence. Sibling endpoints: /api/law/case-search (opinions full-text), /api/law/opinion (full opinion text).


description: Search the US Federal Register — proposed rules, final rules, notices, and presidential documents. Filter by free-text term, document type (RULE/PRORULE/NOTICE/PRESDOCU), agency slug (e.g., epa, fda, sec), and publication date range. Returns document_number, type, title, abstract, FR citation, agencies, publication_date, effective_on, comments_close_on, htmlUrl, pdfUrl, rawTextUrl. Public-domain US government data. Real-time — published daily, past LLM training cutoff.


key: GET https://2s.io/api/law/judge-lookup

description: Find US federal + state appellate judges by name in CourtListener's People DB. Query by firstName (case-insensitive prefix), lastName (case-insensitive prefix), or both — at least one required. Returns id, full name + components, dates of birth/death, gender, education (school, degree level, year), political affiliations (party + appointing executive period), count of distinct judicial positions, and canonical CourtListener URL per match. Pairs with law.case-search + law.attorney-lookup to complete the WHO graph of a legal research workflow. Backed by CourtListener (Free Law Project); underlying data is public domain.


description: Search US trademarks by wordmark text, owner name, or goods/services — the text search the USPTO offers no public API for. Pass `query` for full-text search (ranked best-match first), or `serial` / `registrationNumber` for an exact record. Filter with `field` (mark|owner|all), `status` (live=registered+pending only, default; all=includes dead/abandoned), and `intlClass` (Nice class, e.g. 9). Returns each mark's wordmark, serial, registration number, status (+ live flag), filing/registration/abandonment dates, owner, international classes, and goods/services. Corpus: USPTO full trademark register (public domain). Use law.trademark-status for live USPTO prosecution detail on a known serial.


description: Verify a US trademark by USPTO serial number (8 digits) or registration number. Returns the word mark, LIVE/DEAD status with the detailed status description and date, filing and registration dates, current owner (name, entity type, citizenship), mark type (trademark / service mark / certification mark), standard-character flag, abandonment date when applicable, and the international classes covered with their descriptions. Authoritative real-time USPTO data — confirm a mark exists and is active before relying on it for clearance, licensing, or due-diligence work. Lookup is by number only (no text search); siblings: /api/patents/search, /api/law/case-verify.


key: GET https://2s.io/api/law/usc-section

description: Fetch the authoritative current text of any United States Code section by title and section number — for example title 17, section 107 returns the fair-use statute. Returns the canonical citation, heading, hierarchy context (title/chapter), full statutory plain text, the Statutes-at-Large source credit, and a link to the official OLRC page; set includeNotes=true to also get editorial notes (amendment history, effective dates). Hyphenated and lettered sections like 1395w-4 or 78j work. Data from the Office of the Law Revision Counsel current ("prelim") edition, public domain — verify statutory citations against the authoritative source instead of relying on model memory. For federal regulations see /api/law/cfr-section; for case law see /api/law/case-verify.


key: GET https://2s.io/api/license/broker

description: FINRA BrokerCheck lookup — every US registered broker / investment advisor (~620k current + former). Search by free-text query (name + firm) or by CRD number for a direct individual record. Each result includes CRD ID, name (with any 'doing business as' aliases), broker-check + IA scope (Active/Inactive), a hasDisclosures flag (yes/no for complaints, settlements, terminations on file), industry-start date, FINRA registration count, and current + previous employments (firm name, branch city/state, registration dates). Public per FINRA's investor-protection BrokerCheck program; pair with /api/finance/sec-filings for cross-reference.


key: GET https://2s.io/api/license/medical

description: US healthcare provider lookup (NPPES NPI Registry). Every US doctor, nurse, dentist, hospital, lab, pharmacy has an NPI — this returns the canonical record. Lookup by 10-digit NPI for a precise match, or by firstName + lastName + state for fuzzy search. Each record includes name + credentials, status, enumeration date, primary + secondary specialty taxonomies (with state license numbers), practice + mailing addresses, phone, and any cross-issuer identifiers (Medicaid, Medicare, etc.). Public-domain CMS data, free. For all three NPI datasets merged (identity + industry payments + Medicare billing) in one call, see /api/health/provider-profile.


description: Verify US real-estate licenses (brokers, sales agents, broker companies). Currently supported state: TX (Texas Real Estate Commission license holders). Search by name (license holder, partial), licenseNumber (exact), licenseType (partial, e.g. "Broker", "Sales Agent"), status (e.g. "Active"). Each license: type, number, holder name, status, original license date, expiration date, and the related supervising broker (type/number/name) where applicable. Agent/broker due-diligence and KYC. Siblings: /api/license/medical, /api/license/broker, /api/license/trades. Official state open data.


key: GET https://2s.io/api/license/trades

description: Verify US trade / occupational licenses (electricians, A/C technicians, cosmetologists, tow operators, and other state-regulated trades). Currently supported state: TX (Texas Department of Licensing & Regulation, all active licenses). Search by name (matches owner or business name, partial), licenseNumber (exact), licenseType (partial, e.g. "Electrician"), county. Each license: type + subtype, number, business + owner name, county, expiration date, continuing-education flag. Contractor due-diligence and KYC. Siblings: /api/license/medical (NPI), /api/license/broker (FINRA). Official state open data.


key: GET https://2s.io/api/maritime/cases

description: US Coast Guard activity / port-state-control case history for a vessel, by USCG vessel id (from maritime.vessel). Returns cases newest-first with the activity id, start date, type (Boarding, Inspection, Investigation, etc.), and process status. Keyless, public-domain. The compliance/inspection record behind a vessel — use for safety and counterparty due diligence.


key: GET https://2s.io/api/maritime/port

description: Look up world ports and terminals in the NGA World Port Index (Pub 150, ~2,950 ports) by port name (partial match) and/or country (full country name, e.g. "Japan"). Returns matching ports with location (lat/lon, country, region), UN/LOCODE, harbor size/type and shelter, max vessel length/draft (meters), channel/anchorage/cargo-pier depths, tidal range, and chart number. Keyless, public-domain (NGA). Physical-port reference data an LLM cannot reliably recall; complements maritime.vessel (USCG vessel registry) and maritime.cases (port-state-control inspections).


key: GET https://2s.io/api/maritime/vessel

description: Look up vessels in the US Coast Guard PSIX registry by name (partial match), call sign, official number, hull number (HIN), flag country, service type, or build year. Returns matching vessels with the USCG vessel id, name, call sign, service type, build year, status, official number, HIN, and flag. Keyless, public-domain. Covers US-flagged vessels (and foreign vessels with US port-state-control activity). Pair the returned vesselId with maritime.cases for the inspection record. (Cross-references trade.locode for ports.)


key: GET https://2s.io/api/markets/holiday

description: Stock-exchange holiday calendar. Pass exchange (default US); returns the list of upcoming market holidays with the date, holiday name, whether the session is a full close or an early close, and the trading hours when partial. Use it to plan around non-trading days. Data by Finnhub.


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

description: Is a stock exchange open right now? Pass exchange (default US); returns whether trading is open, the current session (pre-market, regular, post-market, or closed), whether today is a market holiday, the exchange timezone, and the server timestamp. Use it to gate time-sensitive logic to market hours. Data by Finnhub.


description: FDA 510(k) premarket clearances — the record of medical devices cleared for US marketing by demonstrating substantial equivalence to a predicate device. Search by device name, applicant (manufacturer), or FDA product code, and get back each clearance with its K-number, device name, applicant, decision date and decision description, clearance type (traditional/special/abbreviated), product code, advisory committee, and date received — newest decision first. Free, public-domain US government data. Authoritative regulatory-status data for medical-device diligence; point-in-time public records, not regulatory advice.


description: FDA medical device classification — the regulatory class and controls for a device type. Search by device name or FDA product code and get back the device class (I/II/III, mapping to regulatory risk and controls), CFR regulation number, medical specialty/review panel, the official definition, and flags for life-sustaining/supporting, implant, GMP-exempt, and third-party-review eligibility. Free, public-domain US government data. The authoritative answer to "what FDA class is this device and what regulation governs it" — for regulatory and medical-device diligence; point-in-time public records, not regulatory advice.


description: FDA GUDID (Global Unique Device Identification Database) lookup — identify a marketed medical device from its UDI or by brand/company. Search by UDI/device identifier, brand name, or company name and get back the device description, version/model number, prescription vs OTC, single-use/kit/combination-product flags, MRI safety, sterilization, commercial-distribution status, publish date, the device identifiers (with issuing agency — GS1/HIBCC/ICCBBA), FDA product codes, and GMDN terms. Free, public-domain US government data. The canonical "what device is this UDI" lookup for supply-chain, clinical, and recall-matching agents; point-in-time public records.


description: FDA drug approval history from Drugs@FDA — the official record of FDA-approved drug applications. Give a drug name (brand or generic), an FDA application number (e.g. NDA021436), or a sponsor name, and get back each application with its products (brand name, active ingredients + strengths, dosage form, route, marketing status, therapeutic-equivalence code, reference-drug flag) and its full submission history (original approvals, supplements, status + status date, review priority). Free, public-domain US government data. The authoritative "is this drug FDA-approved, by whom, when, and in what formulations" record — point-in-time public records, not medical advice.


description: Authoritative FDA drug label (Structured Product Labeling). Give a drug name (brand, generic, or substance), or an exact NDC, RxCUI, or SPL set_id, and get back the FDA-approved label split into the sections agents need: boxed warning, indications and usage, dosage and administration, contraindications, warnings, adverse reactions, drug interactions, use in specific populations, pregnancy, mechanism of action, and active/inactive ingredients. Each record also carries identity metadata (brand/generic names, manufacturer, NDCs, RxCUIs, route, DEA schedule, OTC vs prescription) plus a hasBoxedWarning flag. Free, public-domain US government data. Point-in-time public records, not medical advice. Use for prescribing-support, pharmacy, and clinical agents that must read the real label rather tha


description: Look up US drug pricing from CMS NADAC (National Average Drug Acquisition Cost) — the benchmark per-unit acquisition cost CMS surveys from retail pharmacies and publishes weekly. Pass ndc (11-digit National Drug Code) for an exact product, or name (drug name/description keyword, e.g. 'atorvastatin 10 mg') to search. Returns rows with the NDC, description, nadacPerUnit (USD per pricing unit), pricingUnit (EA/ML/GM), effectiveDate, OTC flag, and brand/generic classification — most recent effective date first. Real surveyed acquisition costs instead of model-guessed prices. Public domain; the current-year dataset is resolved automatically. NADAC is an acquisition-cost benchmark, not a retail or insured price.


description: One-call drug situational awareness. Give a drug name (resolved to a canonical RxCUI via NIH RxNorm), or an exact rxcui or ndc you already hold, and get back: whether it is currently in FDA shortage, any open or recent FDA recalls, and FDA NDC-directory metadata (labeler, DEA schedule, pharmaceutical class, marketing status). Returns a resolved identity block plus hasCurrentShortage / hasOpenRecall booleans and one found/error block per source (shortages, ndc, recalls). Composition of NIH RxNorm + OpenFDA drug-shortages, NDC directory, and recall enforcement — all free, public-domain US government data; each source degrades independently. Point-in-time public records, not medical advice. Use for pharmacy/supply-chain triage, prescribing-support agents, and verifying a drug is real, schedul


key: GET https://2s.io/api/medical/genetics

description: MedlinePlus Genetics (US National Library of Medicine) reference on a genetic condition or gene. Give a term (e.g. "cystic fibrosis", "BRCA1", "sickle cell") and get back the authoritative NLM record: the condition/gene name, a plain-language summary, the full set of sections (description, causes, frequency, inheritance, treatment), the inheritance pattern(s), related genes (with links), synonyms, and cross-references to other databases (OMIM, GTR, ICD-10-CM, …). Free, public-domain (NLM). Authoritative genetics reference an LLM cannot recite reliably — for clinical, patient-education, and research agents. Educational reference, not medical advice.


key: GET https://2s.io/api/medical/icd10

description: Verify and search ICD-10-CM diagnosis codes against the official US code set (FY2026, ~98k entries). Pass code (with or without the dot, e.g. E11.9 or E119) to confirm the code exists and list its more-specific child codes, or q to keyword-search code descriptions (e.g. "type 2 diabetes neuropathy"). Optional billable_only=true restricts results to codes valid for claim submission; limit caps results (1-50, default 10). Returns a verified flag, the exact match if any, and matched codes with billable status plus short and long descriptions. Data: CMS/NCHS ICD-10-CM (public domain), refreshed each US fiscal year. Use to confirm diagnosis codes are real and current before placing them in claims, prior authorizations, or clinical documents.


key: GET https://2s.io/api/medical/npi

description: Look up US healthcare providers in the CMS NPPES registry — the authoritative directory of National Provider Identifiers (NPIs). Give an exact 10-digit NPI, or search by provider last name (+ optional first name), or organization name, optionally narrowed by state and taxonomy/specialty. Returns each provider with NPI, entity type (individual vs organization), status, name/credential/gender or organization name, sole-proprietor flag, enumeration + last-updated dates, primary taxonomy, the full taxonomy list (code, description, primary flag, state license), and practice/mailing addresses with phone. Free, public-domain (CMS). The canonical "who is this NPI / find this provider" lookup for healthcare, claims, and credentialing agents.


description: Resolve a 10-digit NPI to the provider identity plus a fully decoded specialty profile in one call: entity type, name/organization, status, the primary specialty (NUCC grouping + classification + display name), and every taxonomy on the record decoded the same way -- with primary flag, practice state, and license. Combines the NPPES lookup (medical.npi) with the NUCC specialty decode (medical.taxonomy-specialty) so a claims, credentialing, or referral agent gets "who is this NPI and what do they actually do" without a second call. Data: CMS NPPES + NUCC (US public domain). Note: the facility CCN (CMS Certification Number) requires a separate CMS enrollment crosswalk and is returned null (DEFERRED) rather than guessed.


key: GET https://2s.io/api/medical/rxnorm

description: Normalize and verify drug names against RxNorm, the canonical US drug vocabulary from the NIH. Two modes: term ("tylenol 500mg", brand or generic, typos tolerated) returns ranked RxCUI candidates with normalized names and match scores; rxcui returns the canonical concept (name, term type like IN=ingredient / SBD=branded drug / SCD=clinical drug, suppression flag) plus related concepts — active ingredients, brand names, and available dose forms. Use before writing prescriptions data, drug interactions queries, or pharmacy integrations: verify the drug exists and get its stable identifier instead of trusting model memory. Sibling: /api/medical/icd10 (diagnosis codes). Public-domain NIH data.


description: Resolve a NUCC Health Care Provider Taxonomy code -- the specialty code returned by medical.npi and printed on every NPPES record -- into its human specialty: grouping (top level, e.g. "Allopathic & Osteopathic Physicians"), classification (e.g. "Anesthesiology"), specialization, the official display name, and the section (Individual vs Non-Individual). The decode step every claims, credentialing, and provider-directory agent needs to turn an opaque 10-char taxonomy code into a readable specialty. Data: NUCC code set (public domain), bundled and version-pinned. Note: the CMS Medicare 2-char physician-specialty crosswalk is published only as a PDF, so medicareSpecialty is returned null (DEFERRED) rather than guessed.


key: GET https://2s.io/api/music/artist

description: Resolve a music artist from MusicBrainz (CC0). Pass a name (or free-text/Lucene query). Returns ranked artists with MusicBrainz ID (MBID), name, sort name, type (Person/Group), country, gender, life span (begin/end/ended), and disambiguation. Keyless, public-domain core data. Use to canonicalize an artist to its MBID.


key: GET https://2s.io/api/music/recording

description: Resolve a song/recording from MusicBrainz (the open, CC0 music encyclopedia). Pass artist + title, or a free-text query (Lucene supported). Returns ranked recordings with MusicBrainz ID (MBID), title, primary artist, length (ms), first-release date, and disambiguation. Keyless, public-domain core data. Use to canonicalize a track to its MBID or cross-reference identity.


key: GET https://2s.io/api/music/release

description: Resolve an album/release from MusicBrainz (CC0). Pass a barcode (UPC/EAN), or artist + album, or a free-text query. Returns ranked releases with MusicBrainz ID (MBID), title, primary artist, release date, country, barcode, status, track count, label, and catalog number. Keyless, public-domain core data. Barcode → album is the differentiated lookup (resolve a physical product to its metadata).


key: GET https://2s.io/api/net/asn

description: Look up an Autonomous System (BGP) by AS number. Pass asn as AS3333 or 3333. Returns the AS holder/operator name, the IANA/RIR allocation block it falls in, whether it is currently announced, and a live routing-status block: first/last seen prefixes, announced IPv4/IPv6 prefix + address counts, RIS peer visibility, and observed BGP neighbour count. Data: RIPEstat (RIPE NCC), free and public. Distinct from geo.ip (host geolocation) and dns/whois (name lookups) — this is who-owns-and-routes-this-AS, observed live from the global routing table. For network forensics, abuse/security triage, and infrastructure mapping.


key: GET https://2s.io/api/net/ip-resolve

description: Resolve a single IPv4/IPv6 address to its full network identity in one call: the Autonomous System number, the authoritative AS holder/operator (RIPEstat), the ISP + organization, whether the AS is currently announced, the RIR/IANA allocation block the AS sits in, and country/region/city + coordinates + timezone. One join that turns an IP into "who runs this network and where" -- the lookup network-forensics, abuse triage, and fraud agents otherwise stitch together from a geo API plus a separate BGP source. Composes geo IP data + RIPEstat (RIPE NCC, CC BY 4.0); the routing/holder block degrades independently, with per-source status returned. Distinct from net.asn (AS-number first) and geo.ip (geo only): this is IP-first and joins both.


key: GET https://2s.io/api/net/mac-vendor

description: Resolve a MAC address (or bare OUI prefix) to its IEEE-registered hardware vendor. Accepts any common format — FC:FB:FB:01:02:03, fc-fb-fb-01-02-03, fcfb.fb01.0203, fcfbfb, or a 9-hex MA-S prefix. Uses longest-prefix matching across the IEEE MA-L (24-bit), MA-M (28-bit) and MA-S (36-bit) registries so blocks IEEE has subdivided resolve to the actual manufacturer. Returns the vendor name, the matched OUI prefix and which registry it came from, plus decoded address bits: whether the address is multicast/group, locally administered, or a randomized (privacy) MAC — for which no vendor exists by design. Authoritative bundled IEEE data.


key: GET https://2s.io/api/net/rpki-validity

description: RPKI Route Origin Validation for a (BGP origin AS, prefix) pair — answers whether an AS is legitimately authorized to originate a prefix. Pass asn (e.g. AS15169) and prefix (CIDR, e.g. 8.8.8.0/24). Returns status (valid = a ROA authorizes it; invalid = a ROA exists but does NOT authorize this origin — a possible hijack/route-leak that RPKI-enforcing networks will drop; unknown = no covering ROA), a hijackSignal boolean, the validating ROAs (origin, prefix, maxLength), and a plain-English description. Live RIR/RPKI data via RIPEstat (keyless) — un-derivable by an LLM. The core BGP-security check; complements net.asn.


key: GET https://2s.io/api/news/hn-item

description: Fetch a specific Hacker News item (story, comment, job, poll) by its numeric ID. Returns id, type, author, time (unix + ISO), title, URL, text, score, descendant count, kid count, parent (for comments), dead/deleted flags, canonical news.ycombinator.com URL.


key: GET https://2s.io/api/news/hn-search

description: Full-text search across all of Hacker News (via the Algolia HN API). Search stories or comments by keyword, sorted by relevance or by date (newest first). Filter by tags (story/comment/ask_hn/show_hn/poll) and by author. Each hit: title, URL, author, points, comment count, story/comment text, created time, and canonical HN URL. Net-new vs news.hn-top (curated feeds) and news.search (general news).


key: GET https://2s.io/api/news/hn-top

description: Hacker News feed of items. Pass kind = top (default) | new | best | ask | show | job to pick the feed. Returns each item's id, type, author, time (unix + ISO), title, URL, text (for self-posts), score, descendant + kid counts, parent (for comments), dead/deleted flags, and canonical news.ycombinator.com URL. Default limit = 30, max 100. Useful for tech-sentiment + topic tracking.


key: GET https://2s.io/api/news/hn-user

description: Hacker News user profile by username. Returns id, account creation time (unix + ISO), karma, the about/bio text, number of items submitted, and the canonical news.ycombinator.com profile URL. Unknown user returns an empty result.


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

description: Live news search. Returns recent headlines with title, URL, snippet, publisher source, relative age, and a breaking-news flag — real-time coverage past any model training cutoff. Supports count (1-20), offset, country (2-letter), and freshness (pd=past day, pw=past week, pm=past month, py=past year). Use for current events, market-moving developments, monitoring, and "what happened with X" questions. For general web results see /api/search/web; for Hacker News specifically see /api/news/hn-top.


key: GET https://2s.io/api/nonprofit/screen

description: Look up US 501(c) nonprofits and screen each result against the OFAC sanctions list in one call. Pass q (organization name) or ein; each matched organization returns its registry record (EIN, name, location, NTEE code, subsection) plus a sanctions block — flagged status, match count, and the matching SDN entries with confidence scores. Grant-making due diligence, donation compliance, and charity-fraud triage. Components also standalone: /api/nonprofit/search (registry only) and /api/law/sanctions-check (screen any name). Same composition family as /api/business/entity-screen.


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

description: US 501(c) nonprofit organization search. Lookup by 9-digit EIN (with or without hyphen), free-text name, 2-letter state, NTEE category code (e.g. 'B99' for education), or IRS subsection code (3 = 501(c)(3), 4 = 501(c)(4), etc.). Each record includes EIN, name, city/state, NTEE code, subsection code + human-readable subsection description (e.g. '501(c)(3) Charitable / Religious / Educational'), and relevance score. Sourced from ProPublica Nonprofit Explorer, which aggregates IRS Form 990 + BMF data; underlying IRS data is public domain.


key: GET https://2s.io/api/nutrition/food

description: USDA FoodData Central nutrition lookup. Two modes: search (query=cheddar cheese) returns matching foods with fdcId, description, data type, category, and brand; detail (fdcId=328637) returns the full analyzed nutrient profile — energy, protein, fats, carbohydrates, vitamins, minerals — with USDA nutrient numbers, amounts, and units (per 100 g/ml unless serving fields indicate otherwise), plus ingredients for branded foods. Filter search by dataType: Foundation and SR Legacy are lab-analyzed generic foods, Branded is the packaged-food label corpus, Survey (FNDDS) is as-consumed dishes. Authoritative USDA data covering ~400k foods — use real analyzed values instead of model-estimated nutrition facts.


description: Full occupation dossier from O*NET (US DOL) by SOC / O*NET-SOC code (e.g. 15-1252 or 15-1252.00). Returns title, description, bright-outlook flag, sample reported job titles, and the top skills, knowledge areas, abilities, work tasks, and technology skills/tools. CC-BY (O*NET attribution in source). The canonical occupation reference an agent needs for résumé/JD reasoning, career mapping, and skills analysis — pair the code with labor.wages for pay.


description: Occupations related to a given O*NET occupation (career-adjacent roles), by SOC / O*NET-SOC code. Returns ranked related occupations with code + title. CC-BY (O*NET). For career-pathing, "adjacent roles", and transferable-skills reasoning.


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

description: Find O*NET occupations by keyword (job title, skill, or activity). Returns ranked occupations with their SOC / O*NET-SOC code and title. CC-BY (O*NET). The "what is the occupation code for this job/skill" primitive — every other occupation.* and labor.wages call composes on the returned code.


key: GET https://2s.io/api/paper/doi-lookup

description: Resolve a DOI to authoritative bibliographic metadata via Crossref. Accepts bare DOI (10.1038/nature12373) or full DOI URL (https://doi.org/10.1038/nature12373). Returns work type, title, container (journal/conference), publisher, issued/published dates, abstract, authors (with ORCID + affiliations), page range, volume/issue, ISBN + ISSN lists, canonical URL, reference + citation counts, license blocks, and subject classifications. ~160M works in Crossref. Best authoritative DOI → bibliographic resolver. Metadata is CC0.


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

description: Unified scientific literature search across arXiv (preprints), PubMed (biomedical), and Semantic Scholar (cross-field, with citation counts). Returns a flat array of papers with stable schema: source, sourceId, doi, title, authors, abstract, year, publishedAt, citationCount, url, pdfUrl. Partial failures surface in the errors array rather than failing the whole call. Optional filters: since (YYYY-MM-DD), sources (subset), limit (max 20 per source).


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

description: Unified read API over US National Park Service developer.nps.gov. Pick a resource: parks (every NPS unit — historical parks, monuments, seashores, etc.), alerts (closures, dangers, info), campgrounds (NPS-operated campgrounds with reservation links), events (talks, walks, ranger programs), newsreleases (park news), thingstodo (activities by park), visitorcenters. Filter by parkCode (CSV — e.g. "acad,yose,grca"), state, or free-text query. Returns the upstream NPS payload verbatim (rich nested objects with images, addresses, operating hours, etc.).


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

description: Full US patent application file-wrapper detail by application number. Returns bibliographic data (title, inventors, applicants, dates, status, examiner, art unit, docket #, confirmation #) plus the file-wrapper event timeline (filing, IDS, Office Actions, allowance, abandonment, …), continuity chain (parent / continuation / divisional / national stage), recorded assignments (assignor → assignee with reel/frame + conveyance text), and foreign priority claims under 35 USC § 119. Application number is the 6-10 digit USPTO ID (e.g. 18566276).


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

description: List every document in the file wrapper for a US patent application. Returns each document with its USPTO code (e.g. CTNF non-final OA, CTFR final OA, IDS, WCLM claims worksheet, NOA notice of allowance), human-readable description, official date, direction (INTERNAL/INCOMING/OUTGOING), and available formats with page counts. Includes patentCenterUrl pointing at the public USPTO Patent Center documents page for direct PDF download. Application number is the 6-10 digit USPTO ID.


description: Bibliographic record for a patent publication via EPO OPS: invention titles (multiple languages), applicants, inventors, IPC classifications, application number, and the abstract. Worldwide coverage by publication number (e.g. EP1000000, US6093011). Net-new vs US-only patents.detail.


description: INPADOC patent family for a publication via EPO OPS — every worldwide equivalent of the same invention (same priority), each with country, document number, kind code, and combined publication number. Use it to find where a patent was also filed/granted globally. Net-new (no US-only equivalent).


key: GET https://2s.io/api/patents/epo-legal

description: INPADOC legal-status events for a patent publication via EPO OPS: the timeline of procedural events (examination, grant, designations, national-phase entries, lapses, withdrawals) each with an event code, description, and date. For tracking whether a patent is in force, granted, or lapsed. Net-new.


description: Search worldwide patent publications via the European Patent Office's Open Patent Services (OPS). Pass a CQL query (e.g. ti=quantum computing, in=tesla, pa=siemens, cpc=H01M, pn=EP1000000) and get matching publications with country, document number, kind code, and a combined publication number, plus the total result count. Covers EP + 100+ patent authorities worldwide — net-new vs our US-only patents.search.


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

description: Search US patent applications and grants via the USPTO Open Data Portal. Query: q (required, 2+ chars), yearFrom / yearTo (optional filing-year bounds), applicationType (optional: Utility|Design|Plant|Reissue), limit (1-100, default 10), offset (0-based, default 0). Returns { total, returned, offset, limit, hits[{ applicationNumber, title, applicationType, firstInventor, inventors[], applicants[], filingDate, effectiveFilingDate, status:{ code, description, updatedAt }, cpcSymbols[], uspcSymbol, url }] }. URLs link to USPTO Patent Center for the public file wrapper.


description: Sweep a person's name across five US public registries in one call: FINRA securities brokers, federal-court attorneys (CourtListener), federal inmates (BOP), Texas trade licenses (TDLR), and Texas real-estate licenses (TREC). Returns one block per registry with found/error status, match count, and the matching records — name-matched CANDIDATES, deliberately not merged into one identity (same name does not mean same person; verify with each registry's identifier before acting). Due-diligence, KYC screening triage, and background-research staple. Each registry is also a standalone endpoint (/api/license/broker, /api/law/attorney-lookup, /api/gov/inmate-locator, /api/license/trades, /api/license/real-estate) for follow-up by identifier.


key: GET https://2s.io/api/phone/normalize

description: Parse, validate and canonicalize a phone number using Google's libphonenumber metadata. Query: number (required; E.164 like "+14155552671" or national like "(415) 555-2671"), country (optional ISO 3166-1 alpha-2 like US/GB/JP — required when number is not E.164). Returns {input, valid (matches a real number range), possible (right shape/length), e164, national, international, rfc3966, country, countryCallingCode, type (mobile|fixed_line|fixed_line_or_mobile|toll_free|premium_rate|shared_cost|voip|personal_number|pager|uan|voicemail|unknown), possibleCountries[]}. Returns valid:false (not an error) for unparseable input.


key: GET https://2s.io/api/poi/near

description: Find points of interest near a coordinate. Backed by OpenStreetMap via the Overpass API (free, public, ODbL). Returns name, OSM id (e.g. node/123 — deep-linkable to openstreetmap.org), latitude, longitude, distance in meters, composed street address (when present), phone, website, opening hours, brand, and cuisine tags. Results sorted nearest-first. Supported categories: restaurant, cafe, bar, fast_food, gas_station, ev_charging, parking, atm, bank, hospital, pharmacy, clinic, doctor, dentist, police, fire_station, post_office, library, toilets, school, university, supermarket, convenience, hotel, hostel, museum, attraction, park, playground. Query: lat (-90..90), lon (-180..180), category (one of the supported names), radius_m (1-10000, default 1000), limit (1-100, default 20).


key: GET https://2s.io/api/predict/activity

description: A wallet's Polymarket on-chain activity feed: trades, merges, splits, redeems, conversions and rewards, newest first. Pass the wallet (proxy) address; optionally filter by type (TRADE/MERGE/SPLIT/REDEEM/REWARD/CONVERSION) and cap with limit. Each entry returns type, side, outcome, share size, price, USD value, timestamp, the market title/slug, conditionId, and tx hash. Read-only from Polymarket's Data API.


description: Polymarket crypto up-or-down markets — the recurring 'Will <asset> be up or down by <time>?' series for BTC, ETH, SOL, SPX and more (hourly/daily). Each event returns its question, dates, USD volume, and the nested Up/Down markets with live outcome prices (implied probability the asset closes higher). Filter count with limit. Read-only mirror of Polymarket's up-or-down tag.


key: GET https://2s.io/api/predict/events

description: Browse Polymarket events (an event groups related markets — e.g. an election, a tournament, a price ladder). Optional keyword q, closed filter, order (volume/volume24hr/liquidity), and limit/offset. Each event returns its title, tags, USD volume + 24h volume, liquidity, dates, and the nested markets with their outcomes + live outcome prices (implied probabilities) and CLOB token ids. Read-only mirror of Polymarket's Gamma events.


key: GET https://2s.io/api/predict/holders

description: Top holders of a Polymarket market, grouped by outcome token (conditionId). Each holder: wallet, trader name, position size, outcome index, and verified flag. Reveals concentration and smart-money positioning per outcome — the holder-side complement to predict.trades (flow) and predict.whales (large trades). Read-only from Polymarket's Data API.


description: Browse Kalshi events (an event groups related markets, e.g. an election or a game). Filter by status / series_ticker; page with limit + cursor. Returns event ticker, series, title, category, and market count. Read-only (no Kalshi key needed).


description: A single Kalshi market by ticker. Returns yes/no bid+ask and last price (dollars, implied probability), volume, liquidity, open interest, open/close times, and settled result. Read-only (no Kalshi key needed).


description: Browse Kalshi regulated prediction markets. Filter by status (open/closed/settled), event_ticker, series_ticker, or specific tickers; page with limit + cursor. Each market returns yes/no bid+ask and last price (in dollars, 0-1 = implied probability), 24h + total volume, liquidity, open interest, open/close times, and result if settled. Read-only mirror of Kalshi's market list (no Kalshi key needed).


description: Order book for a Kalshi market by ticker: resting yes and no bids with price (dollars) and size (contracts). Optional depth. Read-only (no Kalshi key needed).


description: Recent trades on Kalshi, optionally filtered to one market ticker. Returns each trade's ticker, contract count, taker side, yes/no price (dollars), and time. Page with limit + cursor. Read-only (no Kalshi key needed).


description: Polymarket smart-wallet leaderboard: top traders ranked by realized volume or profit (P&L). Choose the time window (1d/7d/30d/all) and rankBy (vol/pnl); cap with limit. Each entry returns rank, wallet (proxy) address, trader name, X handle, verified badge, total USD volume, and USD P&L — for tracking smart money. Pair the wallet with predict.positions / predict.activity / predict.wallet. Read-only from Polymarket's Data API.


description: Active prediction markets on Limitless Exchange (on-chain, Base; keyless). Each market: conditionId, title, slug, description, status, live YES/NO prices, volume, liquidity, collateral token, expiration, and categories/tags. A second venue alongside the Polymarket (predict.markets) and Kalshi (predict.kalshi-markets) clusters — for cross-venue prediction-market coverage.


key: GET https://2s.io/api/predict/market

description: A single Polymarket market by conditionId, slug, or id. Returns the question, outcomes + live prices (implied probabilities), CLOB token ids, USD volume + liquidity, dates, description, and URL. Pass one of conditionId / slug / id.


key: GET https://2s.io/api/predict/markets

description: Browse Polymarket prediction markets. Filter by active/closed, order by volume/liquidity/endDate, page with limit/offset. Each market returns its question, outcomes + live outcome prices (implied probabilities), CLOB token ids (use with predict.price / predict.orderbook / predict.price-history), USD volume + liquidity, open/close dates, and the Polymarket URL. Read-only mirror of Polymarket's public market list.


description: Cross-venue equivalent-market pairs for arbitrage / relative-value spotting. We fuzzy-match open Polymarket vs Kalshi markets by title-token overlap and return candidate pairs with both venues' YES prices and the implied-probability spread (Polymarket YES minus Kalshi YES). Tune with minScore (0-1 title-similarity floor) and limit. Heuristic — a high score is a strong candidate, not a guaranteed identical contract. Read-only, keyless. No public source maps these directly; the pairing is derived by 2s.io.


key: GET https://2s.io/api/predict/orderbook

description: Full CLOB order book (bids + asks with price and size) for a Polymarket outcome token. Use the clobTokenIds from predict.markets. Read-only depth snapshot from Polymarket's CLOB.


key: GET https://2s.io/api/predict/positions

description: A wallet's open Polymarket positions. Pass the wallet (proxy) address; cap with limit. Each position returns the market title + outcome, share size, average vs current price, initial vs current USD value, unrealized USD P&L and percent P&L, whether it's redeemable, and the conditionId/slug. For inspecting any trader's live book (e.g. a wallet from predict.leaderboard or predict.whales). Read-only from Polymarket's Data API.


key: GET https://2s.io/api/predict/price

description: Live best bid, best ask, and midpoint for a Polymarket outcome token (CLOB token id — get it from predict.markets clobTokenIds). The midpoint is the market's implied probability for that outcome. Read-only from Polymarket's CLOB.


description: Time-series price (implied-probability) history for a Polymarket outcome token. Pass the CLOB token id and an interval (1h, 6h, 1d, 1w, 1m, max). Returns timestamped price points — for charting how a market's odds moved. Read-only from Polymarket's CLOB.


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

description: Cross-venue prediction-market keyword search across Polymarket, Kalshi, and Limitless Exchange in one call. Pass q (required); filter by status (open/closed) and cap per-venue with limit. Each hit is tagged with its venue and returns the question, live YES/NO price (0-1 implied probability), USD volume, close date, and the venue URL — for finding the same real-world question wherever it trades. Read-only, keyless.


key: GET https://2s.io/api/predict/sports

description: Sports prediction markets across Polymarket and Kalshi in one call — game lines, futures, and props (NFL/NBA/MLB/NHL/soccer/tennis/etc). Optionally narrow with league (a tag/category keyword, e.g. nfl, soccer, world-cup) and cap with limit. Each hit is tagged with its venue and returns the question, live YES/NO price (implied probability), USD volume, close date, and the venue URL. Read-only, keyless.


key: GET https://2s.io/api/predict/trades

description: Recent Polymarket trades. Filter by market (conditionId) and/or user (wallet address); page with limit (max 500). Each trade returns wallet, trader name, side (buy/sell), outcome, size, price, USD notional, timestamp, market title, and tx hash. Read-only from Polymarket's Data API.


key: GET https://2s.io/api/predict/wallet

description: A Polymarket trader's portfolio by wallet address: total portfolio USD value plus open positions (market title, outcome, size, average vs current price, current value, and unrealized PnL). For tracking a wallet's prediction-market book. Read-only from Polymarket's Data API.


key: GET https://2s.io/api/predict/whales

description: Polymarket whale radar: the largest recent trades by USD notional across all markets, ranked. Optional minUsd floor and limit. Each entry includes wallet, trader name, market, side, outcome, size, price, USD value, and tx hash — for tracking smart-money / large positioning. Read-only from Polymarket's Data API.


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

description: Decode and validate a product barcode (GTIN / UPC-A / EAN-13 / EAN-8 / GTIN-14 / ISBN-13 / ISSN). Returns the GS1 mod-10 check-digit validation (valid flag + expected digit — an LLM can't reliably compute this), the symbology, the zero-padded GTIN-14 canonical form, and the GS1 prefix decoded to the issuing GS1 member organisation and its country (NOTE: that's the country of the org that issued the prefix, not necessarily where the item was made). Flags restricted-distribution (in-store/variable-measure) prefixes and Bookland (ISBN) / serial (ISSN) ranges. Also attempts a FRESH best-effort product-identity lookup (name, brand, category, image) across the open Open Food/Beauty/Products/Pet Food Facts federation (ODbL) — reliable for food, beverage, and beauty items, sparse for general retai


description: NYC deed + mortgage history for a tax lot via ACRIS (Automated City Register Information System) legals dataset, keyed by BBL. Each row carries a unique documentId you can use to drill into the ACRIS master dataset (the master URL pattern is included in the response) for full details: parties, consideration amount, document type (DEED, MORTGAGE, ASSIGNMENT OF MORTGAGE, etc.). Use `property.nyc-parcel-lookup` first to convert an address to a BBL. Returns most-recent records first.


description: NYC tax-lot lookup via PLUTO (Primary Land Use Tax Lot Output) — every tax lot in the city with owner, zoning, lot/building area, year built, classification, lat/lon, community + school + council + police districts. Pass `bbl` (10-digit Borough-Block-Lot composite, e.g. 1010110001 for the Empire State Building) for an exact lookup, OR pass `address` (partial-match) optionally constrained by `borough` (name or 2-letter code MN/BX/BK/QN/SI). The BBL returned here is the universal join key for all other property.nyc-* endpoints — fetch parcels first, then chain into deed-history, permits, or violations.


description: NYC Department of Buildings permit issuance — every construction, alteration, or demolition permit ever issued. Search by `bbl` (10-digit) or `address` (street_name substring). Filter by jobType (A1=Major Alteration, A2=Minor Alteration, A3=Minor Cosmetic, NB=New Building, DM=Demolition, etc.) or permitStatus (ISSUED, IN PROCESS, RE-ISSUED, REVOKED, etc.). Each row carries job + permit numbers, work type, building type, residential flag, filing/issuance/expiration dates, estimated fee. Use for construction-history agents, code-enforcement research, and zoning compliance checks.


description: NYC Housing Preservation & Development (HPD) violations — every notice of violation issued at a multi-family building. Search by `bbl` (10-digit) or `address` (street_name substring). Filter by `classCode` (A=least severe, B=hazardous, C=immediately hazardous) and `currentStatusOnly=true` to limit to open violations. Each row carries violation id, building id, full address + apartment + story, inspection + approved + certify-by + correct-by dates, current status + status date, and the narrative NOV description. Use for landlord-history, code-enforcement, and tenant-rights agents.


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).


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.


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.


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.


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.


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.


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.


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.


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.


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.


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.


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.


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.


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.


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."


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.