Slickdeals API endpoint
Returns the current deal listing for one Slickdeals featured primary-category landing page (e.g. laptop-deals, tv-deals): for each deal, title, price, list price, store, community vote score, comment count, found-by username, and status flags. slug must be one of the values from GET /slickdeals/primary-categories -- an unrecognized slug (including a valid GET /slickdeals/categories tag slug, which is a different taxonomy) returns a typed invalid-parameter error rather than being sent upstream.
/slickdeals/primary-categoryQuery parameters:
slug (required) — a featured-category slug from GET /slickdeals/primary-categories. An unrecognized slug — including a valid GET /slickdeals/categories tag slug, which is a different taxonomy — returns a typed invalid-parameter error rather than being sent upstream.Response includes slug, deals[], count, source_url, and fetched_at. A category with genuinely no current deals returns an empty deals list, not an error.
Each deal has the same shape as GET /slickdeals/category's deals — see that endpoint's docs for the full field list (thread_id, title, url, price, list_price, store, vote_score, comment_count, found_by, is_popular, is_expired, is_new, is_frontpage, posted_at) — both endpoints read the same underlying page template.
| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| thread_id | 40 | |
| title | 40 | “14.2" Apple MacBook Pro Laptop (2026): M5 Chip,18C/20C, 24G…” and 39 other values |
| url | 40 | median 106 characters |
| price | 40 | “$2599” and 34 other values |
| list_price | 40 | “$3199” and 34 other values |
| store | 40 | “Best Buy” and 11 other values |
| vote_score | 40 | 1 to 128, median 11 |
| comment_count | 40 | 0 to 44, median 7 |
| found_by | 40 | “Dr.W” and 24 other values |
| is_popular | 40 | true in 23 of 40 |
| is_expired | 40 | true in 0 of 40 |
| is_new | 40 | true in 0 of 40 |
| is_frontpage | 40 | true in 7 of 40 |
| posted_at | 40 | 2026-09-28 to 2026-10-13 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Featured-category slug from GET /slickdeals/primary-categories | laptop-deals | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/slickdeals/primary-category?slug=laptop-deals" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "laptop-deals",
"deals": [
{
"thread_id": 19936956,
"title": "27L Thule EnRoute Escort 2 Backpack (Dark Shadow) + Earn 10% Back w/ Prime Visa",
"url": "https://slickdeals.net/f/19936956-...",
"price": "$52.48",
"list_price": "$149.95",
"store": "Amazon",
"vote_score": 71,
"comment_count": 12,
"found_by": "phoinix",
"is_popular": false,
"is_expired": false,
"is_new": false,
"is_frontpage": true,
"posted_at": "2026-08-28T14:22:52Z"
}
],
"count": 40,
"source_url": "https://slickdeals.net/laptop-deals/",
"fetched_at": "2026-09-15T09:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/slickdeals.primaryCategoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | slickdeals.PrimaryCategoryResponse | No | ||||
| data.count | integer | No | 40 | |||
| data.deals | array | No | CategoryDeal record, 14 fields: comment_count, found_by, is_expired, is_frontpage, is_new, is_popular, list_price, posted_at, price, store, thread_id, title and 2 more. Described under Slickdeals Category API. | |||
| data.fetched_at | string | No | ||||
| data.slug | string | No | laptop-deals | |||
| data.source_url | string | No | ||||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/slickdeals/primary-category?slug=laptop-deals" \
-H "x-api-key: $CRAWLORA_API_KEY"