{"openapi":"3.1.0","info":{"title":"Op-Amp Gain API","version":"1.0.0","description":"Operational-amplifier gain and bandwidth maths as an API, computed locally and deterministically. The gain endpoint computes the closed-loop gain of an inverting (Av = −Rf/Rin) or non-inverting (Av = 1 + Rf/Rin) amplifier from the feedback and input resistors, gives the gain in decibels (20·log₁₀|Av|) and the output voltage for an input, and solves the feedback resistor needed for a target gain. The summing endpoint computes the output of an inverting summing (adder) amplifier, Vout = −Rf·Σ(Vi/Ri), from any number of weighted inputs — the basis of analogue mixers and digital-to-analogue converters. The bandwidth endpoint applies the gain-bandwidth product, GBW = closed-loop gain × bandwidth, and solves any of the three (a 1 MHz op-amp at a gain of 10 has a 100 kHz bandwidth), and computes the full-power bandwidth from the slew rate and the peak output voltage, f = slew_rate/(2π·Vpeak). Everything is computed locally and deterministically, so it is instant and private. Ideal for analogue-electronics and circuit-design tools, amplifier, filter and sensor-conditioning design, audio and instrumentation apps, and electronics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is op-amp amplifier design; for Ohm's law, reactance and resonance use an Ohm's-law API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/opamp-api","description":"oanor gateway"}],"tags":[{"name":"Op-Amp"},{"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/bandwidth":{"get":{"operationId":"get_v1_bandwidth","tags":["Op-Amp"],"summary":"Gain-bandwidth product","description":"","parameters":[{"name":"gain_bandwidth_product","in":"query","required":false,"description":"GBW (Hz)","schema":{"type":"string"},"example":"1000000"},{"name":"closed_loop_gain","in":"query","required":false,"description":"Closed-loop gain","schema":{"type":"string"},"example":"10"},{"name":"bandwidth","in":"query","required":false,"description":"Bandwidth (Hz)","schema":{"type":"string"}},{"name":"slew_rate_v_us","in":"query","required":false,"description":"Slew rate (V/µs) for full-power BW","schema":{"type":"string"}},{"name":"peak_voltage","in":"query","required":false,"description":"Peak output voltage (V)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"formula":"GBW = closed-loop gain × bandwidth.","bandwidth_hz":100000,"closed_loop_gain":10,"gain_bandwidth_product_hz":1000000},"meta":{"timestamp":"2026-06-04T10:18:38.557Z","request_id":"0181b8b1-b9db-44d1-9958-6fb90a3782d5"},"status":"ok","message":"Gain-bandwidth product","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/gain":{"get":{"operationId":"get_v1_gain","tags":["Op-Amp"],"summary":"Inverting / non-inverting gain","description":"","parameters":[{"name":"type","in":"query","required":false,"description":"inverting | non-inverting (default inverting)","schema":{"type":"string"},"example":"inverting"},{"name":"feedback_resistance","in":"query","required":false,"description":"Feedback resistor Rf (Ω)","schema":{"type":"string"},"example":"100000"},{"name":"input_resistance","in":"query","required":false,"description":"Input resistor Rin (Ω)","schema":{"type":"string"},"example":"10000"},{"name":"gain","in":"query","required":false,"description":"Or a target gain to solve a resistor","schema":{"type":"string"}},{"name":"input_voltage","in":"query","required":false,"description":"Input voltage for the output","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"gain":-10,"formula":"Av = −Rf/Rin.","gain_db":20,"configuration":"inverting","gain_magnitude":10,"input_resistance_ohm":10000,"feedback_resistance_ohm":100000},"meta":{"timestamp":"2026-06-04T10:18:38.664Z","request_id":"66fbddd3-d259-48c5-bb8c-5aad819b12ce"},"status":"ok","message":"Inverting / non-inverting gain","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/summing":{"get":{"operationId":"get_v1_summing","tags":["Op-Amp"],"summary":"Summing amplifier","description":"","parameters":[{"name":"feedback_resistance","in":"query","required":true,"description":"Feedback resistor Rf (Ω)","schema":{"type":"string"},"example":"10000"},{"name":"inputs","in":"query","required":false,"description":"JSON array of {voltage,resistance}","schema":{"type":"string"},"example":"[{\"voltage\":1,\"resistance\":10000},{\"voltage\":2,\"resistance\":10000}]"},{"name":"v1","in":"query","required":false,"description":"Or input 1 voltage","schema":{"type":"string"},"example":"1"},{"name":"r1","in":"query","required":false,"description":"Input 1 resistance","schema":{"type":"string"},"example":"10000"},{"name":"v2","in":"query","required":false,"description":"Input 2 voltage","schema":{"type":"string"},"example":"2"},{"name":"r2","in":"query","required":false,"description":"Input 2 resistance","schema":{"type":"string"},"example":"10000"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"inputs":[{"voltage_v":1,"contribution_v":-1,"resistance_ohm":10000},{"voltage_v":2,"contribution_v":-2,"resistance_ohm":10000}],"formula":"Vout = −Rf·Σ(Vi/Ri).","output_voltage_v":-3,"feedback_resistance_ohm":10000},"meta":{"timestamp":"2026-06-04T10:18:38.742Z","request_id":"e4664066-32c1-4585-855f-4f1268059a08"},"status":"ok","message":"Summing amplifier","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":{"api":"opamp","note":"Op-amp gain & bandwidth — computed locally and deterministically, no key, no third-party service.","endpoints":["/v1/gain","/v1/summing","/v1/bandwidth","/v1/meta"]},"meta":{"timestamp":"2026-06-04T10:18:38.843Z","request_id":"ebd49613-1b68-45eb-98f3-560dbbe53a10"},"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":800,"monthly_call_quota":30000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2200,"monthly_call_quota":150000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6900,"monthly_call_quota":750000,"rps_limit":60,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/opamp-api"}