{"openapi":"3.1.0","info":{"title":"Screen Printing API","version":"1.0.0","description":"Screen-printing maths as an API, computed locally and deterministically — the ink-usage and cost numbers an apparel printer or print shop quotes a job by. It all turns on “ink mileage”, the printed area a unit of ink covers — in² per pound, with plastisol commonly 12,000–18,000 depending on mesh and deposit. The ink endpoint sizes a run: ink = (print area × prints) ÷ mileage, so a 100 in² design printed 150 times at 15,000 in²/lb takes exactly one pound (454 g, about 3 g a print); pass the design as area or as width × height. The prints endpoint runs it in reverse — how many shirts a tub of ink will do: prints = (ink weight × mileage) ÷ print area, so a pound of plastisol covers 15,000 in², roughly 150 prints of that design before waste, and it takes pounds, kilograms or grams. The cost endpoint puts a price on it: ink pounds × price per pound gives the run’s ink cost and the per-print figure, usually just a few cents — ink only, before screens, garments and labour. Everything is computed locally and deterministically, so it is instant and private. Ideal for screen-printing, apparel-decoration, print-shop and merch app developers, quoting and job-costing tools, and production-planning software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Ink only; add screens, garments and labour for a full quote.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/screenprint-api","description":"oanor gateway"}],"tags":[{"name":"ScreenPrint"},{"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/cost":{"get":{"operationId":"get_v1_cost","tags":["ScreenPrint"],"summary":"Ink cost per print + run","description":"","parameters":[{"name":"prints","in":"query","required":true,"description":"Number of prints","schema":{"type":"string"},"example":"150"},{"name":"ink_price_per_lb","in":"query","required":true,"description":"Ink price per pound","schema":{"type":"string"},"example":"25"},{"name":"area_in2","in":"query","required":false,"description":"Print area (in²)","schema":{"type":"string"},"example":"100"},{"name":"width_in","in":"query","required":false,"description":"Print width (in)","schema":{"type":"string"}},{"name":"height_in","in":"query","required":false,"description":"Print height (in)","schema":{"type":"string"}},{"name":"mileage_in2_per_lb","in":"query","required":false,"description":"Ink mileage (default 15000)","schema":{"type":"string"},"example":"15000"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Ink cost = pounds used × price per pound. This is INK only — add screens, emulsion, garments, labour and flash/cure energy for a full job cost. Per-print ink cost is usually a few cents.","inputs":{"prints":150,"area_in2":100,"ink_price_per_lb":25,"mileage_in2_per_lb":15000},"ink_pounds":1,"total_ink_cost":25,"ink_cost_per_print":0.1667},"meta":{"timestamp":"2026-06-06T07:14:01.112Z","request_id":"7001bda9-a3b7-4050-b89f-43622c0c7ff7"},"status":"ok","message":"Ink cost","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/ink":{"get":{"operationId":"get_v1_ink","tags":["ScreenPrint"],"summary":"Ink needed for a run","description":"","parameters":[{"name":"prints","in":"query","required":true,"description":"Number of prints","schema":{"type":"string"},"example":"150"},{"name":"area_in2","in":"query","required":false,"description":"Print area (in²)","schema":{"type":"string"},"example":"100"},{"name":"width_in","in":"query","required":false,"description":"Print width (in)","schema":{"type":"string"}},{"name":"height_in","in":"query","required":false,"description":"Print height (in)","schema":{"type":"string"}},{"name":"mileage_in2_per_lb","in":"query","required":false,"description":"Ink mileage (default 15000)","schema":{"type":"string"},"example":"15000"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Ink = (print area × prints) ÷ ink mileage. Mileage is in² covered per pound — plastisol runs ~12,000–18,000 in²/lb (lower for heavy underbase/low mesh, higher for thin prints on fine mesh). Buy ~15–20 % extra for the screen, flooding and waste.","inputs":{"prints":150,"area_in2":100,"mileage_in2_per_lb":15000},"ink_grams":453.6,"ink_pounds":1,"grams_per_print":3.02,"total_print_area_in2":15000},"meta":{"timestamp":"2026-06-06T07:14:01.206Z","request_id":"27a404af-3af3-4f66-9f37-4782f3786741"},"status":"ok","message":"Ink needed","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/prints":{"get":{"operationId":"get_v1_prints","tags":["ScreenPrint"],"summary":"Prints from a quantity of ink","description":"","parameters":[{"name":"ink_amount","in":"query","required":true,"description":"Amount of ink","schema":{"type":"string"},"example":"1"},{"name":"ink_unit","in":"query","required":false,"description":"lb, kg or g (default lb)","schema":{"type":"string"},"example":"lb"},{"name":"area_in2","in":"query","required":false,"description":"Print area (in²)","schema":{"type":"string"},"example":"100"},{"name":"width_in","in":"query","required":false,"description":"Print width (in)","schema":{"type":"string"}},{"name":"height_in","in":"query","required":false,"description":"Print height (in)","schema":{"type":"string"}},{"name":"mileage_in2_per_lb","in":"query","required":false,"description":"Ink mileage (default 15000)","schema":{"type":"string"},"example":"15000"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Prints = (ink weight × mileage) ÷ print area, rounded down. A pound of plastisol at 15,000 in²/lb covers 15,000 in² — about 150 prints of a 100 in² design before waste.","inputs":{"area_in2":100,"ink_unit":"lb","ink_amount":1,"mileage_in2_per_lb":15000},"prints":150,"ink_pounds":1,"coverable_area_in2":15000},"meta":{"timestamp":"2026-06-06T07:14:01.306Z","request_id":"11d09277-bef7-4017-813a-4461f3e35520"},"status":"ok","message":"Prints from ink","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":{"notes":"Print area in in² (or width_in × height_in). Ink mileage in in²/lb (default 15,000 for plastisol). These cover INK only — screens, emulsion, garments and labour are separate. For garment-quantity pricing add your shop rates.","service":"screenprint-api","endpoints":{"GET /v1/ink":"Ink (pounds/grams) needed to print a run from the design area and ink mileage.","GET /v1/cost":"Ink cost per print and for the run from a price per pound.","GET /v1/meta":"This document.","GET /v1/prints":"How many prints a given quantity of ink yields."},"description":"Screen-printing maths: ink usage from ink mileage, prints obtainable from a quantity of ink, and ink cost per print."},"meta":{"timestamp":"2026-06-06T07:14:01.409Z","request_id":"9845fe16-0fd0-496a-bb6f-6eb3044e18c3"},"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":6650,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":442,"monthly_call_quota":53800,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1225,"monthly_call_quota":221500,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3870,"monthly_call_quota":1318000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/screenprint-api"}