{"openapi":"3.1.0","info":{"title":"Concrete Mix API","version":"1.0.0","description":"Concrete mix-design maths as an API, computed locally and deterministically. The mix endpoint breaks down a volume of concrete into its materials from a nominal mix ratio (cement:sand:aggregate, for example 1:2:4): it applies the 1.54 dry-volume allowance, then returns the cement in cubic metres, kilograms and 50 kg bags, the sand and aggregate volumes and masses, and the water from the water-cement ratio — the complete batch for the pour. The quantity endpoint computes the concrete volume of a slab, footing, or round or square column from its dimensions, adds a wastage allowance and gives the dry material volume. The watercement endpoint solves the water-cement ratio, the water or the cement from the other two — the single most important number for concrete strength and durability. Densities used are cement 1440, sand 1600 and aggregate 1450 kg/m³, with a 50 kg cement bag. Everything is computed locally and deterministically, so it is instant and private. Ideal for construction, estimating and site-engineering tools, material take-off and ordering, DIY and builder apps, and civil-engineering education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is nominal volume-batch concrete estimating; for retaining-wall earth pressure use an earth-pressure API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/concrete-api","description":"oanor gateway"}],"tags":[{"name":"Concrete"},{"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/mix":{"get":{"operationId":"get_v1_mix","tags":["Concrete"],"summary":"Mix material breakdown","description":"","parameters":[{"name":"volume","in":"query","required":true,"description":"Finished concrete volume (m³)","schema":{"type":"string"},"example":"1"},{"name":"ratio_cement","in":"query","required":false,"description":"Cement parts (default 1)","schema":{"type":"string"},"example":"1"},{"name":"ratio_sand","in":"query","required":true,"description":"Sand parts","schema":{"type":"string"},"example":"2"},{"name":"ratio_aggregate","in":"query","required":true,"description":"Aggregate parts","schema":{"type":"string"},"example":"4"},{"name":"water_cement_ratio","in":"query","required":false,"description":"Water-cement ratio (default 0.5)","schema":{"type":"string"},"example":"0.5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Dry volume = wet × 1.54. Densities: cement 1440, sand 1600, aggregate 1450 kg/m³; bag = 50 kg. Water = w/c × cement mass.","sand":{"mass_kg":704,"volume_m3":0.44},"cement":{"mass_kg":316.8,"bags_50kg":6.336,"volume_m3":0.22},"inputs":{"ratio":"1:2:4","volume":1,"water_cement_ratio":0.5},"aggregate":{"mass_kg":1276,"volume_m3":0.88},"water_litres":158.4,"dry_volume_m3":1.54},"meta":{"timestamp":"2026-06-04T18:38:25.419Z","request_id":"a5f899e1-6738-4f31-94b5-edf54cce73cc"},"status":"ok","message":"Concrete mix breakdown","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/quantity":{"get":{"operationId":"get_v1_quantity","tags":["Concrete"],"summary":"Concrete volume from a shape","description":"","parameters":[{"name":"shape","in":"query","required":false,"description":"slab | footing | column | cylinder (default slab)","schema":{"type":"string"},"example":"slab"},{"name":"length","in":"query","required":false,"description":"Length (m) for slab/footing","schema":{"type":"string"},"example":"5"},{"name":"width","in":"query","required":false,"description":"Width (m)","schema":{"type":"string"},"example":"4"},{"name":"thickness","in":"query","required":false,"description":"Thickness (m)","schema":{"type":"string"},"example":"0.15"},{"name":"diameter","in":"query","required":false,"description":"Diameter (m) for round column","schema":{"type":"string"}},{"name":"side","in":"query","required":false,"description":"Side (m) for square column","schema":{"type":"string"}},{"name":"height","in":"query","required":false,"description":"Height (m) for column","schema":{"type":"string"}},{"name":"wastage_percent","in":"query","required":false,"description":"Wastage allowance (%, default 5)","schema":{"type":"string"},"example":"5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Net volume from the geometry; wastage adds an allowance. Multiply by 1.54 for the dry material volume.","inputs":{"shape":"slab","dimensions":{"width":4,"length":5,"thickness":0.15},"wastage_percent":5},"dry_volume_m3":4.851,"net_volume_m3":3,"volume_with_wastage_m3":3.15},"meta":{"timestamp":"2026-06-04T18:38:25.524Z","request_id":"78f34efc-4449-4a8d-ab9d-5be857a373cb"},"status":"ok","message":"Concrete 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/watercement":{"get":{"operationId":"get_v1_watercement","tags":["Concrete"],"summary":"Water-cement ratio","description":"","parameters":[{"name":"cement_mass","in":"query","required":false,"description":"Cement mass (kg)","schema":{"type":"string"},"example":"316.8"},{"name":"water","in":"query","required":false,"description":"Water (litres)","schema":{"type":"string"},"example":"158.4"},{"name":"ratio","in":"query","required":false,"description":"Water-cement ratio","schema":{"type":"string"},"example":"0.5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"mode":"solve_cement","note":"w/c = water/cement. Lower ratios (0.4–0.5) give higher strength but lower workability; 0.45–0.60 is typical.","inputs":{"ratio":0.5,"water":158.4,"cement_mass":316.8},"bags_50kg":6.336,"cement_mass_kg":316.8},"meta":{"timestamp":"2026-06-04T18:38:25.605Z","request_id":"e95f6b13-444e-42dc-93ee-e3bcc36c1ace"},"status":"ok","message":"Water-cement ratio","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":"Volume in m³, mass in kg, water in litres. Densities: cement 1440, sand 1600, aggregate 1450 kg/m³; cement bag 50 kg. Nominal volume-batching estimate, not a designed (BS/ACI) mix.","service":"concrete-api","formulae":{"water":"water = (w/c)·cement_mass","cement":"cement_vol = dry·c/Σ,  mass = vol×1440,  bags = mass/50","dry_volume":"dry = wet × 1.54"},"endpoints":{"GET /v1/mix":"Cement (bags), sand, aggregate and water for a volume of concrete at a nominal mix ratio.","GET /v1/meta":"This document.","GET /v1/quantity":"Concrete volume from a slab, footing or column, with a wastage allowance.","GET /v1/watercement":"Water-cement ratio: solve water, cement or ratio from the other two."},"description":"Concrete mix-design calculator: material breakdown from a mix ratio, concrete volume from a shape, and water-cement ratio solving."},"meta":{"timestamp":"2026-06-04T18:38:25.661Z","request_id":"1a1a8696-cb8c-40c3-997d-44d73fb609e4"},"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":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":900,"monthly_call_quota":15000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":80000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7500,"monthly_call_quota":400000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/concrete-api"}