SpideyDataAPI Reference
API navigation Reddit
Search7
Posts & feeds7
Comments8
Communities12
Monitoring7
Compatibility aliases4
RedditComments

Create a Reddit Comment Collection Job

POST/v1/reddit/posts/{post_id}/comments

Collect 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.

API base https://kieapi.com
curl -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_id path · string required
Idempotency-Key header · 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_url string (uri)
sort string

Allowed: "confidence", "top", "new", "controversial", "old", "qa"

Default: "confidence"

max_comments integer

Default: 1000

max_depth integer

Default: 20

expand_more boolean

Default: true

Responses

202 Comment job accepted.

application/json

RedditPublicCommentJobResponse

Reddit-branded alias of PublicRedditCommentJobResponse.

400 The request parameters are invalid for this operation.

application/json

PublicErrorResponse

error PublicError required
401 Missing or invalid API key.

application/json

PublicErrorResponse

error PublicError required
402 The Team does not have enough available Credits for the maximum reservation.

application/json

PublicErrorResponse

error PublicError required
409 Billing settlement requires reconciliation, or the idempotency key was reused for a different logical request.

application/json

PublicErrorResponse

error PublicError required
429 Temporary rate limit.

application/json

PublicErrorResponse

error PublicError required
503 Required runtime service is unavailable.

application/json

PublicErrorResponse

error PublicError required

Schemas

Field definitions and complete validation rules for this API. Follow a type link to its definition.

PublicRedditCommentJobCreateRequest

object

post_url string (uri)
sort string

Allowed: "confidence", "top", "new", "controversial", "old", "qa"

Default: "confidence"

max_comments integer

Default: 1000

max_depth integer

Default: 20

expand_more boolean

Default: 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

Complete schema
{
  "type": "object",
  "required": [
    "job"
  ],
  "properties": {
    "job": {
      "$ref": "#/components/schemas/PublicRedditCommentJob"
    }
  }
}

PublicRedditCommentJob

object

id string required
platform string required

Allowed: "reddit"

kind string required

Allowed: "comments"

status string required
post_id string required
post_url string
error object
created_at string (date-time) required
started_at string (date-time)
finished_at string (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

sort string required
max_comments integer required
max_depth integer required
expand_more boolean 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

stage string required
comments_fetched integer
more_nodes_remaining integer
requests_made integer
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_count integer required
new_comment_count integer required
updated_comment_count integer required
more_nodes_seen integer
more_nodes_expanded integer
more_children_remaining integer
requests_made integer
complete boolean required
truncated_reason string
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

error PublicError required
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "$ref": "#/components/schemas/PublicError"
    }
  }
}

PublicError

object

code string required

Allowed: "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 string required
type string required

Allowed: "auth", "validation", "quota", "rate_limit", "not_found", "execution", "conflict", "internal"

retryable boolean required
request_id string | null
details object
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
    }
  }
}