Create a Reddit Comment Collection Job
/v1/reddit/posts/{post_id}/commentsCollect comments from a post as an asynchronous job. Poll the returned job ID, then paginate the saved comments. Reserves up to 8 Credits for a completed job plus 1 Credit per delivered comment record (api_market.reddit.comment_job and api_market.reddit.comment_record). Idempotency-Key is required. Job status polling and stored-comment pagination are free; Credits capture when the worker completes delivery.
On this page
Request example
Replace placeholders with your values. Use your Team API key for authenticated requests.
https://kieapi.comcurl -X POST "https://kieapi.com/v1/reddit/posts/{post_id}/comments" \
-H "Authorization: Bearer $SPIDER_API_KEY" \
-H 'Idempotency-Key: docs-example-01' \
-H "Content-Type: application/json" \
-d '{}'Authentication
BearerAuth
Parameters
post_idpath · string requiredIdempotency-Keyheader · string- Caller-generated key, up to 128 characters, that identifies one API Market write and its billing event. Reuse the same key only when retrying the same logical request. Replays do not create another reservation or capture.
Request body required
application/json
PublicRedditCommentJobCreateRequest
post_urlstring (uri)sortstringAllowed:
"confidence", "top", "new", "controversial", "old", "qa"Default:
"confidence"max_commentsintegerDefault:
1000max_depthintegerDefault:
20expand_morebooleanDefault:
true
Responses
202 Comment job accepted.
application/json
RedditPublicCommentJobResponse
Reddit-branded alias of PublicRedditCommentJobResponse.
400 The request parameters are invalid for this operation.
401 Missing or invalid API key.
402 The Team does not have enough available Credits for the maximum reservation.
409 Billing settlement requires reconciliation, or the idempotency key was reused for a different logical request.
429 Temporary rate limit.
503 Required runtime service is unavailable.
Schemas
Field definitions and complete validation rules for this API. Follow a type link to its definition.
PublicRedditCommentJobCreateRequest
object
post_urlstring (uri)sortstringAllowed:
"confidence", "top", "new", "controversial", "old", "qa"Default:
"confidence"max_commentsintegerDefault:
1000max_depthintegerDefault:
20expand_morebooleanDefault:
true
Complete schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"post_url": {
"type": "string",
"format": "uri",
"nullable": true
},
"sort": {
"type": "string",
"enum": [
"confidence",
"top",
"new",
"controversial",
"old",
"qa"
],
"default": "confidence"
},
"max_comments": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"default": 1000
},
"max_depth": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"expand_more": {
"type": "boolean",
"default": true
}
}
}RedditPublicCommentJobResponse
PublicRedditCommentJobResponse
Reddit-branded alias of PublicRedditCommentJobResponse.
Complete schema
{
"description": "Reddit-branded alias of PublicRedditCommentJobResponse.",
"allOf": [
{
"$ref": "#/components/schemas/PublicRedditCommentJobResponse"
}
]
}PublicRedditCommentJobResponse
object
jobPublicRedditCommentJob required
Complete schema
{
"type": "object",
"required": [
"job"
],
"properties": {
"job": {
"$ref": "#/components/schemas/PublicRedditCommentJob"
}
}
}PublicRedditCommentJob
object
idstring requiredplatformstring requiredAllowed:
"reddit"kindstring requiredAllowed:
"comments"statusstring requiredpost_idstring requiredpost_urlstringrequestPublicRedditCommentJobRequest requiredprogressPublicRedditCommentJobProgress requiredresultPublicRedditCommentJobResult or nullerrorobjectcreated_atstring (date-time) requiredstarted_atstring (date-time)finished_atstring (date-time)
Complete schema
{
"type": "object",
"required": [
"id",
"platform",
"kind",
"status",
"post_id",
"request",
"progress",
"created_at"
],
"properties": {
"id": {
"type": "string"
},
"platform": {
"type": "string",
"enum": [
"reddit"
]
},
"kind": {
"type": "string",
"enum": [
"comments"
]
},
"status": {
"type": "string"
},
"post_id": {
"type": "string"
},
"post_url": {
"type": "string",
"nullable": true
},
"request": {
"$ref": "#/components/schemas/PublicRedditCommentJobRequest"
},
"progress": {
"$ref": "#/components/schemas/PublicRedditCommentJobProgress"
},
"result": {
"anyOf": [
{
"$ref": "#/components/schemas/PublicRedditCommentJobResult"
},
{
"type": "null"
}
]
},
"error": {
"type": "object",
"nullable": true,
"additionalProperties": true
},
"created_at": {
"type": "string",
"format": "date-time"
},
"started_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"finished_at": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
}PublicRedditCommentJobRequest
object
sortstring requiredmax_commentsinteger requiredmax_depthinteger requiredexpand_moreboolean required
Complete schema
{
"type": "object",
"required": [
"sort",
"max_comments",
"max_depth",
"expand_more"
],
"properties": {
"sort": {
"type": "string"
},
"max_comments": {
"type": "integer"
},
"max_depth": {
"type": "integer"
},
"expand_more": {
"type": "boolean"
}
}
}PublicRedditCommentJobProgress
object
stagestring requiredcomments_fetchedintegermore_nodes_remainingintegerrequests_madeinteger
Complete schema
{
"type": "object",
"required": [
"stage"
],
"properties": {
"stage": {
"type": "string"
},
"comments_fetched": {
"type": "integer"
},
"more_nodes_remaining": {
"type": "integer",
"nullable": true
},
"requests_made": {
"type": "integer"
}
}
}PublicRedditCommentJobResult
object
comment_countinteger requirednew_comment_countinteger requiredupdated_comment_countinteger requiredmore_nodes_seenintegermore_nodes_expandedintegermore_children_remainingintegerrequests_madeintegercompleteboolean requiredtruncated_reasonstring
Complete schema
{
"type": "object",
"required": [
"comment_count",
"new_comment_count",
"updated_comment_count",
"complete"
],
"properties": {
"comment_count": {
"type": "integer"
},
"new_comment_count": {
"type": "integer"
},
"updated_comment_count": {
"type": "integer"
},
"more_nodes_seen": {
"type": "integer",
"nullable": true
},
"more_nodes_expanded": {
"type": "integer",
"nullable": true
},
"more_children_remaining": {
"type": "integer",
"nullable": true
},
"requests_made": {
"type": "integer",
"nullable": true
},
"complete": {
"type": "boolean"
},
"truncated_reason": {
"type": "string",
"nullable": true
}
}
}PublicErrorResponse
object
errorPublicError required
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"error"
],
"properties": {
"error": {
"$ref": "#/components/schemas/PublicError"
}
}
}PublicError
object
codestring requiredAllowed:
"seoapi_price_pending", "seoapi_unavailable", "seoapi_busy", "seoapi_not_found", "seoapi_rate_limited", "seoapi_budget_exceeded", "seoapi_idempotency_conflict", "seoapi_insufficient_credits", "seoapi_admission_failed", "seoapi_execution_interrupted", "seoapi_delivery_unknown", "seoapi_response_invalid", "seoapi_model_unsupported", "seoapi_model_options_invalid", "seoapi_provider_rejected", "seo_price_pending", "seo_provider_blocked", "seo_local_rate_limited", "seo_fallback_unavailable", "seo_fallback_budget_exceeded", "seo_pagination_expired", "seo_delivery_uncertain", "seo_auth_required", "seo_initialization_required", "seo_permission_denied", "seo_verification_required", "seo_rate_limited", "seo_upstream_unavailable", "seo_transport_failed", "seo_invalid_response", "seo_rpc_error", "seo_period_unavailable", "seo_account_unavailable", "seo_session_busy", "seo_configuration_required", "validation_error", "invalid_request", "unsupported_feature", "authentication_required", "permission_denied", "not_found", "run_not_found", "crawl_not_found", "artifact_not_found", "session_not_found", "profile_not_found", "profile_in_use", "profile_not_ready", "profile_not_cloneable", "profile_limit_reached", "profile_proxy_conflict", "proxy_not_found", "proxy_unavailable", "invalid_session_options", "invalid_query_options", "invalid_cursor", "idempotency_key_required", "browser_session_limit_reached", "browser_capacity_exhausted", "browser_start_timeout", "browser_runtime_unavailable", "session_not_active", "controller_already_connected", "browser_relay_unavailable", "precondition_required", "precondition_failed", "timeout", "run_not_ready", "artifact_expired", "quota_exceeded", "insufficient_credits", "billing_reconciliation_required", "rate_limited", "fetch_failed", "render_failed", "maps_rate_limited", "maps_challenge", "maps_schema_changed", "maps_invalid_response", "maps_transport_failed", "maps_page_budget_exhausted", "google_trends_rate_limited", "google_trends_challenge", "google_trends_explore_failed", "google_trends_widget_missing", "google_trends_related_failed", "google_trends_invalid_response", "google_trends_transport_failed", "google_trends_collection_failed", "google_ads_account_context_missing", "google_ads_batch_failed", "google_ads_browser_context_missing", "google_ads_browser_unavailable", "google_ads_collection_failed", "google_ads_page_failed", "google_ads_protocol_drift", "google_ads_rate_limited", "google_ads_timeout", "twitter_provider_unavailable", "twitter_provider_rejected", "twitter_submission_unknown", "wechat_transport_failed", "wechat_rate_limited", "wechat_invalid_response", "wechat_redirect_rejected", "wechat_verification_required", "wechat_parse_failed", "blackhatworld_search_failed", "blackhatworld_no_results", "reddit_read_failed", "idempotency_conflict", "idempotency_in_progress", "service_unavailable", "internal_error"messagestring requiredtypestring requiredAllowed:
"auth", "validation", "quota", "rate_limit", "not_found", "execution", "conflict", "internal"retryableboolean requiredrequest_idstring | nulldetailsobject
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message",
"type",
"retryable"
],
"properties": {
"code": {
"type": "string",
"enum": [
"seoapi_price_pending",
"seoapi_unavailable",
"seoapi_busy",
"seoapi_not_found",
"seoapi_rate_limited",
"seoapi_budget_exceeded",
"seoapi_idempotency_conflict",
"seoapi_insufficient_credits",
"seoapi_admission_failed",
"seoapi_execution_interrupted",
"seoapi_delivery_unknown",
"seoapi_response_invalid",
"seoapi_model_unsupported",
"seoapi_model_options_invalid",
"seoapi_provider_rejected",
"seo_price_pending",
"seo_provider_blocked",
"seo_local_rate_limited",
"seo_fallback_unavailable",
"seo_fallback_budget_exceeded",
"seo_pagination_expired",
"seo_delivery_uncertain",
"seo_auth_required",
"seo_initialization_required",
"seo_permission_denied",
"seo_verification_required",
"seo_rate_limited",
"seo_upstream_unavailable",
"seo_transport_failed",
"seo_invalid_response",
"seo_rpc_error",
"seo_period_unavailable",
"seo_account_unavailable",
"seo_session_busy",
"seo_configuration_required",
"validation_error",
"invalid_request",
"unsupported_feature",
"authentication_required",
"permission_denied",
"not_found",
"run_not_found",
"crawl_not_found",
"artifact_not_found",
"session_not_found",
"profile_not_found",
"profile_in_use",
"profile_not_ready",
"profile_not_cloneable",
"profile_limit_reached",
"profile_proxy_conflict",
"proxy_not_found",
"proxy_unavailable",
"invalid_session_options",
"invalid_query_options",
"invalid_cursor",
"idempotency_key_required",
"browser_session_limit_reached",
"browser_capacity_exhausted",
"browser_start_timeout",
"browser_runtime_unavailable",
"session_not_active",
"controller_already_connected",
"browser_relay_unavailable",
"precondition_required",
"precondition_failed",
"timeout",
"run_not_ready",
"artifact_expired",
"quota_exceeded",
"insufficient_credits",
"billing_reconciliation_required",
"rate_limited",
"fetch_failed",
"render_failed",
"maps_rate_limited",
"maps_challenge",
"maps_schema_changed",
"maps_invalid_response",
"maps_transport_failed",
"maps_page_budget_exhausted",
"google_trends_rate_limited",
"google_trends_challenge",
"google_trends_explore_failed",
"google_trends_widget_missing",
"google_trends_related_failed",
"google_trends_invalid_response",
"google_trends_transport_failed",
"google_trends_collection_failed",
"google_ads_account_context_missing",
"google_ads_batch_failed",
"google_ads_browser_context_missing",
"google_ads_browser_unavailable",
"google_ads_collection_failed",
"google_ads_page_failed",
"google_ads_protocol_drift",
"google_ads_rate_limited",
"google_ads_timeout",
"twitter_provider_unavailable",
"twitter_provider_rejected",
"twitter_submission_unknown",
"wechat_transport_failed",
"wechat_rate_limited",
"wechat_invalid_response",
"wechat_redirect_rejected",
"wechat_verification_required",
"wechat_parse_failed",
"blackhatworld_search_failed",
"blackhatworld_no_results",
"reddit_read_failed",
"idempotency_conflict",
"idempotency_in_progress",
"service_unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"auth",
"validation",
"quota",
"rate_limit",
"not_found",
"execution",
"conflict",
"internal"
]
},
"retryable": {
"type": "boolean"
},
"request_id": {
"type": [
"string",
"null"
]
},
"details": {
"type": "object",
"additionalProperties": true
}
}
}