{"openapi":"3.1.0","info":{"title":"L2BEAT Rollup Risk & TVS API","version":"1.0.0","description":"Live Ethereum layer-2 / rollup risk and value-secured data from L2BEAT — no key, nothing stored. L2BEAT's signature is its independent risk framework: every rollup is rated by maturity Stage (Stage 0 / 1 / 2) and assessed across the canonical risk dimensions — sequencer failure, state validation, data availability, exit window and proposer failure — each carrying a good / warning / bad sentiment and a plain-language explanation. This is the rollup-risk and total-value-secured (TVS) view, distinct from the L2 economics/fundamentals and the on-chain per-chain APIs in the catalogue. The projects endpoint lists every tracked L2 with its type (Optimistic Rollup, ZK Rollup, Validium, layer3…), category, host chain, maturity Stage, TVS and 7-day change. The project endpoint returns one rollup in full — the TVS breakdown (native / canonical / external, and ether / stablecoin / btc / other), the Stage, providers, purposes and the complete risk assessment. The risks endpoint returns just the risk rosette for a rollup with a sentiment tally. The summary endpoint aggregates the whole ecosystem — total TVS, project count and the distribution by Stage and by type. More than a hundred rollups tracked, updated live. Project lookup is by slug (arbitrum, base, optimism, zksync-era, scroll, linea, starknet).","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/l2beat-api","description":"oanor gateway"}],"tags":[{"name":"Projects"},{"name":"Project"},{"name":"Risks"},{"name":"Summary"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/projects":{"get":{"operationId":"get_v1_projects","tags":["Projects"],"summary":"All tracked L2s ranked by TVS","description":"","parameters":[{"name":"type","in":"query","required":false,"description":"Filter by type (layer2, layer3)","schema":{"type":"string"},"example":"layer2"},{"name":"limit","in":"query","required":false,"description":"Max rows (default 100, max 400)","schema":{"type":"string"},"example":"100"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project":{"get":{"operationId":"get_v1_project","tags":["Project"],"summary":"One rollup in full — TVS, Stage, risks","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Rollup slug/id","schema":{"type":"string"},"example":"arbitrum"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/risks":{"get":{"operationId":"get_v1_risks","tags":["Risks"],"summary":"The risk rosette for a rollup","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Rollup slug/id","schema":{"type":"string"},"example":"base"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/summary":{"get":{"operationId":"get_v1_summary","tags":["Summary"],"summary":"Ecosystem aggregate — TVS, Stage and type distribution","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":13000,"rps_limit":3,"hard_limit":true},{"slug":"builder","name":"Builder","price_cents_month":935,"monthly_call_quota":195000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2740,"monthly_call_quota":870000,"rps_limit":28,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":6150,"monthly_call_quota":3250000,"rps_limit":65,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/l2beat-api"}