Slickdeals API endpoint
Returns one Slickdeals deal thread's full comment thread: for each comment, the public username who posted it (with their forum rank/title and total post count), the comment content (as HTML and as cleaned plain text), when it was posted, a permalink, and reaction counts (like, funny, helpful, not helpful). Give either url (the exact value returned by GET /slickdeals/search or GET /slickdeals/deal) or thread_id; at least one is required. has_more indicates whether Slickdeals' own page truncated the reply list (no further pagination is currently exposed by this endpoint).
/slickdeals/commentsQuery parameters:
url (optional) — a full Slickdeals deal URL, exactly as returned by GET /slickdeals/search or GET /slickdeals/deal.thread_id (optional) — Slickdeals' own numeric thread id.Response includes thread_id, comments[], count, has_more (whether Slickdeals' own page truncated the reply list — no further pagination is currently exposed by this endpoint), source_url, and fetched_at.
Each comment has:
post_id — Slickdeals' own numeric post id.author — the public Slickdeals username who posted the comment.author_title (optional) — the author's forum rank/title (e.g. L2: Beginner).author_post_count — the author's total forum post count.content_html / content — the comment body, as HTML and as cleaned plain text.posted_at (optional) — when the comment was posted, ISO 8601.permalink (optional) — a direct link to the comment.like_count, funny_count, helpful_count, not_helpful_count — Slickdeals' own reaction counts on the comment.| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| post_id | 5 | |
| author | 5 | |
| author_title | 5 | |
| author_post_count | 5 | 49 to 5,737, median 556 |
| content_html | 5 | median 41 characters |
| content | 5 | |
| posted_at | 5 | 2026-09-14 to 2026-09-15 |
| permalink | 5 | slickdeals.net |
| like_count | 5 | 0 to 1, median 0 |
| funny_count | 5 | 0 to 1, median 0 |
| helpful_count | 5 | 0 to 2, median 1 |
| not_helpful_count | 5 | 0 to 1, median 0 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | No | Full Slickdeals deal URL, as returned by GET /slickdeals/search or GET /slickdeals/deal (https://slickdeals.net/f/...) | https://slickdeals.net/f/20015817-microsoft-surface-laptop-5-13-5-2-5ghz-16gb-256gb-refurb-w-warranty-358-53 | |
| thread_id | integer | No | Slickdeals numeric thread id | 20015817 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/slickdeals/comments" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"thread_id": 20015817,
"comments": [
{
"post_id": 186692484,
"author": "OutFr0mUndr",
"author_title": "L2: Beginner",
"author_post_count": 49,
"content_html": "Shows as $358.53 for me...",
"content": "Shows as $358.53 for me...",
"posted_at": "2026-09-14T19:17:54-07:00",
"permalink": "https://slickdeals.net/f/20015817-microsoft-surface-laptop-5-13-5-2-5ghz-16gb-256gb-refurb-w-warranty-358-53?p=186692484#post186692484",
"like_count": 1,
"funny_count": 0,
"helpful_count": 0,
"not_helpful_count": 0
}
],
"count": 4,
"has_more": false,
"source_url": "https://slickdeals.net/f/20015817-microsoft-surface-laptop-5-13-5-2-5ghz-16gb-256gb-refurb-w-warranty-358-53",
"fetched_at": "2026-09-15T08:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/slickdeals.commentsResponseDoc
| 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.CommentsResponse | No | ||||
| data.comments | array | No | ||||
| data.comments[].author | string | No | OutFr0mUndr | |||
| data.comments[].author_post_count | integer | No | 49 | |||
| data.comments[].author_title | string | No | L2: Beginner | |||
| data.comments[].content | string | No | Shows as $358.53 for me... | |||
| data.comments[].content_html | string | No | ||||
| data.comments[].funny_count | integer | No | ||||
| data.comments[].helpful_count | integer | No | ||||
| data.comments[].like_count | integer | No | 1 | |||
| data.comments[].not_helpful_count | integer | No | ||||
| data.comments[].permalink | string | No | ||||
| data.comments[].post_id | integer | No | 186692484 | |||
| data.comments[].posted_at | string | No | 2026-09-14T19:17:54-07:00 | |||
| data.count | integer | No | 4 | |||
| data.fetched_at | string | No | ||||
| data.has_more | boolean | No | ||||
| data.source_url | string | No | ||||
| data.thread_id | integer | No | 20015817 | |||
| 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 |
| 404 | Not Found | #/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/comments" \
-H "x-api-key: $CRAWLORA_API_KEY"