{"openapi":"3.1.0","info":{"title":"Polynomial API","version":"1.0.0","description":"Work with polynomials: find their roots, evaluate them, differentiate and integrate, and add, subtract, multiply or divide them. The roots endpoint returns every root — real and complex — using the exact quadratic formula for degree 2 and the Durand-Kerner method for higher degrees, with a clean list of just the real roots too. The evaluate endpoint computes p(x) and p'(x) at a point by Horner's method. The derivative endpoint returns the coefficients of the derivative and of the indefinite integral. The operate endpoint does polynomial arithmetic — addition, subtraction, multiplication, and long division giving a quotient and a remainder. Coefficients are given highest-degree first, so [1,-3,2] means x² − 3x + 2. Everything is computed locally and deterministically, so it is instant and private. Ideal for engineering and control systems, signal processing and filter design, computer graphics and curve fitting, scientific computing, and teaching algebra and calculus. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 5 endpoints. This is polynomial maths; for matrices and linear systems use a matrix API, for vectors a vector API, and for general arithmetic a math API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/polynomial-api","description":"oanor gateway"}],"tags":[{"name":"Polynomial"},{"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/derivative":{"get":{"operationId":"get_v1_derivative","tags":["Polynomial"],"summary":"Derivative and integral","description":"","parameters":[{"name":"coefficients","in":"query","required":true,"description":"Highest degree first","schema":{"type":"string"},"example":"[1,-3,2]"},{"name":"constant","in":"query","required":false,"description":"Integration constant","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"degree":2,"integral":[0.333333333333,-1.5,2,0],"derivative":[2,-3],"coefficients":[1,-3,2]},"meta":{"timestamp":"2026-06-03T17:42:14.974Z","request_id":"01ba29ac-98dc-475e-92f4-8adb3597de14"},"status":"ok","message":"Derivative","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/evaluate":{"get":{"operationId":"get_v1_evaluate","tags":["Polynomial"],"summary":"Evaluate p(x) and p'(x)","description":"","parameters":[{"name":"coefficients","in":"query","required":true,"description":"Highest degree first","schema":{"type":"string"},"example":"[1,-3,2]"},{"name":"x","in":"query","required":true,"description":"The point","schema":{"type":"string"},"example":"5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"x":5,"value":12,"degree":2,"derivative_value":7},"meta":{"timestamp":"2026-06-03T17:42:15.081Z","request_id":"dfcf5e46-9996-49a6-9220-811b616705bc"},"status":"ok","message":"Evaluate","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/operate":{"get":{"operationId":"get_v1_operate","tags":["Polynomial"],"summary":"Polynomial arithmetic","description":"","parameters":[{"name":"a","in":"query","required":true,"description":"First polynomial","schema":{"type":"string"},"example":"[1,1]"},{"name":"b","in":"query","required":true,"description":"Second polynomial","schema":{"type":"string"},"example":"[1,-1]"},{"name":"op","in":"query","required":false,"description":"add|subtract|multiply|divide","schema":{"type":"string"},"example":"multiply"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"op":"multiply","result":[1,0,-1]},"meta":{"timestamp":"2026-06-03T17:42:15.196Z","request_id":"7890c468-4fc4-4c3a-bc22-c4d625d3a12f"},"status":"ok","message":"Operate","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/roots":{"get":{"operationId":"get_v1_roots","tags":["Polynomial"],"summary":"Find all roots","description":"","parameters":[{"name":"coefficients","in":"query","required":true,"description":"Highest degree first","schema":{"type":"string"},"example":"[1,-6,11,-6]"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"roots":[{"im":0,"re":1,"is_real":true},{"im":0,"re":2,"is_real":true},{"im":0,"re":3,"is_real":true}],"degree":3,"real_roots":[1,2,3]},"meta":{"timestamp":"2026-06-03T17:42:15.273Z","request_id":"26c7e332-6d5b-478f-b8d9-265037bdf5e5"},"status":"ok","message":"Roots","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":{"name":"Polynomial API","notes":"Degree up to 100. Complex roots are found numerically (Durand-Kerner) and converge to ~1e-14. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/roots","params":{"coefficients":"e.g. [1,-3,2]"},"returns":"all roots (real and complex) and a real-only list"},{"path":"/v1/evaluate","params":{"x":"the point","coefficients":"e.g. [1,-3,2]"},"returns":"p(x) and p'(x)"},{"path":"/v1/derivative","params":{"constant":"integration constant (optional)","coefficients":"e.g. [1,-3,2]"},"returns":"derivative and integral coefficients"},{"path":"/v1/operate","params":{"a":"first polynomial","b":"second polynomial","op":"add|subtract|multiply|divide"},"returns":"the resulting polynomial (quotient+remainder for divide)"},{"path":"/v1/meta","params":[],"returns":"this document"}],"conventions":{"coefficients":"highest degree first, e.g. [1,-3,2] = x^2 - 3x + 2","complex_roots":"returned as {re, im}"},"description":"Work with polynomials: find their roots, evaluate them, differentiate and integrate, and add, subtract, multiply or divide them. The roots endpoint returns every root — real and complex — using the exact quadratic formula for degree 2 and the Durand-Kerner method for higher degrees, with a clean list of just the real roots too. The evaluate endpoint computes p(x) and p'(x) at a point by Horner's method. The derivative endpoint returns the coefficients of the derivative and the indefinite integral. The operate endpoint does polynomial arithmetic — addition, subtraction, multiplication, and long division giving a quotient and remainder. Coefficients are given highest-degree first, so [1,-3,2] means x² − 3x + 2. Everything is computed locally and deterministically, so it is instant and private. Ideal for engineering and control systems, signal processing and filter design, computer graphics and curve fitting, scientific computing, and teaching algebra and calculus. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 5 endpoints. This is polynomial maths; for matrices use a matrix API, for vectors a vector API, and for general arithmetic a math API."},"meta":{"timestamp":"2026-06-03T17:42:15.327Z","request_id":"6c74c2a1-e300-473d-a337-1f7f35a652dd"},"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":6035,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":755,"monthly_call_quota":15550,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2745,"monthly_call_quota":206500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6545,"monthly_call_quota":1075000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/polynomial-api"}