{"openapi":"3.1.0","info":{"title":"Sewing & Fabric API","version":"1.0.0","description":"Sewing and fabric-estimating maths as an API, computed locally and deterministically — the yardage numbers a sewist, quilter or curtain-maker works a project out with. The yardage endpoint lays cut pieces onto a bolt: pieces per row = floor(fabric width ÷ piece width), rows = ceil(quantity ÷ per row), and the fabric length = rows × piece height plus a waste allowance — six 18×22-inch pieces from 44-inch quilting cotton need about 2 yards. The curtain endpoint sizes drapery for fullness: drops = ceil(window width × fullness ÷ fabric width), where 2× is a standard gather and 2.5–3× is luxe, and each drop is the finished length plus top and bottom hems (rounded up to the pattern repeat) — a 60-inch window at 2.5× fullness on 54-inch fabric takes three drops and about 8.3 yards. The binding endpoint sizes quilt binding: length = perimeter + overlap for corners and joins, strips = ceil(length ÷ fabric width) cut at the strip width. Everything is computed locally and deterministically, so it is instant and private. Ideal for sewing, quilting, home-decor, upholstery and craft app developers, fabric-calculator and project-planning tools, and sewing education. Pure local computation — no key, no third-party service, instant. Imperial inches in; yards and metres out. Live, nothing stored. 3 compute endpoints. Add pattern-repeat allowance for prints; a planning aid.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/sewing-api","description":"oanor gateway"}],"tags":[{"name":"Sewing"},{"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/binding":{"get":{"operationId":"get_v1_binding","tags":["Sewing"],"summary":"Quilt binding","description":"","parameters":[{"name":"quilt_width","in":"query","required":true,"description":"Quilt width (in)","schema":{"type":"string"},"example":"60"},{"name":"quilt_height","in":"query","required":true,"description":"Quilt height (in)","schema":{"type":"string"},"example":"80"},{"name":"strip_width","in":"query","required":false,"description":"Binding strip width (in, default 2.5)","schema":{"type":"string"}},{"name":"fabric_width","in":"query","required":false,"description":"Fabric width (in, default 44)","schema":{"type":"string"}},{"name":"overlap","in":"query","required":false,"description":"Corner/join overlap (in, default 10)","schema":{"type":"string"}}],"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/curtain":{"get":{"operationId":"get_v1_curtain","tags":["Sewing"],"summary":"Curtain fabric","description":"","parameters":[{"name":"window_width","in":"query","required":true,"description":"Window/rod width (in)","schema":{"type":"string"},"example":"60"},{"name":"finished_length","in":"query","required":true,"description":"Finished curtain length (in)","schema":{"type":"string"},"example":"84"},{"name":"fullness","in":"query","required":false,"description":"Fullness ratio (default 2)","schema":{"type":"string"},"example":"2.5"},{"name":"fabric_width","in":"query","required":false,"description":"Fabric width (in, default 54)","schema":{"type":"string"},"example":"54"},{"name":"hem_allowance","in":"query","required":false,"description":"Top+bottom hems (in, default 16)","schema":{"type":"string"}},{"name":"pattern_repeat","in":"query","required":false,"description":"Pattern repeat (in)","schema":{"type":"string"}}],"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/yardage":{"get":{"operationId":"get_v1_yardage","tags":["Sewing"],"summary":"Fabric for cut pieces","description":"","parameters":[{"name":"piece_width","in":"query","required":true,"description":"Piece width (in)","schema":{"type":"string"},"example":"18"},{"name":"piece_height","in":"query","required":true,"description":"Piece height (in)","schema":{"type":"string"},"example":"22"},{"name":"quantity","in":"query","required":false,"description":"Number of pieces (default 1)","schema":{"type":"string"},"example":"6"},{"name":"fabric_width","in":"query","required":false,"description":"Bolt width (in, default 44)","schema":{"type":"string"},"example":"44"},{"name":"waste_percent","in":"query","required":false,"description":"Waste % (default 10)","schema":{"type":"string"}}],"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":"Spec","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":5550,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":545,"monthly_call_quota":52500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1490,"monthly_call_quota":229000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4550,"monthly_call_quota":1265000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/sewing-api"}