Espresso ratio
API · /coffee-api
Coffee Brewing API
Coffee brewing maths as an API, computed locally and deterministically. The ratio endpoint works out a brew recipe from any two of the coffee dose, the water and the brew ratio — water = coffee × ratio — and reports the third value, the ratio as 1:N, the number of cups and whether the recipe sits around the SCA "golden ratio" of about 1:16–1:17. The espresso endpoint does the same for espresso from any two of the dose, the yield and the brew ratio (yield = dose × brew ratio), labelling the shot ristretto, normale or lungo. The extraction endpoint computes the extraction yield, EY% = (beverage mass × TDS%) ÷ dose, from the dose, the brewed beverage mass (or the water, estimating the mass the grounds retain) and the measured total dissolved solids, then classifies the brew as under-extracted, ideal or over-extracted and weak through very strong against the SCA brewing control chart. Masses are in grams, water in grams or millilitres. Everything is computed locally and deterministically, so it is instant and private. Ideal for specialty-coffee, café, brewing-scale and recipe app developers, pour-over and espresso tools, and barista training. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is coffee brewing maths; for cooking-unit conversions use a cooking API and for caffeine intake use a caffeine API.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 88 ms
- Server probes · 24h
- Subscribers
- 4,853
- active
- Total calls
- 32
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 3,000 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- Brew-ratio endpoint: solve from any two of dose, water, ratio
- Standard 1:15-1:18 presets
- 2 requests/sec
- Community support
Starter
€4.00 /month
- 40,000 calls / month
- 5 requests / second
- Hard cap (429 above quota, no overage)
- Everything in Free
- Adjustable brew strength & yield targets
- Grams/ounces unit conversion
- 5 requests/sec
Pro
€11.00 /month
- 250,000 calls / month
- 15 requests / second
- Hard cap (429 above quota, no overage)
- Everything in Starter
- Per-method recipes (pour-over, espresso, French press)
- Extraction-yield & TDS estimates
- 15 requests/sec, email support
Mega
€35.00 /month
- 1,500,000 calls / month
- 40 requests / second
- Hard cap (429 above quota, no overage)
- Everything in Pro
- Batch recipe scaling for cafes
- Bloom-water & multi-pour timing maths
- 40 requests/sec, priority support
Built by
Related APIs
Other APIs with overlapping tags.
Coffee Roasting API
Coffee-roasting maths as an API, computed locally and deterministically — the roast-profile numbers a home or specialty roaster tracks batch to batch. The loss endpoint works the weight-loss relationship from any two of the green weight, the roasted weight and the loss percentage: weight loss % = (green − roasted) / green × 100, so 1 kg of green dropping to 840 g is a 16 % loss, a 15 % target leaves 850 g, and to bag 800 g of roasted you charge 952 g of green (roasted ÷ (1 − loss%)). Light roasts shed about 12–14 %, medium 15–17 %, dark 18–20 %. The development endpoint computes the development time and the Development Time Ratio (DTR) from the total roast time and the first-crack time — DTR = (total − first crack) / total × 100, with most roasters aiming for roughly 20–25 %; times accepted as seconds or mm:ss. Everything is computed locally and deterministically, so it is instant and private. Ideal for coffee-roasting, roastery, specialty-coffee and roast-logging app developers, profile and batch tools, and roasting education. Pure local computation — no key, no third-party service, instant. Weights in grams, times in seconds or mm:ss. Live, nothing stored. 2 compute endpoints. This is roast-profile maths; for brewing ratios use a coffee-brewing API.
api.oanor.com/coffeeroast-api
Caffeine Calculator API
Caffeine metabolism maths as an API, computed locally and deterministically with a first-order (exponential) decay model. The level endpoint computes how much caffeine remains in the body after a given time from a dose and a half-life (about 5 hours by default), as milligrams and a percentage, and how long until it falls to a chosen threshold. The timeline endpoint returns an hour-by-hour decay curve and the time until caffeine is "sleep safe" — below a threshold (50 mg by default) — handy for working out a coffee cut-off before bed. The sources endpoint gives the typical caffeine content of common drinks (brewed coffee, espresso, tea, energy drinks, cola and more) for a single drink, or totals a list such as two coffees and a cola. Everything is computed locally and deterministically, so it is instant and private. This is informational only: real caffeine half-life varies widely between people (roughly 3–7 hours, and much longer in pregnancy or with certain medications) — it is not medical advice. Ideal for coffee, sleep and wellbeing apps, energy-drink and habit trackers, and quantified-self tools. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is caffeine pharmacokinetics; for a drug reference database use a drug API.
api.oanor.com/caffeine-api
Homebrewing API
Homebrewing maths as an API, computed locally and deterministically. The abv endpoint computes the alcohol by volume from the original and final gravity — both the simple (OG − FG)·131.25 estimate and a more accurate high-gravity formula — along with the apparent and real attenuation and the calories per 12 oz serving. The gravity endpoint converts freely between specific gravity, degrees Plato and Brix (the three ways brewers and winemakers measure dissolved sugar) and reports the gravity points. The ibu endpoint computes hop bitterness in International Bitterness Units by the Tinseth formula from the hop alpha-acid percentage, the weight, the boil time, the batch volume and the wort gravity, returning the utilization and the alpha-acid concentration too. Gravities are specific gravity such as 1.050, hop weight in grams, boil time in minutes and volume in litres. Everything is computed locally and deterministically, so it is instant and private. Ideal for homebrew, craft-beer, cidery and winemaking app developers, recipe and batch tools, and brewing education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is brewing maths; for a brewery directory use a beer API and for coffee brew ratios a coffee API.
api.oanor.com/brewing-api
OCR API
Extract text from images with optical character recognition in eight languages (English, German, French, Spanish, Italian, Portuguese, Dutch and Turkish). Get the full recognised text with an average confidence score and word and line counts, or word-level results where every word carries its own confidence and bounding box for layout-aware processing. Supply an image by public URL, base64 or a raw binary request body; large images are downscaled automatically before recognition to keep responses fast, and a warm engine keeps latency low after start-up. Pure server-side computation (Tesseract, no third-party upstream, no per-call cloud cost). Ideal for digitising documents and receipts, reading text from photos and screenshots, accessibility, and data-entry automation.
api.oanor.com/ocr-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Coffee Brewing API?
What's the rate limit for Coffee Brewing API?
How much does Coffee Brewing API cost?
Can I cancel my subscription anytime?
Is Coffee Brewing API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/coffee-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/coffee-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/coffee-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/coffee-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.