Co APIkaskus.co.id ↗
Access Kaskus.co.id forum data via 5 endpoints. Fetch hot threads, search by keyword, read post content, and explore community listings with author and vote metadata.
What is the Co API?
The Kaskus API provides structured access to Indonesia's largest online forum through 5 endpoints covering threads, posts, communities, and search. get_hot_threads returns paginated thread feeds with full first-post content, while get_thread_posts exposes per-post user info, vote metadata, and content in plain text, HTML, and BBCode formats. Community discovery, keyword search, and feed filtering are all supported.
curl -X GET 'https://api.parse.bot/scraper/b159dbb9-02a2-444c-90bc-80dd6a712701/get_hot_threads?limit=5&feed_type=hot&channel_id=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetch a site-wide thread feed from Kaskus, optionally scoped to a channel. feed_type selects the ordering the site's own feed selector offers: hot (editorially curated hot threads — this list is small and can legitimately be empty when no thread is currently promoted), active (recently active), new (newest threads), most_viewed (most viewed). Returns thread objects with full first post content, community metadata, and engagement stats: each thread includes id, title, slug, thread_starter, first_post (content in text/html/bbcode) and meta (total_views, total_replies). One upstream request per call. limit and cursor are forwarded to the site, but the site was observed to serve its own fixed page (20-25 threads) regardless of limit, and passing the returned next_cursor back as cursor returned the same page again — the feed effectively exposes a single page at present. next_cursor is the raw continuation token the site reports (empty string when the site reports none) and is returned so callers can use it if the site's continuation starts working. An empty data array is a valid result when the selected feed has no threads.
| Param | Type | Description |
|---|---|---|
| limit | integer | Requested number of threads per page. Forwarded to the site, which was observed to return its own fixed page size regardless. |
| cursor | string | Continuation token from a previous response's next_cursor field. Forwarded to the site; during this build the site returned the same page for any cursor value. |
| feed_type | string | Type of feed to retrieve. |
| channel_id | integer | Channel ID to filter threads (0 for all channels). Use get_popular_communities to discover valid IDs. |
{
"type": "object",
"fields": {
"data": "array of thread objects each containing id, title, slug, community (id, name, icon, meta), thread_starter (id, display_name, username, avatar), first_post (content with text/html/bbcode, dateline, user with reputation_info), meta (total_views, total_replies)",
"next_cursor": "continuation token string reported by the site for this feed (empty string when none). Observed during this build to return the same page when passed back as cursor."
},
"sample": {
"data": {
"data": [
{
"id": "6aa167b1d55ec9ac1309d0d7",
"meta": {
"total_views": 9,
"thread_status": {
"is_creator": false,
"hot_thread_status": 0
},
"total_replies": 0,
"excluded_from_ht": false,
"moderation_status": {
"is_open": true,
"is_sticky": false,
"visibility_status": 1
},
"total_root_replies": 0,
"disable_index_next_page": false
},
"slug": "urgent-dibutuhkan-barista-di-bandung",
"type": 1,
"title": "Urgent Dibutuhkan Barista Di Bandung",
"content": {
"html": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. <br />\nDiutamakan yg sudah punya pengalaman. <br />\nCV harap dikirim melalui email ke [email redacted]<br />\nThanks all",
"text": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. Diutamakan yg sudah punya pengalaman. CV harap dikirim melalui email ke [email redacted] Thanks all",
"bbcode": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. \nDiutamakan yg sudah punya pengalaman. \nCV harap dikirim melalui email ke [email redacted]\nThanks all",
"noquote": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. \nDiutamakan yg sudah punya pengalaman. \nCV harap dikirim melalui email ke [email redacted]\nThanks all",
"snippet": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. Diutamakan yg sudah punya pengalaman. CV harap dikirim melalui email ke [email redacted] Thanks all"
},
"dateline": 1788962737,
"community": {
"id": "278",
"icon": {
"url": "https://s.kaskus.id/ficon/image-278.png",
"is_censored": false
},
"meta": {
"total_posts": 2756877,
"total_members": 16061,
"total_threads": 159984
},
"name": "Lowongan Kerja",
"type": 0,
"cover": "",
"allow_chat": false,
"description": "Tempat kumpulan informasi mengenai lowongan pekerjaan.",
"official_status": 1,
"membership_status": 0,
"allow_chat_notification": true
},
"last_post": {
"id": "6aa167b1d55ec9ac1309d0d8",
"user": {
"id": "368385",
"title": "",
"avatar": "https://s.kaskus.id/user/avatar/2007/12/05/default.png",
"username": "pidoz",
"biography": "",
"display_name": "pidoz",
"avatar_border_url": "",
"display_name_html": "pidoz"
},
"dateline": 1788962737
},
"short_url": "https://kask.us/iTakM",
"first_post": {
"id": "6aa167b1d55ec9ac1309d0d8",
"meta": {
"vote_info": {
"voters": [],
"vote_status": 0,
"total_voters": 0,
"total_reputations": 0
},
"total_replies": 0,
"visibility_status": 1
},
"user": {
"id": "368385",
"title": "KASKUS Addict",
"avatar": "https://s.kaskus.id/user/avatar/2007/12/05/default.png",
"status": {
"is_online": false,
"last_login": 1721217548
},
"username": "pidoz",
"biography": "",
"is_banned": false,
"is_online": false,
"is_ignored": false,
"total_posts": 2038,
"display_name": "pidoz",
"community_role": {
"id": "0",
"title": ""
},
"reputation_info": {
"reputation": 16,
"reputation_box": 1,
"reputation_title": "sedang di jalan yg benar",
"enable_reputation": 1
},
"avatar_border_url": "https://s.kaskus.id/images/avatarborder/1.gif",
"display_name_html": "pidoz"
},
"title": "Urgent Dibutuhkan Barista Di Bandung",
"content": {
"html": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. <br />\nDiutamakan yg sudah punya pengalaman. <br />\nCV harap dikirim melalui email ke [email redacted]<br />\nThanks all",
"text": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. Diutamakan yg sudah punya pengalaman. CV harap dikirim melalui email ke [email redacted] Thanks all",
"bbcode": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. \nDiutamakan yg sudah punya pengalaman. \nCV harap dikirim melalui email ke [email redacted]\nThanks all",
"noquote": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. \nDiutamakan yg sudah punya pengalaman. \nCV harap dikirim melalui email ke [email redacted]\nThanks all",
"snippet": "Dibutuhkan segera barista untuk kedai di Taman Kopo Indah 5. Kabupaten Bandung. Diutamakan yg sudah punya pengalaman. CV harap dikirim melalui email ke [email redacted] Thanks all"
},
"dateline": 1788962737,
"is_subscribed": false
},
"image_count": 0,
"commerce_type": 0,
"is_subscribed": false,
"thread_starter": {
"id": "368385",
"title": "",
"avatar": "https://s.kaskus.id/user/avatar/2007/12/05/default.png",
"username": "pidoz",
"biography": "",
"display_name": "pidoz",
"avatar_border_url": "",
"display_name_html": "pidoz"
},
"hot_thread_data": {
"description": ""
}
}
],
"next_cursor": "AoJwvtbLw6ADODZhYTEzMmJjM2JmYjAyMTc5MzA2YzBjZg=="
},
"status": "success"
}
}About the Co API
Thread Feeds and Search
get_hot_threads accepts a feed_type parameter ('hot' or 'active'), an optional channel_id to scope results, and a cursor string for pagination. Each returned thread object includes id, title, slug, community, thread_starter, and a first_post object with content in text, HTML, and BBCode. search_threads takes a required query string and returns the same thread shape for keyword-matched results, also supporting cursor-based pagination.
Post-Level Detail
get_thread_posts fetches the full reply sequence for a given thread_id. Posts include id, a Unix dateline timestamp, and a user object with display_name, username, avatar, and reputation_info. Content is provided in multiple formats. A sort parameter accepts 'newest' or 'oldest', and pagination is handled via page and limit.
Community Discovery
get_popular_communities returns communities ranked by activity, each with id, name, description, icon, and a meta block containing total_threads, total_members, and total_posts. The channel_id parameter scopes results; verified working values include 0 (all) and 10. These IDs feed directly into get_community_threads, which scopes the thread feed to a single community and accepts the same feed_type and cursor inputs as the global hot-threads endpoint. Note that not all community IDs are valid as channel_id filter values in get_hot_threads; invalid values may return an upstream error.
The Co API is a managed, monitored endpoint for kaskus.co.id — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kaskus.co.id changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official kaskus.co.id API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track trending Indonesian forum discussions by polling
get_hot_threadswithfeed_type: 'hot'on a schedule. - Build a keyword monitor for brand or topic mentions using
search_threadswith a product or keyword query. - Aggregate community-level activity stats (total_threads, total_members, total_posts) from
get_popular_communitiesfor forum analytics. - Reconstruct full thread conversations including reply order and user reputation data via
get_thread_posts. - Identify active sub-communities by comparing
meta.total_postsacross results fromget_popular_communities. - Feed Kaskus thread content into NLP pipelines using the plain-text content field from post objects.
- Scope a content dashboard to a specific community by pairing
get_popular_communitiesIDs withget_community_threads.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Kaskus have an official developer API?+
What does `get_thread_posts` return beyond the post text?+
display_name, username, avatar URL, and reputation_info, along with a Unix dateline timestamp and content in multiple formats (text, HTML, BBCode). You can sort results by 'newest' or 'oldest' and paginate using the page and limit parameters.Are there any quirks with the `channel_id` filter in `get_hot_threads`?+
get_popular_communities are valid as channel_id values in get_hot_threads. Passing an unsupported ID may return an upstream error. Verified working values are 0 (all channels) and 10. Test IDs individually before relying on them in production.Does the API expose private threads, login-gated boards, or user inbox data?+
Is there a way to fetch threads from a community that doesn't appear in `get_popular_communities`?+
get_popular_communities, and get_community_threads requires a community_id from that list. Communities not ranked in that feed are not directly discoverable through the existing endpoints. You can fork this API on Parse and revise it to add a community lookup or direct-ID endpoint.