{"openapi":"3.1.0","info":{"title":"Garden Pond API","version":"1.0.0","description":"Garden and koi-pond maths as an API, computed locally and deterministically — the numbers behind a backyard water feature, so you do not have to guess at the hose. The volume endpoint turns length, width and average depth into the water volume in cubic feet, US gallons and litres, applying a shape factor (rectangular 1.0, oval or round 0.79, irregular 0.85) because a liner pond never holds the full bounding box: an 8 × 6 ft pond two feet deep is about 96 cubic feet, or 718 gallons. The liner endpoint sizes the flexible liner to fit a pond — length equals the pond length plus twice the maximum depth plus twice the overlap to anchor under the edging stones (same for width), so that same 8 × 6 pond at two feet deep with a one-foot overlap needs a 14 × 12 ft liner and matching underlayment. The stock endpoint turns a water volume into a safe fish load and the pump you need: roughly one koi per 250 gallons (they grow large and dirty) or one goldfish per 20, plus the pump flow in gallons per hour to turn the whole pond over at least once an hour for koi — 718 gallons holds about two koi and wants a ~720 GPH pump before head-height losses. Everything is computed locally and deterministically, so it is instant and private. Ideal for landscaping and pond-installer tools, garden-design and home-improvement apps, koi and water-garden hobbyist sites, and aquascaping calculators. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For pool chemistry use a pool API; for indoor fish tanks use an aquarium API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/pond-api","description":"oanor gateway"}],"tags":[{"name":"Pond"},{"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/liner":{"get":{"operationId":"get_v1_liner","tags":["Pond"],"summary":"Liner size to fit a pond","description":"","parameters":[{"name":"length_ft","in":"query","required":true,"description":"Pond length in feet","schema":{"type":"string"},"example":"8"},{"name":"width_ft","in":"query","required":true,"description":"Pond width in feet","schema":{"type":"string"},"example":"6"},{"name":"max_depth_ft","in":"query","required":true,"description":"Maximum depth in feet","schema":{"type":"string"},"example":"2"},{"name":"overlap_ft","in":"query","required":false,"description":"Edge overlap in feet (default 1)","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Liner length = pond length + 2 × max depth + 2 × overlap (same for width). The depth wraps up both sides and you need ~1 ft of overlap each edge to anchor under stone. Add underlayment of the same size to protect against punctures.","inputs":{"width_ft":6,"length_ft":8,"overlap_ft":1,"max_depth_ft":2},"liner_width_ft":12,"liner_area_sqft":168,"liner_length_ft":14},"meta":{"timestamp":"2026-06-06T15:30:48.284Z","request_id":"438d2215-bacb-4483-97b7-7bb145e951c3"},"status":"ok","message":"Liner size","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/stock":{"get":{"operationId":"get_v1_stock","tags":["Pond"],"summary":"Fish stocking and pump turnover","description":"","parameters":[{"name":"gallons","in":"query","required":true,"description":"Pond volume in gallons","schema":{"type":"string"},"example":"718"},{"name":"turnover_hours","in":"query","required":false,"description":"Hours per full turnover (default 1)","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Stocking: about 1 koi per 250 gallons (they grow big and dirty) or 1 goldfish per 20. Circulate the whole pond at least once an hour for koi — pump GPH = gallons ÷ turnover hours, and size up for head height and tubing losses. Under-stock and over-filter for clear water.","inputs":{"gallons":718,"turnover_hours":1},"max_koi":2,"max_goldfish":35,"pump_gph_for_turnover":718},"meta":{"timestamp":"2026-06-06T15:30:48.383Z","request_id":"e0cb4d96-7b22-43ad-8f1d-b8c79e39c6d1"},"status":"ok","message":"Fish stocking","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/volume":{"get":{"operationId":"get_v1_volume","tags":["Pond"],"summary":"Pond water volume","description":"","parameters":[{"name":"length_ft","in":"query","required":true,"description":"Pond length in feet","schema":{"type":"string"},"example":"8"},{"name":"width_ft","in":"query","required":true,"description":"Pond width in feet","schema":{"type":"string"},"example":"6"},{"name":"avg_depth_ft","in":"query","required":true,"description":"Average depth in feet","schema":{"type":"string"},"example":"2"},{"name":"shape","in":"query","required":false,"description":"rectangular | oval | round | irregular","schema":{"type":"string"},"example":"rectangular"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Volume = length × width × average depth × a shape factor (rectangular 1.0, oval/round 0.79, irregular 0.85), then 7.48 gallons per cubic foot. Use the AVERAGE depth, not the deepest point. A liner pond rarely holds the full box.","inputs":{"shape":"rectangular","width_ft":6,"length_ft":8,"avg_depth_ft":2},"liters":2718,"gallons":718,"cubic_feet":96,"shape_factor":1},"meta":{"timestamp":"2026-06-06T15:30:48.458Z","request_id":"e78100a7-b663-43b1-80b2-0831f6274532"},"status":"ok","message":"Pond volume","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":"US units (feet, gallons). Volume × shape factor × 7.48 gal/ft³; liner = dimension + 2·depth + 2·overlap; koi ~1/250 gal, goldfish ~1/20, turnover ≥ once an hour. For pool chemistry or indoor aquariums use a different API.","service":"pond-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/liner":"Liner length and width to fit a pond, with depth and overlap.","GET /v1/stock":"Max koi/goldfish and the pump GPH for turnover from a volume.","GET /v1/volume":"Pond volume (gallons/litres) from length, width and average depth."},"description":"Garden / koi pond maths: water volume, liner size, and fish stocking with pump turnover."},"meta":{"timestamp":"2026-06-06T15:30:48.553Z","request_id":"bddbf3a6-f952-4fb3-8835-c46a83dad1fa"},"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":200,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":490,"monthly_call_quota":6000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1690,"monthly_call_quota":40000,"rps_limit":12,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4790,"monthly_call_quota":150000,"rps_limit":30,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/pond-api"}