Food & Drink — entry 006 of 19
Fruityvice
Fruityvice returns per-fruit nutrition data — calories, sugar, carbohydrates, and protein — searchable by name, family, order, or genus, as a small free reference dataset. A live GET against the real host, www.fruityvice.com, returned genuine JSON with no Access-Control-Allow-Origin header, resolving cors unknown -> no; auth None was reconfirmed by the same keyless 200.
Fruityvice is a small, free, keyless reference dataset of per-fruit nutrition facts — calories, sugar, carbohydrates, and protein — searchable by name, family, order, or genus. A live GET this run against /fruit/all returned exactly 49 fruits across 26 families — this is a small curated list, not a comprehensive catalogue, so don't expect "hundreds of fruits" here.
GreatAPIs Score
Auth quickstart
- No API key, signup, or credit card required — a live GET this run against
/fruit/bananareturned a genuine nutrition record with zero credentials. There's no key to add for browser use either: see the CORS gotcha below, since Fruityvice is keyless from every client but still unusable from a browser.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Look up a fruit by name
GEThttps://www.fruityvice.com/api/fruit/banana
{"name":"Banana","id":1,"family":"Musaceae","order":"Zingiberales","genus":"Musa","nutritions":{"calories":96,"fat":0.2,"sugar":17.2,"carbohydrates":22.0,"protein":1.0}}Every route — single-name lookup, /fruit/all, and the family/order/genus lookups below — returns this same flat shape (or an array of it), confirmed live this run. Figures under nutritions are per 100g and don't change run to run; treat them as reference data, not a live feed.
Try it
Developer reference
https://www.fruityvice.com/api- GET/fruit/{name}
- GET/fruit/all
- GET/fruit/family/{family}
Gotchas & limits
- Fruityvice is keyless from any client but unusable from a browser: cors is stored
nobecause a live GET this run returned genuine JSON with noAccess-Control-Allow-Originheader at all, on either a plain request or a follow-up with anOriginheader set. Server-side requests (curl, backend HTTP clients) work fine; a real browserfetch()from another origin is blocked by the browser itself. - An unknown fruit name is a real HTTP 404, unlike some of this catalogue's other keyless APIs that return 200 with an empty body — a live GET this run against
/fruit/notarealfruitreturned404 {"error":"Not found"}. Check the status code, not just whether the body parses. /fruit/family/{family}matching is case-insensitive, unlike the plain-name lookup above — live GETs this run against/fruit/family/Rosaceae,/fruit/family/rosaceae, and/fruit/family/rOsAcEaEall returned the identical 11-fruit array (Strawberry, Pear, Blackberry, ...), while an unmatched family name is a real 404 (/fruit/family/NotARealFamilyreturned{"error":"No fruit with 'NotARealFamily' as its family was found"}).- There is no bulk nutrition-only endpoint —
/fruit/allreturns the full 49-fruit array with every field already inlined, so there's no separate lightweight listing route to reach for first.