{"openapi":"3.1.0","info":{"title":"Chebyshev Filter API","version":"1.0.0","description":"Chebyshev Type I filter-design maths as an API, computed locally and deterministically. The order endpoint computes the minimum filter order to meet a specification, n = ⌈acosh(√((10^(As/10)−1)/(10^(Ap/10)−1))) / acosh(fs/fp)⌉, from the passband edge frequency and its ripple and the stopband edge and its required attenuation — a Chebyshev filter usually needs a lower order than a Butterworth for the same specification, trading a flat passband for equiripple. The response endpoint computes the equiripple magnitude response, |H| = 1/√(1 + ε²·Tₙ²(f/fc)) with the ripple factor ε = √(10^(Ap/10) − 1) and the Chebyshev polynomial Tₙ, in linear and decibel form — in the passband the magnitude ripples between 0 and −Ap dB and reaches exactly −Ap dB at the cutoff, then rolls off faster than a Butterworth. The ripple endpoint converts between the passband ripple in decibels and the ripple factor ε, with the passband maximum and minimum. Frequencies are in hertz, ripple and attenuation in decibels and the order a positive integer. Everything is computed locally and deterministically, so it is instant and private. Ideal for DSP, audio, RF, communications and instrumentation app developers, filter-design and selectivity tools, and signal-processing education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is the Chebyshev Type I filter; for the maximally-flat Butterworth use a Butterworth API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/chebyshev-api","description":"oanor gateway"}],"tags":[{"name":"Chebyshev"},{"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/order":{"get":{"operationId":"get_v1_order","tags":["Chebyshev"],"summary":"Minimum filter order","description":"","parameters":[{"name":"passband_edge","in":"query","required":true,"description":"Passband edge (Hz)","schema":{"type":"string"},"example":"1000"},{"name":"stopband_edge","in":"query","required":true,"description":"Stopband edge (Hz)","schema":{"type":"string"},"example":"4000"},{"name":"passband_ripple","in":"query","required":true,"description":"Passband ripple Ap (dB)","schema":{"type":"string"},"example":"1"},{"name":"stopband_attenuation","in":"query","required":true,"description":"Stopband attenuation As (dB)","schema":{"type":"string"},"example":"40"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Chebyshev Type I minimum order n = ⌈acosh(√((10^(As/10)−1)/(10^(Ap/10)−1))) / acosh(fs/fp)⌉. It is usually a lower order than Butterworth for the same spec, at the cost of passband ripple.","order":3,"inputs":{"passband_edge":1000,"stopband_edge":4000,"passband_ripple":1,"stopband_attenuation":40},"exact_order":2.895106},"meta":{"timestamp":"2026-06-05T19:50:34.413Z","request_id":"70e75780-84b2-4d68-9da2-e1db8f8502d7"},"status":"ok","message":"Filter order","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/response":{"get":{"operationId":"get_v1_response","tags":["Chebyshev"],"summary":"Magnitude response","description":"","parameters":[{"name":"order","in":"query","required":true,"description":"Filter order n","schema":{"type":"string"},"example":"3"},{"name":"frequency","in":"query","required":true,"description":"Frequency (Hz)","schema":{"type":"string"},"example":"2000"},{"name":"cutoff","in":"query","required":true,"description":"Cutoff frequency fc (Hz)","schema":{"type":"string"},"example":"1000"},{"name":"passband_ripple","in":"query","required":true,"description":"Passband ripple Ap (dB)","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Magnitude |H| = 1/√(1 + ε²·Tn²(f/fc)) with ε = √(10^(Ap/10) − 1). In the passband the response ripples between 0 and −Ap dB; at fc it is exactly −Ap dB.","inputs":{"order":3,"cutoff":1000,"frequency":2000,"passband_ripple":1},"epsilon":0.50884714,"magnitude":0.07537065,"magnitude_db":-22.455955,"attenuation_db":22.455955},"meta":{"timestamp":"2026-06-05T19:50:34.547Z","request_id":"d8052954-9832-4e1e-b2bd-b4cb961f7a17"},"status":"ok","message":"Magnitude response","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/ripple":{"get":{"operationId":"get_v1_ripple","tags":["Chebyshev"],"summary":"Ripple / epsilon","description":"","parameters":[{"name":"passband_ripple","in":"query","required":false,"description":"Passband ripple Ap (dB)","schema":{"type":"string"},"example":"1"},{"name":"epsilon","in":"query","required":false,"description":"Or ripple factor ε","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"ε = √(10^(Ap/10) − 1); the passband magnitude ripples between 1 and 1/√(1+ε²) (i.e. between 0 and −Ap dB).","inputs":{"passband_ripple":1},"epsilon":0.50884714,"passband_max":1,"passband_min":0.89125094},"meta":{"timestamp":"2026-06-05T19:50:34.665Z","request_id":"d486e6dc-8c0c-4b04-bf31-30979019384c"},"status":"ok","message":"Ripple/epsilon","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":"Frequencies in Hz (or any consistent unit), ripple/attenuation in dB, order a positive integer. Chebyshev Type I ripples in the passband and is flat in the stopband.","service":"chebyshev-api","formulae":{"order":"n = ⌈acosh(√((10^(As/10)−1)/(10^(Ap/10)−1)))/acosh(fs/fp)⌉","epsilon":"ε = √(10^(Ap/10) − 1)","response":"|H| = 1/√(1 + ε²·Tn²(f/fc))"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/order":"Minimum order from passband/stopband edges, ripple and attenuation.","GET /v1/ripple":"Convert between passband ripple (dB) and the ripple factor ε.","GET /v1/response":"Magnitude (and dB) of an n-th order Chebyshev at a frequency."},"description":"Chebyshev Type I filter calculator: minimum order for a spec, the equiripple magnitude response, and the ripple/epsilon relationship."},"meta":{"timestamp":"2026-06-05T19:50:34.768Z","request_id":"2e4b2007-5c73-4ab9-8e4d-2931f764edf7"},"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":2960,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":900,"monthly_call_quota":40200,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":251500,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7200,"monthly_call_quota":1695000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/chebyshev-api"}