Tenant isolation
Every API key belongs to one organization, and every query is scoped to it. Body-scan records and usage ledgers additionally run under forced PostgreSQL row-level security.
Food photo recognition, barcode scanning, nutrition search, and food logging through one REST API.
curl -X POST https://api.bodify.fit/analyze/photo \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{ "image_base64": "base64..." }'
Food recognition, barcode lookup, nutrition search, logging and body scanning, all in one REST API.
Snap a photo of any meal and our AI identifies ingredients, estimates portion sizes, and returns a complete nutritional breakdown in a single request. Supports JPEG images up to 3MB.
AI-PoweredScan any packaged food barcode to retrieve product details and nutrition facts. 3M+ products indexed.
3M+ ProductsSearch a comprehensive global nutrition database with rich nutritional data on hundreds of thousands of foods, including macros, vitamins, and minerals.
ComprehensiveCreate, read, update, and delete food log entries programmatically. Track meals, portions, and detailed nutrition data with a simple RESTful interface.
RESTfulGenerate fitted 3D body meshes from anthropometric measurements. Track progress over time with secure, org-scoped storage.
3D MESHOne REST API with JSON responses. Call it from any language or platform. Documentation and runnable examples included.
JSONThree steps to your first request.
Create a free account. Your API key is issued immediately.
Send one authenticated request. Every endpoint is documented with runnable examples.
Scale from prototype to production with per-organization quotas, usage headers on every response, and no overage charges.
How your organization’s data is isolated and protected.
Every API key belongs to one organization, and every query is scoped to it. Body-scan records and usage ledgers additionally run under forced PostgreSQL row-level security.
Keys are stored as bcrypt hashes with an AES-256-GCM encrypted copy for one-time display. Rotating a key revokes the previous one immediately.
Body scans are rejected unless an explicit consent flag is set, and the flag is stored with the scan. An organization can erase all of its scan data through the API.
Every response carries a request ID and rate-limit headers. Errors are tracked centrally, and the API is polled from outside our network every 15 minutes.
Everything you need to make a confident first integration.
Sign up and your key is issued immediately.
Curated global nutrition data covering hundreds of thousands of foods, with barcode coverage of 3M+ packaged products. Search, barcode, and logging all in one API.
Yes. The Free plan includes 100 API calls per month.
JPEG only, up to 3MB, sent as a base64 string in image_base64.
One REST API with JSON responses and complete documentation. Call it from any HTTP client; no SDK required.
Monthly call caps are 100, 1,000, 10,000, and 100,000 by tier. Enterprise limits can be raised; contact sales for higher volume.
Usage is metered per organization and resets each billing cycle. Exceeding your monthly quota returns 429 with a Retry-After header. Requests are throttled, never billed as overage.
Every request is authenticated with an organization-scoped key, and every query is scoped to that organization. Body-scan records and usage ledgers additionally run under forced PostgreSQL row-level security. API keys are stored as bcrypt hashes with an AES-256-GCM encrypted copy.
One API endpoint for food analysis. Add your API key and start analyzing meals in seconds.
Interactive preview of the meal-analysis console. The response shown is simulated.
The live endpoint is POST /analyze/photo.
// Run the analysis. The response streams here. // JPEG only · max 3 MB per image.
Our API speaks standard REST with JSON. Use curl, fetch, axios, or any HTTP client in your stack. No SDK required.
View Photo Analysis API ReferenceSend anthropometric measurements and receive a fitted 3D body mesh in return. Track progress over time with secure, org-scoped storage.
# Generate a fitted 3D body mesh curl -X POST https://api.bodify.fit/body/scan \ -H "Authorization: Bearer sk_bodify_..." \ -H "Content-Type: application/json" \ -d '{ "height_cm": 175, "weight_kg": 70.5, "gender": 1, # 0 = male, 1 = female "chest_cm": 92, "waist_cm": 74, "hips_cm": 96, "consent": true }' # Response { "success": true, "data": { "id": "9c1f4a7e-2b85-4d63-9a10-3e7b5c8d4021", "status": "succeeded", "model_version": "body-1", "mesh": { "format": "obj", "byte_size": 183442, "vertex_count": 12480, "face_count": 24960, "checksum": "sha256:6f1c…" }, "measurements": { "height_cm": 175, "weight_kg": 70.5, "gender": 1, "chest_cm": 92, "waist_cm": 74, "hips_cm": 96 }, "usage": { "body_scans_used": 1, "body_scans_limit": 5, "body_scans_remaining": 4 } } }
POST /body/scan
Generate a fitted 3D body mesh from anthropometric measurements.
GET /body/mesh/:id
Retrieve a generated mesh by its scan ID.
GET /body/progress
Track measurement history and body-composition progress over time.
Meshes and measurements are stored with secure, organization-scoped isolation.
Consent: the consent flag confirms the data owner's permission to use and store their measurements for mesh generation. Body data is stored organization-scoped. You can delete every scan and mesh for your organization at any time with DELETE /body/scans. See our Privacy Policy for retention details.
gender: accepts the integer 0 (male) or 1 (female) and is used only for mesh proportion modeling.
Start free with 100 calls per month. Upgrade when you need more.
Food search, photo analysis, barcode scanning, AI chat and body scans all count toward your organization's monthly call quota, which resets each billing cycle. Log writes are not metered. Need more than 100,000 calls per month? Contact sales for custom limits.
Start with a free API key and ship your first nutrition feature. Your key is issued the moment you sign up.
Create an account and start building in seconds.