Slickdeals API: List popular deals
Lists current Slickdeals Frontpage deals in site order, followed by popular deals when needed, with each deal's category, or browses one category's current deals. Expired deals are left out.
Unofficial. Not affiliated with or endorsed by Slickdeals.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Category optional
category Deal category, for example tech; all lists Frontpage and popular deals.
tech
One of
all,tech,home,clothing,grocery,travel,video_games,health_and_beauty. Defaultall.- Max Results optional
max_results Maximum deals to return, for example 25.
50
Whole number from 1 to 50. Default
25.
Input as JSON
{ "category": "tech", "max_results": 50}Output
{ "deals": [ { "price": 1, "store": "Shutterfly", "title": "Shutterfly: Personalized Photo Magnets (4 Sizes)", "deal_id": "20071596", "category": "Tech & Electronics", "currency": "USD", "deal_url": "https://slickdeals.net/f/20071596-shutterfly-personalized-photo-magnets-4-sizes-1-free-s-h" , "image_url": "https://slickdeals.net/attachment/4/5/4/3/2/5/200x200/21740685.thumb" , "posted_at": "2026-09-28T19:36:31+00:00", "comment_count": 2, "original_price": 12, "price_as_shown": "$1", "thumbs_up_score": 43 }, { "price": 7.99, "store": "Woot!", "title": "Woot! Razer & More Gaming Deals: Razer Gigantus V2 Cloth Mouse Pad (Large)", "deal_id": "20061522", "category": "Tech & Electronics", "currency": "USD", "deal_url": "https://slickdeals.net/f/20061522-woot-razer-more-gaming-deals-razer-gigantus-v2-cloth-mouse-pad-large-8-more-free-s-h-w-prime" , "image_url": "https://slickdeals.net/attachment/3/3/7/7/0/1/3/7/200x200/21713232.thumb" , "posted_at": "2026-09-28T05:05:41+00:00", "comment_count": 2, "original_price": 14.99, "price_as_shown": "$7.99", "thumbs_up_score": 37 }, { "price": 13.49, "store": "Walgreens Photo", "title": "Walgreens Photo Offer: 3-Pk TilePix 8\"x8\" Customized Photo Framed Prints", "deal_id": "20067177", "category": "Tech & Electronics", "currency": "USD", "deal_url": "https://slickdeals.net/f/20067177-walgreens-photo-3-pk-8-x-8-tilepix-customized-photo-framed-prints-13-49-free-store-pickup" , "image_url": "https://slickdeals.net/attachment/8/6/6/3/0/200x200/21732690.thumb" , "posted_at": "2026-09-27T18:05:56+00:00", "comment_count": 3, "original_price": 45, "price_as_shown": "$13.49", "thumbs_up_score": 47 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"slickdeals.net/list_popular_deals","input":{"category":"tech","max_results":50}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "slickdeals.net/list_popular_deals" , "input": { "category": "tech", "max_results": 50 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "slickdeals.net/list_popular_deals" , "input": { "category": "tech", "max_results": 50 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run slickdeals.net/list_popular_deals# with {"category":"tech","max_results":50}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "category": { "enum": [ "all", "tech", "home", "clothing", "grocery", "travel", "video_games", "health_and_beauty" ], "type": "string", "default": "all", "description": "Deal category, for example tech; all lists Frontpage and popular deals." }, "max_results": { "type": "integer", "default": 25, "maximum": 50, "minimum": 1, "description": "Maximum deals to return, for example 25.", "x-fous-developer": true } }}Output schema
{ "type": "object", "required": [ "deals" ], "properties": { "deals": { "type": "array", "items": { "type": "object", "required": [ "title", "price", "currency", "price_as_shown", "original_price", "store", "thumbs_up_score", "comment_count", "posted_at", "category", "image_url", "deal_url", "deal_id" ], "properties": { "price": { "type": [ "number", "null" ], "description": "Deal price in USD, when a single price is shown." }, "store": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "deal_id": { "type": [ "string", "null" ], "x-fous-developer": true }, "category": { "type": [ "string", "null" ] }, "currency": { "type": "string" }, "deal_url": { "type": [ "string", "null" ] }, "image_url": { "type": [ "string", "null" ] }, "posted_at": { "type": [ "string", "null" ], "description": "Posted date and time as ISO 8601 with offset when shown." }, "comment_count": { "type": [ "integer", "null" ] }, "original_price": { "type": [ "number", "null" ], "description": "Original price in USD, if shown." }, "price_as_shown": { "type": [ "string", "null" ] }, "thumbs_up_score": { "type": [ "integer", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
slickdeals.net/list_popular_deals- Returns
- title, price, price as shown, original price, store, thumbs-up score, comment count, posted time, category, image, deal link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method slickdeals.net/list_popular_deals with the inputs above.
Ask your agent
- What are the top deals on the Slickdeals frontpage right now?
- Show me 10 current hot deals in video games with prices and thumbs-up scores
- Find trending grocery deals today, including the store and original price for each
- I need a list of popular travel deals that haven't expired yet, max 20
- Pull the latest health and beauty deals from slickdeals.net with comment counts and links
See more
All Slickdeals methodsSearches community-posted Slickdeals deals by product or keyword, optionally limited to a store and hiding expired deals, ordered by relevance, newest or most popular.
slickdeals.net/search_dealsLists current public Today's Deals in page order for an Amazon store country, optionally for one deal category and a minimum discount, with deal and original prices, discount, deal type, time left, share claimed, rating and links.
amazon.com/list_dealsLists the open Polymarket markets with the most trading in the last 24 hours. You can pick one category or list all of them; markets outside the named categories are labeled Other.
polymarket.com/list_trending_marketsLists Steam's top-selling, discounted, or new and trending games in store order, with prices for a chosen country, review summaries and release dates.
store.steampowered.com/list_top_sellersLists PlayStation Store games and game editions currently on sale in a country, with prices and sale end dates. Add-ons and subscription-only offers are excluded.
store.playstation.com/list_dealsLists the biggest percentage Amazon price drops of the past week on CamelCamelCamel for one Amazon store, optionally in one product category, with old and new prices, photo, category and links.
camelcamelcamel.com/list_price_dropsLists Techmeme's leading stories in page order, with each story's original article and linked coverage. Uses the live front page, or the evening archive for a given date.
techmeme.com/list_top_storiesLists discounted Nintendo Switch and Switch 2 games, sorted by biggest discount, lowest price or ending soonest. Covers the US, Canada and Latin American stores and excludes downloadable add-ons.
nintendo.com/list_deals