Skip to content
scrapeatlas.Dashboard

Get Kalshi comments

Try in Playground

Get public Kalshi Social comments: a trader’s recent comments with the post (trade idea) each one answers, or a post with all its comments. Posts include the market, side, position cost and payout, return and engagement counts.

GET/v1/kalshi/commentsx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
3
nicknamestringquery

A trader’s nickname: returns their recent comments. Provide nickname or postId.

ExampleDegenJohnny
postIdstringquery

A post UUID: returns the post and its comments.

limitstringquery

With nickname: comments to return, 1–20; default 20.

Example10
Response fields
140
requestIdstring

Request correlation UUID.

Upstream requests, decoded response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Kalshi public API URL the data was read from.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

order is source_order. complete is false with comment_limit when a post has more than 500 comments.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

coverage.orderenum

Always included.

one of: newest_first, oldest_first, ranked, relevance, source_order

Optional.

coverage.window.sincestringoptional

Optional.

coverage.window.untilstringoptional

Optional.

With postId: the post with Kalshi’s field names: id, nickname, content, media, market_ticker, market_title, event_ticker, series_tickers, side, cost_cents, payout_if_win_cents, paid_out_cents, value_cents, dollar_roi, percentage_roi, position_odds, likes_count, comments_count, copy_trades_count, bookmarks_count, view_count and created_ts (Unix microseconds).

post.idstring

Always included.

post.social_idstringoptional

Optional.

post.nicknamestringoptional

Optional.

post.x_handlestringoptional

Optional.

post.post_typestringoptional

Optional.

post.post_subtypestringoptional

Optional.

post.contentstringoptional

Optional.

post.market_tickerstringoptional

Optional.

post.market_titlestringoptional

Optional.

post.event_tickerstringoptional

Optional.

post.event_titlestringoptional

Optional.

post.event_long_titlestringoptional

Optional.

post.series_tickersstring[]optional

Optional.

up to 50 items

post.series_titlestringoptional

Optional.

post.derivative_typestringoptional

Optional.

post.sidestringoptional

Optional.

post.image_pathsstring[]nullableoptional

Optional.

Optional.

post.media.providerstringoptional

Optional.

post.media.provider_idstringoptional

Optional.

post.media.urlstringoptional

Optional.

post.media.content_typestringoptional

Optional.

post.cost_centsintegernullableoptional

Optional.

post.payout_if_win_centsintegernullableoptional

Optional.

post.paid_out_centsintegernullableoptional

Optional.

post.value_centsintegernullableoptional

Optional.

post.dollar_roinumberoptional

Optional.

post.percentage_roinumberoptional

Optional.

post.position_oddsintegeroptional

Optional.

post.num_positions_on_eventintegernullableoptional

Optional.

post.likes_countintegeroptional

Optional.

post.comments_countintegeroptional

Optional.

post.copy_trades_countintegeroptional

Optional.

post.bookmarks_countintegeroptional

Optional.

post.view_countintegeroptional

Optional.

post.likedbooleanoptional

Optional.

post.bookmarkedbooleanoptional

Optional.

post.is_notablebooleanoptional

Optional.

post.created_tsinteger

Always included.

post.profile_image_pathstringoptional

Optional.

post.product_metadataobjectoptional

Optional.

With postId: comments with id, post_id, parent_comment_id (replies), nickname, content, depth, likes_count, is_deleted, media and created_ts (Unix microseconds).

up to 500 items

comments.idstring

Always included.

comments.post_idstring

Always included.

comments.parent_comment_idstringoptional

Optional.

comments.social_idstring

Always included.

comments.nicknamestring

Always included.

comments.contentstring

Always included.

comments.image_pathstringoptional

Optional.

comments.profile_image_pathstringoptional

Optional.

comments.created_tsinteger

Always included.

comments.depthinteger

Always included.

comments.likes_countinteger

Always included.

comments.likedbooleanoptional

Optional.

comments.is_deletedboolean

Always included.

Optional.

comments.media.providerstringoptional

Optional.

comments.media.provider_idstringoptional

Optional.

comments.media.urlstringoptional

Optional.

comments.media.content_typestringoptional

Optional.

With nickname: entries of comment and the post it answers.

up to 20 items

Always included.

posts_and_comments.comment.idstring

Always included.

posts_and_comments.comment.post_idstring

Always included.

posts_and_comments.comment.parent_comment_idstringoptional

Optional.

posts_and_comments.comment.social_idstring

Always included.

posts_and_comments.comment.nicknamestring

Always included.

posts_and_comments.comment.contentstring

Always included.

posts_and_comments.comment.image_pathstringoptional

Optional.

posts_and_comments.comment.profile_image_pathstringoptional

Optional.

posts_and_comments.comment.created_tsinteger

Always included.

posts_and_comments.comment.depthinteger

Always included.

posts_and_comments.comment.likes_countinteger

Always included.

posts_and_comments.comment.likedbooleanoptional

Optional.

posts_and_comments.comment.is_deletedboolean

Always included.

Optional.

posts_and_comments.comment.media.providerstringoptional

Optional.

posts_and_comments.comment.media.provider_idstringoptional

Optional.

posts_and_comments.comment.media.urlstringoptional

Optional.

posts_and_comments.comment.media.content_typestringoptional

Optional.

Always included.

posts_and_comments.post.idstring

Always included.

posts_and_comments.post.social_idstringoptional

Optional.

posts_and_comments.post.nicknamestringoptional

Optional.

posts_and_comments.post.x_handlestringoptional

Optional.

posts_and_comments.post.post_typestringoptional

Optional.

posts_and_comments.post.post_subtypestringoptional

Optional.

posts_and_comments.post.contentstringoptional

Optional.

posts_and_comments.post.market_tickerstringoptional

Optional.

posts_and_comments.post.market_titlestringoptional

Optional.

posts_and_comments.post.event_tickerstringoptional

Optional.

posts_and_comments.post.event_titlestringoptional

Optional.

posts_and_comments.post.event_long_titlestringoptional

Optional.

posts_and_comments.post.series_tickersstring[]optional

Optional.

up to 50 items

posts_and_comments.post.series_titlestringoptional

Optional.

posts_and_comments.post.derivative_typestringoptional

Optional.

posts_and_comments.post.sidestringoptional

Optional.

posts_and_comments.post.image_pathsstring[]nullableoptional

Optional.

Optional.

posts_and_comments.post.media.providerstringoptional

Optional.

posts_and_comments.post.media.provider_idstringoptional

Optional.

posts_and_comments.post.media.urlstringoptional

Optional.

posts_and_comments.post.media.content_typestringoptional

Optional.

posts_and_comments.post.cost_centsintegernullableoptional

Optional.

posts_and_comments.post.payout_if_win_centsintegernullableoptional

Optional.

posts_and_comments.post.paid_out_centsintegernullableoptional

Optional.

posts_and_comments.post.value_centsintegernullableoptional

Optional.

posts_and_comments.post.dollar_roinumberoptional

Optional.

posts_and_comments.post.percentage_roinumberoptional

Optional.

posts_and_comments.post.position_oddsintegeroptional

Optional.

posts_and_comments.post.num_positions_on_eventintegernullableoptional

Optional.

posts_and_comments.post.likes_countintegeroptional

Optional.

posts_and_comments.post.comments_countintegeroptional

Optional.

posts_and_comments.post.copy_trades_countintegeroptional

Optional.

posts_and_comments.post.bookmarks_countintegeroptional

Optional.

posts_and_comments.post.view_countintegeroptional

Optional.

posts_and_comments.post.likedbooleanoptional

Optional.

posts_and_comments.post.bookmarkedbooleanoptional

Optional.

posts_and_comments.post.is_notablebooleanoptional

Optional.

posts_and_comments.post.created_tsinteger

Always included.

posts_and_comments.post.profile_image_pathstringoptional

Optional.

posts_and_comments.post.product_metadataobjectoptional

Optional.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
11
HTTPfailure.codeMeaning
200partialUsable data with market_limit, metadata_unavailable, candle_limit, window_truncated, comment_limit or metrics_unavailable warnings.
400invalid_requestMissing, duplicate, malformed or unsupported parameters, a link outside kalshi.com/markets, a price-history window above its period limit, or parameters Kalshi rejected.
401unauthorizedMissing or invalid worker API key.
404not_foundUnknown market, event, series, post or trader.
429upstream_rate_limitedKalshi rate limited the request.
502upstream_challengedKalshi refused the public request.
502unsupported_pageMalformed, mismatched or non-JSON source data.
502response_too_large payload_too_complexResponse exceeded byte or parsing limits.
502unsafe_redirect request_limit upstream_errorBounded source retrieval could not complete.
503busyAll worker slots and the waiting queue are occupied.
504timeoutTotal request deadline expired.