{"eid":"item-metadata-api","name":"Item Metadata API","domain":null,"resolved_by":"name","topics":["storage"],"n_records":1,"best_vorder":6,"review":null,"aliases":["Item Metadata API","Item Metadata API (MDAPI) as free key-value/JSON store"],"records":[{"rid":"storage/item-metadata-api-as-free-key-value-json-store","card":{"rid":"storage/item-metadata-api-as-free-key-value-json-store","eid":"item-metadata-api","topic":"storage","slug":"item-metadata-api-as-free-key-value-json-store","provider":"Item Metadata API (MDAPI) as free key-value/JSON store","url":"https://archive.org/developers/metadata.html","domain":"archive.org","category":"academic","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","self_hosted":0,"confidence":"reported","binding":"request-rate","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-11-04T01:24:26.502Z","verified_basis":"live","checked_on":"2026-11-04","stale_on":"2026-11-19","n_evidence":9,"usd_month":null,"usd_per_tb_month":null,"summary":"No per-item metadata size is published; unlimited items x one JSON doc each, transaction-safe, free.","duplicate_of":null,"n_unknown":7,"free_unit":"unlimited"},"record":{"topic":"storage","slug":"item-metadata-api-as-free-key-value-json-store","provider":"Item Metadata API (MDAPI) as free key-value/JSON store","url":"https://archive.org/developers/metadata.html","category":"academic","free_tier":{"stated":"No per-item metadata size is published; unlimited items x one JSON doc each, transaction-safe, free.","unit":"unlimited","metered_on":"unstated","source_url":"https://archive.org/developers/metadata.html","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://archive.org/developers/metadata.html","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://archive.org/developers/metadata.html","notes":"not stated"},"egress":{"terms":"Free reads (public items), gzip/deflate supported","metered":false},"interface":["rest"],"interface_detail":"rest","tooling":"ia metadata -m / Python MDAPI; auth via the same IAS3 keys (Authorization: LOW)","chaining":"Side-car index for the 20TiB: one small JSON doc per item holding checksums, shard maps, source URLs — solves IAS3's 'cannot list all my items' problem without running your own database.","limits":[{"kind":"request-rate","value":"unverified: writes are tasks limited per user over a period, HTTP 429 Too Many Requests at the threshold; the threshold is not published","source":"https://archive.org/developers/md-write.html"}],"limits_note":"One item per call, no wildcarding; custom fields must follow XML naming; writes are queued like any other item transaction; not intended for bulk blob data.","identity_cost":{"kind":"email","detail":"Internet Archive account (email address, screen name, password); the S3 keys used for MDAPI writes come from that account.","country":null},"reliability_note":"Safe for bookkeeping, useless for bytes; concurrent writers need the documented concurrency pattern or they clobber metadata.","confidence":"reported","confidence_note":"reported: vendor pages read on 2026-11-03 show the sign-up fields (https://archive.org/account/signup), the per-user write task limit (https://archive.org/developers/md-write.html) and the one-item-per-call rule (https://archive.org/developers/metadata.html). The free allowance and the write threshold are not stated there; retention and per-object cap were not read.","evidence":[{"url":"https://archive.org/developers/metadata.html","date":"2026-10-21","proved":"(snapshot 2026-02-04) — 'may even store ad hoc JSON data in a transaction-safe manner', 'MDAPI cannot operate on more than one item at a time. There is no wildcarding'"},{"url":"https://archive.org/developers/ias3.html","date":"2026-10-21","proved":"S3 keys sent with 'Authorization: LOW' are accepted by MDAPI write"},{"url":"https://archive.org/account/signup","date":"2026-11-03","proved":"the Internet Archive sign-up asks for an email address, a screen name and a password","capture":"sha256:4b8b71aa7dd07a92b006c16919f3bc85576963d0e7852ea30ce4dd5b0a6cafee","quote":"Enter your email address"},{"url":"https://archive.org/developers/md-write.html","date":"2026-11-03","proved":"metadata writes are rate limited per user; the threshold is not given","capture":"sha256:12173a1463a5c31c1f168dd4b704d4605bf21270762c3acdb5e82c0ba0522405","quote":"Users are limited in the number of tasks they may submit over a period of time."},{"url":"https://archive.org/developers/metadata.html","date":"2026-11-03","proved":"one item per call, no wildcarding","capture":"sha256:7f8c886c76904cef1f82cfd19f9414ab36249fcfbe8572a03651904efc284daa","quote":"MDAPI cannot operate on more than one item at a time."},{"url":"https://archive.org/developers/metadata.html","date":"2026-11-03","proved":"S3 keys authorize MDAPI calls with Authorization: LOW","capture":"sha256:7f8c886c76904cef1f82cfd19f9414ab36249fcfbe8572a03651904efc284daa","quote":"Internet Archive’s S3 keys can be sent using the `Authorization: LOW` header."},{"url":"https://archive.org/developers/md-write.html","date":"2026-11-04","proved":"metadata writes are rate limited per user; the threshold is not given","capture":"sha256:12173a1463a5c31c1f168dd4b704d4605bf21270762c3acdb5e82c0ba0522405","quote":"Users are limited in the number of tasks they may submit over a period of time."},{"url":"https://archive.org/developers/metadata.html","date":"2026-11-04","proved":"one item per call, no wildcarding","capture":"sha256:7f8c886c76904cef1f82cfd19f9414ab36249fcfbe8572a03651904efc284daa","quote":"MDAPI cannot operate on more than one item at a time."},{"url":"https://archive.org/account/signup","date":"2026-11-04","proved":"the sign-up asks for an email address","capture":"sha256:4b8b71aa7dd07a92b006c16919f3bc85576963d0e7852ea30ce4dd5b0a6cafee","quote":"Enter your email address"}],"verdict":"fails-quota","verified_at":"2026-11-04T01:24:26.502Z","notes":"No per-item metadata size is published; unlimited items x one JSON doc each, transaction-safe, free.","extras":{"dead_end":{"failure_class":"quota","why":"No per-item metadata size is published; unlimited items x one JSON doc each, transaction-safe, free.","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"request-rate","binding_note":"writes are tasks limited per user over a period (HTTP 429); the threshold is not published"},"claims":[{"path":"$.free_tier","kind":"has-free-tier","num":1.0,"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":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.identity_cost.kind","identity-defaulted"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]}]}