Photo in, app-ready answers out.
Vision APIs for consumer apps: calories from a meal, skin analysis from a selfie, physique feedback, color season, plant ID and diagnosis, and product label scores. One key, one price per call, and JSON your app can show as it is.
$1.00 of free credit to start. No card needed.
Photo: Valerio Capello, CC BY-SA 3.00 kcal
Margherita pizza, whole, 341 g, 70% confident
Protein
0 g
Carbs
0 g
Fat
0 g
Ask the user: Was any olive oil drizzled on top or was the crust brushed with oil?
2x
more meals within 20% of the true calories
99%
of acne grades within one step of a dermatologist
93%
of Nutri-Score grades exactly right from a photo
$0.01
per call on every API, repeat photos free
Pick the one your app needs
Every API takes a photo and returns structured JSON. Same key, same billing, same error format.
Food & calories
Each food on the plate with its weight in grams, and calories and macros from a reference nutrition database.
For calorie trackers, meal loggers, diet coaches
Read the docsSkin analysis
Scores for acne, wrinkles, spots, redness, pores and more from one selfie, with skin type and ingredient suggestions.
For skincare routines, acne trackers, beauty shops, product recommenders
Read the docsPhysique & body fat
A physique score, a body fat range, muscle development by group, V-taper and posture, with training focus.
For physique raters, AI gym coaches, body transformation trackers
Read the docsColor season
Personal color analysis: the 12-season type, undertone and contrast, with a fixed palette to wear and avoid.
For color analysis apps, styling and outfit apps, makeup shade finders
Read the docsPlant ID & health
Species from a photo, checked against a botanical name registry, with health problems, treatment steps, pet toxicity and care.
For plant identifiers, plant care reminders, garden and houseplant apps
Read the docsProduct label
Nutrition table, ingredients, Nutri-Score, NOVA group, additives and allergens from a photo of a food or cosmetic label.
For product scanners like Yuka, grocery and allergy apps, clean-beauty apps
Read the docsBetter than calling the model yourself
Each API was tested on held-out photos with expert or lab-measured answers, next to one plain call to the same model given the same task.
2x
more meals within 20% of the true calories
60 real meals, each weighed and measured in a lab
Calories within 20%
2xCalories within 30%
+18 ptsPortion weight within 20%
2.6x| Measure | Truelens | Plain model call |
|---|---|---|
| Calories within 20% | 40% | 20% |
| Calories within 30% | 53% | 35% |
| Portion weight within 20% | 46% | 18% |
99%
of acne grades within one step of a dermatologist
150 faces graded by dermatologists
Grade exactly right
+17 ptsGrade within one step
+11 pts| Measure | Truelens | Plain model call |
|---|---|---|
| Grade exactly right | 55% | 38% |
| Grade within one step | 99% | 89% |
93%
of Nutri-Score grades exactly right
59 real supermarket label photos with published grades
Nutri-Score exactly right
+29 pts| Measure | Truelens | Plain model call |
|---|---|---|
| Nutri-Score exactly right | 93% | 64% |
88%
of species found in the top 3 answers
91 phone photos of 25 species, identified by expert reviewers
Species in top 3
+3 ptsSpecies as first answer
+3 pts| Measure | Truelens | Plain model call |
|---|---|---|
| Species in top 3 | 88% | 85% |
| Species as first answer | 77% | 74% |
Each bar is the share of test photos answered well, so higher is better. Food, skin and label use Claude Haiku 5.5 on both sides; plant uses Claude Sonnet 5.5 on both sides. Read the full methodology
One request, three steps
Send a photo
Upload it as multipart form data, send it as base64 in JSON, or pass a public image URL. Add the user’s own facts as fields, like their age or "I ate half".
The model grades what it sees
A vision model reports what is visible on fixed, written scales (an acne grade, how defined the abs are, which foods are on the plate) and points to the evidence. It does not make up final numbers.
Code computes the answer
Scores, body fat ranges, color seasons, Nutri-Score grades and nutrition values come from documented formulas and reference data, so the same grades always give the same result.
curl https://truelens.keronlabs.com/v1/food \
-H "Authorization: Bearer $TRUELENS_KEY" \
-F image=@lunch.jpg \
-F context="I ate about half"{
"metadata": {
"id": "req_9cf4da08fe7f40dab71a",
"engine": "food",
"status": "success",
"cached": false,
"credits_used": 1,
"created_at": "2026-10-19T09:30:00.000Z",
"processing_ms": 3400
},
"summary": "775 kcal across 1 item",
"is_food": true,
"items": [
{
"name": "Margherita pizza, whole",
"grams": 289,
"confidence": 0.7,
"cooking_method": "baked",
"nutrition": {
"calories": 775,
"protein_g": 35,
"carbs_g": 91.6,
"fat_g": 29.8,
"fiber_g": 6.4
},
"estimated": false
}
],
"totals": {
"calories": 775,
"protein_g": 35,
"carbs_g": 91.6,
"fat_g": 29.8,
"fiber_g": 6.4
},
"follow_up_questions": [
"Did you eat the whole pizza or only part of it?"
]
}Weeks of tuning you can skip
The prompts, scales, reference data and edge cases are already worked out.
Checked against reference data
Nutrition from a curated food database, plant names from a botanical registry, additives with regulator risk levels, pet toxicity from veterinary lists, and the official Nutri-Score formula.
Same photo, same answer
An identical request returns the stored result, free, so a user who rescans never sees the number jump.
Photo quality built in
Each response says when a photo is too dark, blurred, filtered or framed wrong, and how much to trust the result.
Safe by default
Body and skin APIs refuse minors and nudity, never give a diagnosis, and flag anything worth showing a professional.
Pay per call
Every call to every API costs $0.01 from prepaid credit. New accounts start with $1.00.
Top up
$10
1,000 calls
Top up
$25
2,500 calls
Top up
$100
10,000 calls
Questions, answered
Why not call a vision model directly?
You can, but a plain call guesses the final numbers, and they drift between scans of the same photo. Here the model only grades what it can see on fixed scales, and code turns those grades into scores using published formulas and reference data. On the food benchmark, that halved the calorie error against a plain call to the same model.
How accurate is it?
Each API was tested on held-out photos with expert or lab-measured answers, next to a plain call to the same model. Food got twice as many meals within 20% of the true calories. Skin acne grades were within one step of dermatologists 99% of the time, against 89%. Label got the Nutri-Score grade exactly right 93% of the time, against 64%. Plant found the species in its top 3 answers 88% of the time, against 85%. Every response also carries a reliability rating and photo warnings, so your app can ask for a better photo instead of showing a weak result.
What counts as a call?
A request that returns 200 with a new result. Failed requests are not charged. Sending the exact same photo and fields again returns the stored result for free, with metadata.cached set to true.
Can my mobile app call the API directly?
Keep the key on your server. Your app sends the photo to your backend, and your backend calls the API. A key in an app bundle can be pulled out and used by anyone.
Which images work?
JPEG, PNG, WebP or GIF up to 5 MB, sent as a multipart upload, as base64 in JSON, or as a public image URL.
Who can be analyzed by the skin and body APIs?
Adults only for the body API, and no nudity on any API. Neither gives a diagnosis. The skin API flags spots worth showing a dermatologist, and every result says it is an estimate, not medical advice.
Try any API in a minute
Sign in, drop a photo into the playground, then create a key for your app.