Free, public, read-only JSON and CSV for five maintained tech datasets — AI coding benchmarks, model API pricing, tech funding rounds, actively exploited CVEs and memecoin rankings.
No API key. No signup. No rate limit. Every endpoint is a static file on a CDN
with Access-Control-Allow-Origin: *, so you can fetch() it straight from a
browser. Licensed CC BY 4.0 —
commercial use included, attribution required.
Docs: https://genztech.blog/api/ · Catalog: https://genztech.blog/api/v1/index.json
# the catalog: every dataset, its fields, record count and last-updated date
curl -s https://genztech.blog/api/v1/index.json
# one dataset
curl -s https://genztech.blog/api/v1/leaderboard.json// CORS is open — no key, no proxy, works from any origin
const res = await fetch("https://genztech.blog/api/v1/leaderboard.json");
const { models } = await res.json();
console.log(models[0].name, models[0].sweBenchVerified);Start from the catalog rather than hardcoding endpoints: it lists every dataset
with its field names, record count and updated date, so your integration keeps
working when a dataset is added.
Base: https://genztech.blog/api/v1
| Dataset | Endpoint | Records | Updated |
|---|---|---|---|
| AI Coding Leaderboard | /leaderboard.json · .csv |
21 | daily |
| Leaderboard History | /leaderboard-history.json · .csv |
11 snapshots | daily |
| Tech Funding Tracker | /funding.json · .csv |
39 | daily |
| CVE Watchlist | /cves.json · .csv |
15 | daily |
| Memecoin Tracker | /memecoins.json · .csv |
5 chains | daily |
Plus the catalog at /index.json.
Frontier AI models ranked for coding by SWE-bench Verified and Pro scores, with
per-token pricing, context window and open-weights status. Records under models.
rank name maker open sweBenchVerified sweBenchPro terminalBench
inputPricePer1M outputPricePer1M context verified sameAs
Only models whose scores are confirmed against a primary source get a rank.
Unconfirmed models are present with verified: false and null scores — they are
never given an estimated number. Filter on verified if you only want confirmed rows.
Every historical snapshot of the leaderboard, reconstructed from the site's git
history. Records under snapshots.
date commit updated rankedCount leader models
Useful for charting how a model's score or rank changed over time. Note the CSV flattens to one row per model per snapshot (121 rows for 11 snapshots).
Major AI and tech funding rounds, each one verified and linked to the article
documenting it. Records under rounds.
company amountM amount round sector investors valuation
date dateDisplay what post
amountM is the round size in millions USD, for sorting. valuation is null
unless it was actually disclosed.
High-impact vulnerabilities triaged by real-world exploitation status. Records
under items.
id product type cvss status kev action date note post
status is one of actively exploited, exploited, patched, disclosed.
kev is a boolean for presence in CISA's Known Exploited Vulnerabilities catalog.
action is the specific remediation step, not generic advice.
Top memecoins per chain by market cap, snapshotted at build time from CoinGecko.
Records under chains, each with a nested coins array.
key label coins[]
The CSV flattens to one row per coin per chain (50 rows for 5 chains).
Runnable, dependency-free where possible:
examples/fetch.mjs— Node, no dependenciesexamples/fetch.py— Python, standard library onlyexamples/pandas_load.py— load the CSVs into DataFramesexamples/browser.html— open it locally to prove CORS works cross-origin
node examples/fetch.mjs
python examples/fetch.pyThree things that will bite you if nobody tells you, all verified against the live endpoints:
Python's default User-Agent gets a 403. Cloudflare's bot protection sits in
front of the site and rejects Python-urllib/3.x — a common scraper signature.
requests, curl, Go and browsers all set acceptable defaults and work
unchanged. If you use urllib or pandas, send a descriptive User-Agent:
req = urllib.request.Request(url, headers={"User-Agent": "my-app/1.0"})
# pandas reads URLs through urllib, so it needs the same:
pd.read_csv(url, storage_options={"User-Agent": "my-app/1.0"})Booleans are not spelled consistently across the CSVs. leaderboard.csv
uses yes/no for open_weights and verified; cves.csv uses true/false
for kev. Normalise rather than comparing against one literal. The JSON
endpoints use real booleans throughout and do not have this problem.
sector in the funding data is free text, not a category. It is a
descriptor written per round, so 39 rounds currently carry 39 distinct strings.
Grouping by it will not give you a sector breakdown — rank by amountM instead.
- Licence. CC BY 4.0. Use it anywhere, including commercially.
- Attribution. Credit "GENZ TECH" and link to the dataset page you used. That link is the whole price.
- No key, no limit. Nothing to sign up for. Please cache rather than polling —
the data moves once a day at most, and
Cache-Controltells you exactly how long a response stays fresh (max-age=3600, stale-while-revalidate=86400). - Stability. Paths under
/api/v1/do not change shape. A breaking change to a payload would ship as/api/v2/, leaving v1 in place.
These are curated datasets, not scrapes. Two rules govern them:
Nothing unverified gets a number. If a benchmark score, price or valuation is
not confirmed against a primary source, it is published as null — never an
estimate, never a guess. Rows carry a verified flag or a provenance note so you
can tell vendor-reported figures from independent evaluations.
updated means the data changed. It is derived from each dataset's own revision
history, not from when the file was last written, so a dataset that did not move
today does not claim it did.
Every dataset is regenerated on each site build, at least daily. The record counts and field lists in the catalog are derived from the payloads themselves, so the documentation cannot drift from the data.
If you want a live table on your page rather than raw records, each tracker ships a self-contained embeddable widget — an iframe, no script tag:
<iframe src="https://genztech.blog/ai-coding-leaderboard/embed/"
width="100%" height="470" loading="lazy"
title="AI Coding Leaderboard by GENZ TECH"
style="border:1px solid #26282b;border-radius:10px;max-width:560px"></iframe>The "cite & embed" block on each tracker page has a copy-paste snippet.
Spot an error? Open an issue here, or use the contact page. Corrections are made at the source and propagate to the API on the next build — see our editorial standards.