Skip to content
scrapeatlas.Dashboard

List Polymarket comments

Try in Playground

List the comment thread of a Polymarket event or series, newest or oldest first, with replies and commenter profiles. An event in a recurring series, or in any series when the event has no comments of its own, returns the series discussion, as the event page shows it; other events return their own thread. Optionally keep only comments from position holders.

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

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

Query parameters
6
eventstringquery

Event slug, numeric event ID, or a polymarket.com/event/<slug> URL (a /market/<slug> URL resolves to its event). Use event or series.

min 1 chars · max 600 chars

Examplepresidential-election-winner-2028
seriesstringquery

Series slug or numeric series ID.

orderenumquery

newest (default) or oldest.

one of: newest, oldest

holdersOnlyenumquery

true keeps only comments from wallets holding a position.

one of: true, false

limitstringquery

Top-level comments per page, 1–100; defaults to 20. Replies to those comments are returned as additional rows.

Example20
cursorstringquery

Optional nextCursor from the previous response. Send the same other parameters with it; omit it for the first page.

Response fields
46
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

Public Polymarket page the data describes, or the public API URL when no page exists (an order book or price history requested by token ID).

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

complete is false when a warning names an omission, such as market_limit, level_limit, point_limit, comment_row_limit or stats_unavailable.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

parentEntityTypeenum

Always included.

one of: Event, Series

parentEntityIDinteger

Always included.

Series slug or numeric series ID.

series.idstring

Always included.

series.slugstring

Always included.

series.titlestringoptional

Optional.

Comments and replies as a flat list in source order: id, body (omitted when the comment only attaches media), parentEntityType, parentEntityID, parentCommentID (replies only), userAddress, replyAddress (replies only), createdAt, updatedAt, reactionCount and reportCount.

up to 2000 items

comments.idstring

Always included.

comments.bodystringoptional

Optional.

comments.parentEntityTypestring

Always included.

comments.parentEntityIDinteger

Always included.

comments.parentCommentIDstringoptional

Optional.

comments.userAddressstring

Always included.

comments.replyAddressstringoptional

Optional.

comments.createdAtstring

Always included.

comments.updatedAtstringoptional

Optional.

comments.reactionCountinteger

Always included.

comments.reportCountintegeroptional

Optional.

Optional.

up to 10 items

comments.media.idstring

Always included.

comments.media.mediaTypestring

Always included.

comments.media.providerstringoptional

Optional.

comments.media.urlstring

Always included.

comments.media.altTextstringoptional

Optional.

Optional.

comments.profile.namestringoptional

Optional.

comments.profile.pseudonymstringoptional

Optional.

comments.profile.displayUsernamePublicbooleanoptional

Optional.

comments.profile.biostringoptional

Optional.

comments.profile.profileImagestringoptional

Optional.

comments.profile.proxyWalletstringoptional

Optional.

comments.profile.baseAddressstringoptional

Optional.

nextCursorstringnullable

Cursor for the next page, or null when the source has no further page.

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 level_limit, point_limit, market_limit, comment_row_limit or *_unavailable warnings.
400invalid_requestMissing, duplicate, conflicting, unsafe or unsupported parameters, a URL outside polymarket.com, or a cursor the source rejects.
401unauthorizedMissing or invalid worker API key.
404not_foundUnknown event, market, outcome, token, series, handle or wallet.
429upstream_rate_limitedPolymarket throttled the request; no automatic retry.
502upstream_challengedPolymarket rejected the request or answered with a challenge page.
502unsupported_pageMalformed, mismatched or non-JSON source data, or a profile page without its wallet address.
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 queue places are occupied.
504timeoutTotal request deadline expired.