惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
B
Blog RSS Feed
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
MongoDB | Blog
MongoDB | Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
D
Docker
Jina AI
Jina AI
IT之家
IT之家
人人都是产品经理
人人都是产品经理
L
LangChain Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I built a recipe API because the existing ones were too e...
Foodashi API · 2026-06-18 · via DEV Community

Foodashi API

A while ago I was building a food app on the side and needed a recipe API. I figured this was a solved problem. It turned out not to be, at least not for me.

The well-known APIs were priced for funded companies, not someone hacking on a side project after work. The cheaper ones were affordable but inconsistent in a way that made them genuinely annoying to build on. One recipe had a photo, the next had none. One had a description, the next had an empty string. Nutrition existed for some dishes and not others. I spent more time writing defensive code for missing fields than building my actual app.

So I did the unreasonable thing and built the data layer myself. That became Foodashi.

The one idea: consistency

The thing I cared about most was that every recipe has the same shape. If a field exists on one recipe, it exists on all of them. Every recipe ships with a food photo, a description, resolved ingredients, steps, nutrition, allergens, dietary tags, a taste profile, and beverage pairings. No special casing, no "is this field here this time" checks.

Right now that is thousands of recipes across 78 world cuisines, behind 70+ REST endpoints. Nutrition comes both per serving and per 100g. Allergens follow EU 1169/2011 (all 14). There is a health score I call NutriMetric. On the Pro tier there are a few AI endpoints too: meal planning, food photo recognition, and pulling a structured recipe out of raw text or a URL.

What a call looks like

curl "https://api.foodashi.com/api/recipes/search?query=ramen" \
  -H "X-Api-Key: YOUR_KEY"

A trimmed response:

{
  "title": "Shoyu Ramen",
  "cuisine": "Japan",
  "image_url": "https://.../shoyu-ramen.jpg",
  "nutrition": {
    "per_serving": { "energy_kcal": 480, "protein": 24, "carbohydrate": 58, "total_fat": 16, "sodium": 1300 }
  },
  "allergens": { "contains": ["Gluten", "Soybeans", "Eggs"] },
  "diet_tags": ["high-protein"],
  "taste_profile": { "umami": 9, "salty": 7 },
  "nutri_metric": { "grade": "B" }
}

The same fields come back whether you ask for ramen or a Peruvian stew.

Where I am honest with you

Nutrition is the place a lot of food data quietly cuts corners, so I want to be clear about how mine works. The numbers are computed from 11 official government food composition databases (USDA SR Legacy, USDA Foundation Foods, CIQUAL in France, MEXT in Japan, CNF in Canada, and more). When an ingredient genuinely is not in any of those, the value is AI estimated and flagged at a lower confidence, so you can tell measured numbers from estimates. I would rather show the seams than pretend everything is lab measured.

Try it

There is a free Hobby tier with 10,000 calls a month, no card required. That tier exists because it is the one I wish I had when I started.

Docs: https://foodashi.com/api-recipe-documentation/
OpenAPI spec: https://foodashi.com/openapi.json
Base URL: https://api.foodashi.com

It is a solo build (one person, Cloudflare Workers and Supabase, in Budapest), so if you pull the free tier and something is wrong or awkward, I would really like to hear it. Tell me where the data falls short. That is the most useful thing right now.