{"id":42642,"date":"2026-09-21T20:27:12","date_gmt":"2026-09-21T18:27:12","guid":{"rendered":"https:\/\/www.graviton.at\/letterswaplibrary\/free-json-feed-of-all-active-us-food-recalls-fda-usda-merged-cc-by-4-0\/"},"modified":"2026-09-21T20:27:12","modified_gmt":"2026-09-21T18:27:12","slug":"free-json-feed-of-all-active-us-food-recalls-fda-usda-merged-cc-by-4-0","status":"publish","type":"post","link":"https:\/\/www.graviton.at\/letterswaplibrary\/free-json-feed-of-all-active-us-food-recalls-fda-usda-merged-cc-by-4-0\/","title":{"rendered":"Free JSON Feed Of All Active US Food Recalls (FDA + USDA Merged), CC BY 4.0"},"content":{"rendered":"<p><!-- SC_OFF --><\/p>\n<div class=\"md\">\n<p>I run a food recall site and built this feed for it. Figured it might be useful here.<\/p>\n<p>It pulls from openFDA enforcement reports, FDA press releases, and USDA FSIS, then merges the duplicates so each recall shows up once. Records include product, brand, hazard, allergens, affected states, lot codes and UPCs when they&#8217;re listed, plus a plain-English &#8220;what to do.&#8221;<\/p>\n<p>The reason for merging: openFDA is the clean structured source, but it trails the actual recall by a median of 35 days (across 441 records). Press releases come out the same day but they&#8217;re free text, so I parse them and flag the hazard class as inferred.<\/p>\n<p>All active recalls (284 right now): <a href=\"https:\/\/dailyfoodrecalls.com\/api\/recalls.json\">https:\/\/dailyfoodrecalls.com\/api\/recalls.json<\/a> 20 newest: <a href=\"https:\/\/dailyfoodrecalls.com\/api\/recalls-latest.json\">https:\/\/dailyfoodrecalls.com\/api\/recalls-latest.json<\/a> Docs: <a href=\"https:\/\/dailyfoodrecalls.com\/api\/\">https:\/\/dailyfoodrecalls.com\/api\/<\/a><\/p>\n<p>No key, CORS is on, CC BY 4.0. Current recalls only, no history. USDA updates once a day, FDA more often.<\/p>\n<p>If you spot anything wrong, let me know.<\/p>\n<\/div>\n<p><!-- SC_ON -->   submitted by   <a href=\"https:\/\/www.reddit.com\/user\/wildstyle_method\"> \/u\/wildstyle_method <\/a> <br \/> <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1wmkoql\/free_json_feed_of_all_active_us_food_recalls_fda\/\">[link]<\/a><\/span>   <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1wmkoql\/free_json_feed_of_all_active_us_food_recalls_fda\/\">[comments]<\/a><\/span><\/p><div class='watch-action'><div class='watch-position align-right'><div class='action-like'><a class='lbg-style1 like-42642 jlk' href='javascript:void(0)' data-task='like' data-post_id='42642' data-nonce='b9a40cecc8' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.graviton.at\/letterswaplibrary\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-42642 lc'>0<\/span><\/a><\/div><\/div> <div class='status-42642 status align-right'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>I run a food recall site and built this feed for it. Figured it might be useful&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[85],"tags":[],"class_list":["post-42642","post","type-post","status-publish","format-standard","hentry","category-datatards","wpcat-85-id"],"_links":{"self":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/42642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/comments?post=42642"}],"version-history":[{"count":0,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/42642\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/media?parent=42642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/categories?post=42642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/tags?post=42642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}