{"rid":"data-apis/nasdisks-drive-data-api","card":{"rid":"data-apis/nasdisks-drive-data-api","eid":"nasdisks","topic":"data-apis","slug":"nasdisks-drive-data-api","provider":"NASdisks Drive Data API","url":"https://www.nasdisks.com/data/","domain":"nasdisks.com","category":"open dataset API: NAS drive specifications and failure rates","tier":"free","verdict":"qualifies","vorder":0,"grp":"usable","self_hosted":0,"confidence":"documented","binding":"none","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-11-02T00:23:45.809Z","verified_basis":"live","checked_on":"2026-11-02","stale_on":"2026-12-03","n_evidence":24,"usd_month":null,"usd_per_tb_month":null,"summary":"No signup, no key, no rate limit: two read-only GET endpoints return the whole dataset of 298 drives, 21 with a measured failure rate, as JSON or CSV.","duplicate_of":null,"n_unknown":1,"free_unit":"unlimited"},"record":{"topic":"data-apis","slug":"nasdisks-drive-data-api","provider":"NASdisks Drive Data API","url":"https://www.nasdisks.com/data/","category":"open dataset API: NAS drive specifications and failure rates","tier":"free","free_tier":{"stated":"No signup, no key, no rate limit: two read-only GET endpoints return the whole dataset of 298 drives, 21 with a measured failure rate, as JSON or CSV.","unit":"unlimited","metered_on":"none","source_url":"https://www.nasdisks.com/data/","read_on":"2026-11-02","notes":"Both endpoints are cached for an hour. The failure-rate fields come from Backblaze Drive Stats."},"per_object_cap":{"stated":"no cap stated; the whole dataset is one 168410-byte JSON or one 28364-byte CSV","bytes":null,"notes":""},"retention":{"stated":"the live endpoints serve the current catalogue, cached for an hour; dated snapshots of the dataset are kept in a GitHub repository and in a Zenodo deposit","days":null,"notes":"","source_url":"https://www.nasdisks.com/data/"},"egress":{"terms":"not applicable: a dataset API, not metered in bytes; both endpoints are cached for an hour","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://www.nasdisks.com/data/"},"interface":["rest"],"interface_detail":"HTTPS GET of https://www.nasdisks.com/data/drives.json (a top-level object with license, count and a drives array) and https://www.nasdisks.com/data/drives.csv (the same rows, flat), open to all origins; an OpenAPI 3.0.3 contract at https://www.nasdisks.com/openapi.yaml also covers a third endpoint, /embed/cheapest.json","endpoint":"https://www.nasdisks.com/data/drives.json","tooling":"any HTTP client, such as curl with jq; the data page gives a Zenodo DOI to cite the dataset","chaining":"Reference data on NAS and enterprise drives: specs, CMR/SMR recording technology and annualized failure rates derived from Backblaze Drive Stats, read as one JSON or CSV file. Bulk path: drives.json or drives.csv is the whole dataset in one GET, and dated snapshots of the dataset are in the GitHub repository deeddy/nas-drive-data and in a Zenodo deposit.","limits":[{"kind":"request-rate","value":"none stated: the data page says no rate limit, and 40 parallel keyless GETs of drives.csv all answered HTTP 200","source":"https://www.nasdisks.com/data/"}],"binding":"none","binding_note":"No quota, key or rate limit is stated, and a 40-request parallel burst met no 429; the one-hour cache of both endpoints is the only limit on freshness.","identity_cost":{"kind":"anonymous","detail":"No signup and no key: the data page says so, and keyless GETs of both endpoints answered HTTP 200.","country":null},"reliability_note":"Both endpoints are cached for an hour, so an answer can lag the catalogue; both answered HTTP 200 to keyless GETs on 2026-11-02.","confidence":"documented","confidence_note":"The data page states no signup, no key and no rate limit, and the repository README repeats no key and no rate limit; keyless GETs of drives.json and drives.csv answered 200 with the 298-drive count the page gives, and a 40-request parallel burst met no 429.","evidence":[{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"the data page states no signup, no key and no rate limit","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"Refreshed as the catalogue and Backblaze data update. No signup, no key, no rate limit."},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"the dataset holds 298 drives, 21 of them with a measured failure rate","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"298 drives, 21 with a measured failure rate."},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"both endpoints are read-only GETs, open to all origins and cached for an hour","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"Both endpoints are read-only `GET`s, allow cross-origin requests (`Access-Control-Allow-Origin: *`) and are cached for an hour, so you can call them straight from a browser, a notebook or a build step."},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"drives.json is a JSON object with license, count and a drives array","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"- `https://www.nasdisks.com/data/drives.json` - JSON: a top-level object with `license`, `count` and a `drives` array."},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"drives.csv carries the same rows as a flat CSV","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"- `https://www.nasdisks.com/data/drives.csv` - the same rows as a flat CSV."},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"an OpenAPI 3.0 contract at openapi.yaml covers both endpoints and a price feed","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"Machine-readable contract: [`openapi.yaml`](https://www.nasdisks.com/openapi.yaml) (OpenAPI 3.0, covers both endpoints plus the embed price feed)."},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":null,"capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"The specs and CMR/SMR data are free to use with credit; the failure rates come from Backblaze Drive Stats."},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"the data page shows a plain curl call piped to jq as the way to read the endpoint","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"curl -s https://www.nasdisks.com/data/drives.json | jq '.drives[0]'"},{"url":"https://www.nasdisks.com/data/","date":"2026-11-02","proved":"the data page names a Zenodo DOI to cite the dataset","capture":"sha256:c37e2e5300278db4988573c69f2741bcf4aeb008be52712fa9e3eeb209fbd63e","quote":"Cite this dataset: [NASdisks (2026), NAS Drive Dataset, Zenodo, doi:10.5281/zenodo.21225049](https://doi.org/10.5281/zenodo.21225049)."},{"url":"probe:https://www.nasdisks.com/data/drives.json","date":"2026-11-02","proved":"a keyless GET of drives.json answered 200 with 168410 bytes","capture":"sha256:988020122737d9a39f4791c45a77545327fb0b1dfa8dba06993691fad6bc4591","quote":"\"status\": 200, \"bytes\": 168410,"},{"url":"probe:https://www.nasdisks.com/data/drives.json","date":"2026-11-02","proved":"the answer carries Cache-Control max-age=3600, public","capture":"sha256:988020122737d9a39f4791c45a77545327fb0b1dfa8dba06993691fad6bc4591","quote":"\"cache-control\": \"max-age=3600, public\""},{"url":"probe:https://www.nasdisks.com/data/drives.json","date":"2026-11-02","proved":"the answer allows cross-origin reads from any origin","capture":"sha256:988020122737d9a39f4791c45a77545327fb0b1dfa8dba06993691fad6bc4591","quote":"\"access-control-allow-origin\": \"*\""},{"url":"probe:https://www.nasdisks.com/data/drives.json","date":"2026-11-02","proved":"the body states a count of 298 drives and holds a drives array","capture":"sha256:7213990808be25c641dfe9cddb05b3e16bcce1d8c89591bb4c3e06f2a18872d6","quote":"\"count\":298,\"drives\":["},{"url":"probe:https://www.nasdisks.com/data/drives.csv","date":"2026-11-02","proved":"a keyless GET of drives.csv answered 200 with 28364 bytes","capture":"sha256:c4be341c7406a92805f36183e7f9045f8b3c785d652376bb3f2d0b6f1f0dcdba","quote":"\"status\": 200, \"bytes\": 28364,"},{"url":"probe:https://www.nasdisks.com/data/drives.csv","date":"2026-11-02","proved":"the CSV starts with a header row of the drive fields","capture":"sha256:9f8f73ad6305cf0e06de633c24f0d02f28d16bb3188de5c9415c0d4c4489b2c7","quote":"model,brand,line,capacity_tb,rpm,cache_mb,interface,form_factor,recording_tech,erc_tler"},{"url":"probe:https://www.nasdisks.com/data/drives.csv","date":"2026-11-02","proved":"the burst was 40 parallel GETs","capture":"sha256:2e72d104147136c7fb3744ca5e8990f44bf35504fd1256b7a26e44e2e48a3ebe","quote":"\"concurrency\": 40"},{"url":"probe:https://www.nasdisks.com/data/drives.csv","date":"2026-11-02","proved":"the highest status of the 40 runs was 200, so none answered 429","capture":"sha256:2e72d104147136c7fb3744ca5e8990f44bf35504fd1256b7a26e44e2e48a3ebe","quote":"\"status\": 200"},{"url":"https://www.nasdisks.com/openapi.yaml","date":"2026-11-02","proved":"the contract is titled NASdisks Drive Data API","capture":"sha256:6db4951c8a49193fcd1032ceea29b986d1cdb3802d1ed2b5d2ec77748528c187","quote":"title: NASdisks Drive Data API"},{"url":"https://www.nasdisks.com/openapi.yaml","date":"2026-11-02","proved":"the contract is OpenAPI 3.0.3","capture":"sha256:6db4951c8a49193fcd1032ceea29b986d1cdb3802d1ed2b5d2ec77748528c187","quote":"openapi: 3.0.3"},{"url":"https://www.nasdisks.com/openapi.yaml","date":"2026-11-02","proved":"the contract has a third path, /embed/cheapest.json","capture":"sha256:6db4951c8a49193fcd1032ceea29b986d1cdb3802d1ed2b5d2ec77748528c187","quote":"/embed/cheapest.json:"},{"url":"https://github.com/deeddy/nas-drive-data","date":"2026-11-02","proved":"the repository README repeats that the live endpoints are cached, need no key and have no rate limit","capture":"sha256:1d758b8ac3f5f75323a3099a18b5bdfc8ca3d8cf1eb61fe265a41adb1f09a543","quote":"If you'd rather hit a live endpoint (CORS-enabled, cached, no key, no rate limit):"},{"url":"https://github.com/deeddy/nas-drive-data","date":"2026-11-02","proved":"the repository keeps a dated JSON snapshot that mirrors the live API","capture":"sha256:1d758b8ac3f5f75323a3099a18b5bdfc8ca3d8cf1eb61fe265a41adb1f09a543","quote":"| [`data/drives-2026-09-04.json`](https://github.com/deeddy/nas-drive-data/blob/main/data/drives-2026-09-04.json) | 273 | The same rows as JSON (mirror of the live API). |"},{"url":"https://github.com/deeddy/nas-drive-data","date":"2026-11-02","proved":"the repository files are dated snapshots, with the live dataset at nasdisks.com/data","capture":"sha256:1d758b8ac3f5f75323a3099a18b5bdfc8ca3d8cf1eb61fe265a41adb1f09a543","quote":"These files are a dated snapshot and may be out of date."},{"url":"https://zenodo.org/records/21225049","date":"2026-11-02","proved":"a Zenodo deposit holds a dated JSON snapshot of the dataset","capture":"sha256:936f3a6b54c164079c700ac5208d7ba19cbc859a441f207f25ad4bf7661e8e64","quote":"| [drives-2026-09-04.json](https://zenodo.org/records/22552312/files/drives-2026-09-04.json?download=1) md5:a679dcd9c3ca426511ab6e5b12416c00 | 150.1 kB |"}],"verdict":"qualifies","verified_at":"2026-11-02T00:23:45.809Z","notes":"Free requests: no quota, no key. Rate limit: none stated. Bulk path: drives.json or drives.csv, the whole dataset in one GET, with dated snapshots in a GitHub repository and a Zenodo deposit. The failure-rate fields come from Backblaze Drive Stats."},"claims":[{"path":"$.free_tier","kind":"has-free-tier","num":1,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.evidence[6].proved","withheld"]],"history":[],"drift":[]}