{"openapi":"3.1.0","info":{"title":"2s — the (most) everything API","version":"1","summary":"The (most) everything API.","description":"The (most) everything API for AI agents: 575+ pay-per-call endpoints on one origin. More live, ground-truth data than any other x402 service — public records, finance & SEC filings, crypto & web3, security & CVEs, legal, medical, weather, geocoding, and B2B/EDI. A full AI gateway: chat, image, and multi-model consensus across every major model, priced per request in the 402 before you pay. And agent infrastructure with no account: wallet-scoped storage (kv/docs/vectors/files), locks, queues, scheduled callbacks, pub/sub, and watchers that push signed webhooks when the world changes. Pay per call in USDC on Base or Solana via x402 — no API keys, no signup, no subscription. The first x402 API with upto billing: on AI endpoints, authorize the quoted max and settle only your actual usage. Try before you buy: add ?trial=1 (or header X-2s-Trial: 1) to any endpoint for one free real call per endpoint per hour — no wallet needed. New endpoints land constantly.","contact":{"name":"2s","url":"https://2s.io","email":"alley@2s.io"},"x-logo":{"url":"https://2s.io/icon-512.png","altText":"2s"},"x-guidance":"Pay-per-call REST API for AI agents — hundreds of endpoints returning ground-truth data (US public records, company & legal identifiers, finance/SEC, crypto/web3, security & CVEs, medical codes, weather & geocoding, agriculture, energy, maritime, music, and more). Every endpoint is paid per call in USDC via x402 (Base or Solana) — no API key, no signup. Call any endpoint with no auth to get a 402 PaymentRequirements envelope, sign it (EIP-3009 on Base, partial SPL transfer on Solana), and retry with the PAYMENT-SIGNATURE header. Add ?trial=1 for one free real call per endpoint per hour to test before paying. To discover the right endpoint: GET https://2s.io/api/directory for the full catalog, or GET https://2s.io/api/search/endpoints?q=<natural-language task> for a ranked match. Per-call price is on each operation as x-payment-info (from $0.001). Batch up to 50 calls behind one payment via POST https://2s.io/api/batch/run."},"servers":[{"url":"https://2s.io"}],"components":{"responses":{"BadRequest":{"description":"Bad request — invalid parameters."},"PaymentRequired":{"description":"Payment required. Body contains the x402 PaymentRequirements envelope with a multi-network accepts array; the per-call price is in accepts[].amount (and on the operation as x-2s-price). Sign for whichever rail you hold USDC on (EIP-3009 for Base, partial SPL transfer for Solana) and retry with the PAYMENT-SIGNATURE header (X-PAYMENT also accepted for v1 clients).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequiredV2"}}}},"MethodNotAllowed":{"description":"Method not allowed — see `Allow` header for the supported method."},"ServerError":{"description":"Internal server error."},"UpstreamError":{"description":"Upstream provider error."}},"parameters":{"TrialMode":{"name":"trial","in":"query","required":false,"description":"Try before you buy. Set to 1 for one free real call per endpoint per hour — no wallet or payment needed — to verify the endpoint before paying. Equivalent to sending the \"X-2s-Trial: 1\" request header. Works on every endpoint.","schema":{"type":"integer","enum":[1]}}},"securitySchemes":{"x402Payment":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"x402 protocol v2: base64-encoded PaymentPayload. Call any paid endpoint without auth to receive a 402 with a multi-network PaymentRequirements envelope. Sign for either rail: EIP-3009 transferWithAuthorization (Base USDC) OR a partial SPL token transfer (Solana USDC). Retry with PAYMENT-SIGNATURE header. X-PAYMENT is also accepted for v1 buyer clients. See https://x402.org."}},"schemas":{"Source":{"type":"object","description":"Provenance of the data: upstream provider, source URL, and license.","properties":{"provider":{"type":"string","description":"Upstream data provider."},"url":{"type":"string","description":"Source URL or documentation link."},"license":{"type":"string","description":"License / usage terms for the data."}}},"CallMeta":{"type":"object","description":"Per-call meta envelope — endpoint id, cost, caller kind, settlement details."},"X402PaymentRequiredV2":{"type":"object","description":"x402 v2 PaymentRequired envelope. Pick any entry from accepts[], sign for that rail, retry with the PAYMENT-SIGNATURE header.","required":["x402Version","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string","description":"Human-readable reason payment is required."},"resource":{"type":"string","description":"The resource URL being purchased."},"accepts":{"type":"array","description":"Payment requirement options, one per supported network (Base USDC, Solana USDC).","items":{"type":"object","required":["scheme","network","amount","asset","payTo","maxTimeoutSeconds"],"properties":{"scheme":{"type":"string","enum":["exact"]},"network":{"type":"string","description":"CAIP-2 network id, e.g. \"eip155:8453\" (Base) or \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\"."},"amount":{"type":"string","description":"Price in atomic asset units (USDC has 6 decimals)."},"asset":{"type":"string","description":"Asset contract address / mint."},"payTo":{"type":"string","description":"Treasury address to pay."},"maxTimeoutSeconds":{"type":"integer"},"extra":{"type":"object","description":"Rail-specific extras (EVM: EIP-712 domain name/version; Solana: feePayer).","additionalProperties":true}}}},"extensions":{"type":"object","description":"Optional discovery metadata (e.g. bazaar input/output schemas).","additionalProperties":true}}}}},"paths":{"/api/bio/gene":{"get":{"tags":["bio"],"summary":"Look up a gene by its official symbol (e.g.","description":"Look up a gene by its official symbol (e.g. \"TP53\", \"BRCA1\", \"CFTR\") and organism (taxid, default 9606 = human), merging NCBI Gene with UniProt. Returns the gene symbol, NCBI Gene ID, full description, organism, chromosome + cytogenetic map location, alias symbols, and the curated RefSeq function summary; plus the reviewed protein from UniProt — accession, entry id, recommended protein name, length in amino acids, and the curated function description. NCBI + UniProt links. Bioinformatics, clinical-genetics research, education. Public-domain NCBI + CC-BY UniProt data. Common organism taxids: human 9606, mouse 10090, zebrafish 7955, fruit fly 7227, yeast 559292.","operationId":"bio_gene","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ gene }] (one gene; the best-effort UniProt protein sub-block stays inside the item); total = 1; meta.sources lists both NCBI Gene + UniProt attributions (envelope source is the primary, NCBI Gene).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"gene":{"type":"object","properties":{"symbol":{"type":"string","nullable":true},"ncbiGeneId":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"organism":{"type":"object","properties":{"scientificName":{"type":"string","nullable":true},"commonName":{"type":"string","nullable":true},"taxid":{"type":"number","nullable":true}},"required":["scientificName","commonName","taxid"],"additionalProperties":false,"nullable":true},"chromosome":{"type":"string","nullable":true},"mapLocation":{"type":"string","nullable":true},"aliases":{"type":"array","items":{"type":"string"}},"summary":{"type":"string","nullable":true},"protein":{"type":"object","properties":{"found":{"type":"boolean"},"uniprotAccession":{"type":"string","nullable":true},"uniprotId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"lengthAa":{"type":"number","nullable":true},"function":{"type":"string","nullable":true}},"required":["found","uniprotAccession","uniprotId","name","lengthAa","function"],"additionalProperties":false},"ncbiUrl":{"type":"string","nullable":true},"uniprotUrl":{"type":"string","nullable":true}},"required":["symbol","ncbiGeneId","description","organism","chromosome","mapLocation","aliases","summary","protein","ncbiUrl","uniprotUrl"],"additionalProperties":false}},"required":["gene"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"sources":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["sources"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bio.gene","x-2s-version":null,"x-2s-price":{"usd":0.0048},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004800"},"protocols":[{"x402":{}}]},"parameters":[{"name":"symbol","in":"query","required":true,"description":"Symbol.","schema":{"type":"string","minLength":1,"maxLength":30}},{"name":"taxid","in":"query","required":false,"description":"Taxid.","schema":{"type":"integer","minimum":1,"maximum":9999999,"default":9606}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/bio/protein":{"get":{"tags":["bio"],"summary":"Look up a protein in UniProtKB by accession (e.g.","description":"Look up a protein in UniProtKB by accession (e.g. \"P04637\", \"Q9Y6K9\", \"P0DTC2\"). Returns the entry id, reviewed (Swiss-Prot) flag, recommended + alternative protein names, gene names, organism + taxid, sequence length and molecular weight, the curated function description, subcellular locations, Gene Ontology terms (id + term + aspect: biological_process / molecular_function / cellular_component), PDB structure ids, and keywords. Bioinformatics, structural biology, drug-target research, education. Gene-centric sibling: /api/bio/gene. CC-BY UniProt data.","operationId":"bio_protein","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ protein }] (one UniProtKB entry: names, organism, sequence, function, GO terms, PDB ids); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"protein":{"type":"object","properties":{"accession":{"type":"string"},"entryId":{"type":"string","nullable":true},"reviewed":{"type":"boolean"},"proteinName":{"type":"string","nullable":true},"alternativeNames":{"type":"array","items":{"type":"string"}},"genes":{"type":"array","items":{"type":"string"}},"organism":{"type":"object","properties":{"scientificName":{"type":"string","nullable":true},"commonName":{"type":"string","nullable":true},"taxid":{"type":"number","nullable":true}},"required":["scientificName","commonName","taxid"],"additionalProperties":false,"nullable":true},"lengthAa":{"type":"number","nullable":true},"molecularWeightDa":{"type":"number","nullable":true},"function":{"type":"string","nullable":true},"subcellularLocations":{"type":"array","items":{"type":"string"}},"goTerms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"term":{"type":"string"},"aspect":{"type":"string","nullable":true}},"required":["id","term","aspect"],"additionalProperties":false}},"pdbStructures":{"type":"array","items":{"type":"string"}},"keywords":{"type":"array","items":{"type":"string"}},"uniprotUrl":{"type":"string"}},"required":["accession","entryId","reviewed","proteinName","alternativeNames","genes","organism","lengthAa","molecularWeightDa","function","subcellularLocations","goTerms","pdbStructures","keywords","uniprotUrl"],"additionalProperties":false}},"required":["protein"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bio.protein","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"accession","in":"query","required":true,"description":"Accession.","schema":{"type":"string","minLength":2,"maxLength":20,"pattern":"^[A-Za-z0-9]+$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/bio/species":{"get":{"tags":["bio"],"summary":"Resolve any organism by scientific or common name to the...","description":"Resolve any organism by scientific or common name to the GBIF taxonomic backbone — the canonical free reference for life on Earth. Returns the accepted scientific name + canonical name, taxonomic rank and status, the match type/confidence, the full classification (kingdom → phylum → class → order → family → genus → species), up to 8 English vernacular (common) names, the count of recorded occurrences worldwide, and the GBIF species URL. Biodiversity, ecology, education, and as a taxonomy normalizer for other pipelines. Fuzzy-matches misspellings. CC-BY GBIF data.","operationId":"bio_species","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [{ species }] (one resolved taxon; classification + vernacular + occurrence sub-blocks stay inside the item, best-effort); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"species":{"type":"object","properties":{"usageKey":{"type":"number","nullable":true},"scientificName":{"type":"string","nullable":true},"canonicalName":{"type":"string","nullable":true},"rank":{"type":"string","nullable":true},"taxonomicStatus":{"type":"string","nullable":true},"matchType":{"type":"string","nullable":true},"matchConfidence":{"type":"number","nullable":true},"classification":{"type":"object","properties":{"kingdom":{"type":"string","nullable":true},"phylum":{"type":"string","nullable":true},"class":{"type":"string","nullable":true},"order":{"type":"string","nullable":true},"family":{"type":"string","nullable":true},"genus":{"type":"string","nullable":true},"species":{"type":"string","nullable":true}},"required":["kingdom","phylum","class","order","family","genus","species"],"additionalProperties":false},"vernacularNames":{"type":"array","items":{"type":"string"}},"occurrenceCount":{"type":"number","nullable":true},"gbifUrl":{"type":"string","nullable":true}},"required":["usageKey","scientificName","canonicalName","rank","taxonomicStatus","matchType","matchConfidence","classification","vernacularNames","occurrenceCount","gbifUrl"],"additionalProperties":false}},"required":["species"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"bio.species","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"name","in":"query","required":true,"description":"Name to search for.","schema":{"type":"string","minLength":2,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}}}}