{"openapi":"3.1.0","info":{"title":"Paper Weight API","version":"1.0.0","description":"Paper-weight maths as an API, computed locally and deterministically. The convert endpoint converts between grammage (GSM, grams per square metre — the universal measure) and the US basis weight in pounds, which depends on the paper stock type: bond/writing (basis 17×22 in), text/book/offset (25×38), cover (20×26), index (25.5×30.5), tag (24×36) and bristol (22.5×28.5). The weight endpoint computes the mass of a single sheet, a 500-sheet ream and the M-weight (the weight of 1000 sheets in pounds) at a given grammage and sheet size — accepting dimensions in millimetres, centimetres, inches or metres, or a named size (A3–A5, letter, legal, tabloid). The stocks endpoint is a reference of the US stock types with their conversion factors and basis sizes. Everything is computed locally and deterministically, so it is instant and private. Ideal for printing and publishing tools, stationery and packaging apps, print-shop estimators, and shipping-weight calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is paper grammage and basis weight; for general mass-unit conversion use a unit-conversion API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/paper-api","description":"oanor gateway"}],"tags":[{"name":"Paper"},{"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/convert":{"get":{"operationId":"get_v1_convert","tags":["Paper"],"summary":"GSM ↔ US basis weight","description":"","parameters":[{"name":"gsm","in":"query","required":false,"description":"Grammage (g/m²)","schema":{"type":"string"},"example":"80"},{"name":"lb","in":"query","required":false,"description":"Or basis weight (lb)","schema":{"type":"string"},"example":"20"},{"name":"stock","in":"query","required":false,"description":"bond|text|cover|index|tag|bristol","schema":{"type":"string"},"example":"bond"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"gsm":80,"note":"Basis weight is for bond stock (basis size 17×22 in, 500 sheets). gsm = lb × 3.7595.","input":{"stock":"bond","basis_size_in":"17×22"},"basis_weight_lb":21.28,"factor_gsm_per_lb":3.7595},"meta":{"timestamp":"2026-06-04T01:59:13.573Z","request_id":"0353c058-c609-4bc0-83f6-c5a7076f8a47"},"status":"ok","message":"GSM <-> basis weight","success":true}}}},"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/stocks":{"get":{"operationId":"get_v1_stocks","tags":["Paper"],"summary":"Paper stock reference","description":"","parameters":[{"name":"stock","in":"query","required":false,"description":"One stock, or omit for all","schema":{"type":"string"},"example":"cover"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"factor is gsm per pound of basis weight.","basis":"20×26","stock":"cover","factor":2.70489},"meta":{"timestamp":"2026-06-04T01:59:13.671Z","request_id":"086e1d6c-d679-483d-95ab-5988e83c338e"},"status":"ok","message":"Stock reference","success":true}}}},"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/weight":{"get":{"operationId":"get_v1_weight","tags":["Paper"],"summary":"Sheet / ream / M-weight","description":"","parameters":[{"name":"gsm","in":"query","required":true,"description":"Grammage","schema":{"type":"string"},"example":"80"},{"name":"size","in":"query","required":false,"description":"a4|a3|letter|legal|… (or width+height)","schema":{"type":"string"},"example":"a4"},{"name":"width","in":"query","required":false,"description":"Sheet width","schema":{"type":"string"}},{"name":"height","in":"query","required":false,"description":"Sheet height","schema":{"type":"string"}},{"name":"size_unit","in":"query","required":false,"description":"mm|cm|in|m","schema":{"type":"string"},"example":"mm"},{"name":"count","in":"query","required":false,"description":"Number of sheets","schema":{"type":"string"},"example":"500"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Sheet weight = gsm × sheet area (m²). Ream = 500 sheets; M-weight is the weight of 1000 sheets in pounds.","input":{"gsm":80,"count":500,"area_m2":0.06237},"total_kg":2.4948,"m_weight_lb":11.0002,"ream_500_kg":2.4948,"sheet_grams":4.9896,"total_grams":2494.8,"ream_500_grams":2494.8},"meta":{"timestamp":"2026-06-04T01:59:13.760Z","request_id":"3849415b-e9cc-42ed-b82e-c406269f3b4c"},"status":"ok","message":"Sheet / ream weight","success":true}}}},"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":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"US basis weight depends on the stock's basis size; GSM (grammage) is universal. Named sizes A3–A5, letter, legal, tabloid are built in.","stocks":["bond","text","cover","index","tag","bristol"],"service":"paper","endpoints":{"/v1/stocks":"Reference of US paper stock types, their factors and basis sizes.","/v1/weight":"Weight of sheets, a 500-sheet ream and M-weight at a size and GSM.","/v1/convert":"Convert between GSM and US basis weight (lb) for a paper stock type."},"description":"Paper-weight maths: grammage (GSM) ↔ US basis weight by stock type, and sheet/ream/M-weight at a size."},"meta":{"timestamp":"2026-06-04T01:59:13.858Z","request_id":"9c6c30f8-f627-4846-b66b-daa3fdb314c2"},"status":"ok","message":"Meta","success":true}}}},"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":12435,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1395,"monthly_call_quota":22050,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3385,"monthly_call_quota":270500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7185,"monthly_call_quota":1395000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/paper-api"}