Parabola calculator
For y = x², the vertex sits at the origin, the focus 0.25 above it and the directrix 0.25 below. Enter a, b and c to get the vertex, focus, directrix, axis of symmetry and whether the curve opens up or down. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- A
- 1
- B
- 0
- C
- 0
- Equation
- y = x^2
- Focal length
- 0.25
- Opens
- up
Given a quadratic y equals a x squared plus b x plus c with a non-zero leading coefficient, a unique upright or inverted parabola is determined on the Cartesian plane. This calculator accepts the three finite coefficients a, b, and c, rejects a equal to zero and non-numeric input, and returns the vertex, focus, directrix equation, axis of symmetry, focal length, opening direction, and a compact equation string.
How vertex, focus, directrix and axis follow from y = ax² + bx + c
Write the parabola as y equals a x squared plus b x plus c with a not equal to zero. Completing the square or using the vertex formula gives the axis of symmetry x equals negative b over two a, so the vertex abscissa h is that same value. The vertex ordinate k is found by substituting h into the original function, or equivalently k equals c minus b squared over four a.
The geometric definition of a parabola as the set of points equidistant from a focus and a directrix implies a focal length parameter p equal to one over four a for this vertical orientation: the focus lies at the point (h, k plus p) and the directrix is the horizontal line y equals k minus p. When a is positive the parabola opens upward and the focus sits above the vertex; when a is negative it opens downward and the focus sits below the vertex.
Classic classroom checks include y equals x squared, with vertex and focus at the origin and (0, one fourth) respectively and directrix y equals negative one fourth, and y equals x squared minus four x plus three, with vertex at (2, negative one). Because the path uses only multiplication, division, addition, and a small amount of formatting, it is deterministic, O(1), and free of iterative solvers or symbolic libraries.
Where parabola vertex and focus-directrix geometry show up in real work
Secondary-school and college analytic geometry and precalculus courses constantly ask students to find the vertex, focus, directrix, and axis of symmetry of a vertical parabola given in standard polynomial form; a trusted calculator with a strict a-equals-zero check speeds homework grading and removes spreadsheet mistakes where someone divides by a zero leading coefficient or confuses horizontal and vertical orientations.
Physics and engineering tutorials on projectile motion, reflective optics, and satellite dishes use the same focus-directrix relations when they already have a quadratic model in y of x; recovering the focus point and directrix line from a, b, and c keeps lab write-ups and office scripts aligned. Game and graphics demos that store trajectories as quadratic coefficients need the vertex for peak height and the axis for symmetry annotations without building a full symbolic algebra stack.
If you later need a horizontal parabola x equals a y squared plus b y plus c, a general conic classification, or a fit through many sample points, treat those as separate search intents rather than overloading this vertical parabola landing.
What you can do with it
Optics and projectile tutorials
From a quadratic model, recover focus and directrix for diagrams, lab notes, and teaching demos.
FAQ
What happens if a equals zero?
When a is zero the graph is a line, not a parabola; a non-zero quadratic coefficient is required.
Does this handle horizontal parabolas?
No. This landing covers the vertical form y = ax² + bx + c only. Horizontal parabolas x = ay² + by + c are a different search intent.
What if a coefficient is not a number?
Missing fields, empty strings, non-numeric text, NaN, and Infinity are all rejected.
What does it cost?
The browser tool is free and runs locally.
How do I find the vertex of y = x² − 4x + 3?
The vertex is at (2, −1). The axis of symmetry is the vertical line where x equals minus b over two a, here 2, and putting 2 back into the equation gives −1.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/geom/parabola \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1,"b":0,"c":0}'const res = await fetch("https://api.kit.forhosting.com/geom/parabola", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1,
"b": 0,
"c": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/parabola",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1,
"b": 0,
"c": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/parabola", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1,"b":0,"c":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1,"b":0,"c":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/parabola", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"a": 1,
"b": 0,
"c": 0
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.parabola",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Missing fields, empty strings, non-numeric text, NaN, Infinity, and a zero quadratic coefficient are rejected with a clear invalid_input error instead of a silent division by zero or a line mislabeled as a parabola. No network calls, no random sampling, and no floating-point surprises beyond ordinary IEEE-754 arithmetic on the three numbers you provide.
How vertex, focus, directrix and axis follow from y = ax² + bx + c
Large coefficients can still overflow IEEE-754 range; non-finite intermediate results fail with a clear overflow message rather than returning Infinity in JSON.
What you send and what you get back
Provide three required finite numbers: a, the quadratic coefficient which must be non-zero; b, the linear coefficient; and c, the constant term. Example checks: a one, b zero, c zero yields vertex at the origin, focus at zero and one fourth, and directrix y equals negative one fourth; a zero is rejected. Wire the free browser tool for quick sanity checks, then call the identical contract from scripts when you need bulk evaluation without reimplementing the numeric gate in every language. Short aliases A, B, C and coeff_a through coeff_c are accepted so form labels can stay compact without diverging handlers. Missing fields, empty strings, non-numeric text, NaN, and Infinity are rejected with invalid_input and are not charged. If a equals zero so the graph is a straight line rather than a parabola, the request also fails with invalid_input naming that a non-zero quadratic coefficient is required. On success the JSON response echoes the three normalized coefficients, returns equation as a compact string such as y equals x squared plus three, returns vertex and focus as objects with x and y, returns directrix with a y value and equation string, returns axis_of_symmetry with an x value and equation string, returns focal_length as the signed parameter p equal to one over four a, and sets opens to up or down according to the sign of a. API pricing is the published base of $0.002 per successful item.
Where parabola vertex and focus-directrix geometry show up in real work
Because this capability is a pure parse engine, failed validation does not consume balance and successful runs stay at $0.002 per item.
Integration use cases
Homework and exam checks
Convert y = ax² + bx + c into vertex, focus, directrix and axis, and reject a = 0 with a clear error.
Deterministic geometry fixtures
Generate stable vertex and focus coordinates for unit tests and teaching answer keys.
Technical questions
What does this parabola calculator return?
Vertex (x, y), focus (x, y), directrix equation y = k − p, axis of symmetry x = h, focal length p = 1/(4a), opening direction up or down, and a compact equation string.