{
  "openapi": "3.0.1",
  "info": {
    "title": "Quora Search Scraper",
    "description": "Search Quora by keywords and extract questions, answers, author info, upvotes, and engagement metrics. Find relevant Q&A content across any topic.",
    "version": "1.0",
    "x-build-id": "iIxseiOanO5nhqGbn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~quora-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-quora-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/crawlerbros~quora-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-quora-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/crawlerbros~quora-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-quora-search-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "scrapeDepth": {
            "title": "Detail level",
            "enum": [
              "overview",
              "detail"
            ],
            "type": "string",
            "description": "Overview extracts the initial visible entity without answer/comment/profile-activity expansion. Detail performs the configured bounded traversal; neither mode claims complete history.",
            "default": "detail"
          },
          "searchQueries": {
            "title": "Search phrases",
            "type": "array",
            "description": "Words or phrases to search on Quora.",
            "items": {
              "type": "string"
            }
          },
          "directUrls": {
            "title": "Quora URLs to collect",
            "type": "array",
            "description": "Public question, answer, profile, topic, Space, or post URLs.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "usernames": {
            "title": "Profile Usernames",
            "type": "array",
            "description": "Quora profile usernames/slugs (with or without a leading @ or trailing slash). Normalized to https://www.quora.com/profile/{slug} and merged into the direct-URL queue; also seeds author-discovery and post-discovery when relevant.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "targets": {
            "title": "URLs or search phrases",
            "type": "array",
            "description": "One simple list containing either Quora URLs or search phrases. URLs are enriched directly; phrases are searched.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "resultTypes": {
            "title": "Records to collect",
            "type": "array",
            "description": "Choose the public records to discover or enrich. Comments are included when Collect comments is enabled. Author profiles are deduplicated from explicitly visible author links.",
            "items": {
              "type": "string",
              "enum": [
                "question",
                "answer",
                "profile",
                "author",
                "profile_activity",
                "topic",
                "space",
                "post",
                "comment",
                "search_result",
                "relationship",
                "topic_question",
                "topic_post",
                "topic_related",
                "post_discovery"
              ],
              "enumTitles": [
                "Questions",
                "Answers",
                "Profiles",
                "Author profiles",
                "Profile activity",
                "Topics",
                "Spaces",
                "Posts",
                "Comments",
                "Search results",
                "Relationships",
                "Topic questions",
                "Topic posts",
                "Related Topics",
                "Post discovery cards"
              ]
            },
            "default": [
              "question",
              "answer",
              "profile",
              "topic",
              "space",
              "post",
              "comment",
              "search_result"
            ]
          },
          "onlyUnanswered": {
            "title": "Only questions without answers",
            "type": "boolean",
            "description": "Retain question/search rows only when an explicit typed answer count is exactly zero. Unknown or ambiguous counts are excluded; status and run-manifest rows remain. This does not prove complete answer-history coverage.",
            "default": false
          },
          "excludePromoted": {
            "title": "Hide promoted results",
            "type": "boolean",
            "description": "Exclude only cards with explicit visible or structured sponsored/promoted/ad evidence; unknown cards remain.",
            "default": false
          },
          "includePromoted": {
            "title": "Include promoted results",
            "type": "boolean",
            "description": "Include cards with explicit promotion evidence. Set false to exclude them; explicit excludePromoted takes precedence when both are supplied.",
            "default": true
          },
          "includePromotionEvidence": {
            "title": "Show promotion labels",
            "type": "boolean",
            "description": "Retain promotion state and explicit label/source fields on native search-result rows.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum discovery records per search source.",
            "default": 50
          },
          "searchType": {
            "title": "Result type",
            "enum": [
              "all",
              "question",
              "answer",
              "profile",
              "topic",
              "space",
              "post"
            ],
            "type": "string",
            "description": "Limit search cards to one content type.",
            "default": "all"
          },
          "searchTimeFilter": {
            "title": "Published time range",
            "enum": [
              "all_time",
              "past_hour",
              "past_day",
              "past_week",
              "past_month",
              "past_year"
            ],
            "type": "string",
            "description": "Limit cards to a visible time range.",
            "default": "all_time"
          },
          "sortOrder": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "newest",
              "most_viewed"
            ],
            "type": "string",
            "description": "Order cards by relevance, date, or views.",
            "default": "relevance"
          },
          "outputFields": {
            "title": "Fields to include",
            "maxItems": 3000,
            "type": "array",
            "description": "Optional export selection for API users. Leave empty to return every observed buyer-relevant field; fields absent from a page are omitted.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "language": {
            "title": "Content language",
            "enum": [
              "auto",
              "en",
              "es",
              "fr",
              "de",
              "pt",
              "it",
              "ja",
              "ko",
              "hi",
              "id",
              "nl",
              "pl",
              "tr",
              "vi",
              "zh",
              "ru",
              "en-US",
              "en-GB",
              "de-DE",
              "fr-FR",
              "es-ES",
              "pt-BR",
              "it-IT",
              "ja-JP",
              "ko-KR",
              "hi-IN",
              "tr-TR",
              "zh-CN",
              "zh-TW",
              "ru-RU"
            ],
            "type": "string",
            "description": "Choose the Quora language version to request when available. This selects page language; it does not translate content.",
            "default": "auto"
          },
          "maxAnswersPerQuestion": {
            "title": "Maximum answers per question",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum visible answers when enrichment is enabled. Use a higher value, up to 50,000, when you want more answers; 0 skips answer enrichment.",
            "default": 50
          },
          "minAnswerUpvotes": {
            "title": "Minimum answer upvotes",
            "minimum": 0,
            "maximum": 2000000000,
            "type": "integer",
            "description": "When positive, retain only answer records with explicit machine-readable upvote evidence at or above this threshold. Missing or ambiguous upvotes are never treated as zero and are reported in filter diagnostics.",
            "default": 0
          },
          "sortAnswersBy": {
            "title": "Sort answers by",
            "enum": [
              "relevance",
              "recency",
              "upvotes"
            ],
            "type": "string",
            "description": "Order collected answers by Quora's visible order, newest first, or highest visible upvotes first. If the selected fact is unavailable, the visible order is kept.",
            "default": "relevance"
          },
          "filterAiAnswers": {
            "title": "AI-answer filter",
            "enum": [
              "include",
              "exclude",
              "only"
            ],
            "type": "string",
            "description": "Include all answers, exclude only explicitly AI-labeled answers, or retain only explicitly AI-labeled answers. Unknown/missing AI labels are never classified and are counted in filter diagnostics. Legacy boolean true/false values are accepted by the API normalizer as exclude/include.",
            "default": "include"
          },
          "topCommentsOnly": {
            "title": "Only top comments",
            "type": "boolean",
            "description": "Retain only comments with an explicit visible Top/Most helpful/Popular comments label. Unknown comments are excluded and counted; votes and position are not used as top evidence.",
            "default": false
          },
          "commentSortOrder": {
            "title": "Sort comments by",
            "enum": [
              "observed",
              "upvotes_desc",
              "reactions_desc",
              "replies_desc",
              "newest"
            ],
            "type": "string",
            "description": "Order visible comments by Quora order, upvotes, reactions, replies, or newest date.",
            "default": "observed"
          },
          "includeAnswers": {
            "title": "Collect answers",
            "type": "boolean",
            "description": "Follow visible answer links during enrichment.",
            "default": true
          },
          "includeMedia": {
            "title": "Collect images and videos",
            "type": "boolean",
            "description": "Return media visibly attached to records.",
            "default": true
          },
          "includeOutboundLinks": {
            "title": "Collect external links",
            "type": "boolean",
            "description": "Return external links visibly attached to records.",
            "default": true
          },
          "includeRelatedQuestions": {
            "title": "Collect related questions",
            "type": "boolean",
            "description": "Retain explicitly labeled related-question links from question pages. Disable to reduce question-context payload; this does not affect answer extraction.",
            "default": true
          },
          "maxRelatedQuestions": {
            "title": "Maximum related questions",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Bound the emitted related-question collection on question rows. Zero preserves all observed related links; positive values emit related_questions_scraped and related_questions_limit_reached diagnostics.",
            "default": 0
          },
          "includeQuestionTopics": {
            "title": "Collect question Topics",
            "type": "boolean",
            "description": "Retain explicit topic links associated with question rows. Disable to reduce question-context payload; this does not affect answer or post traversal.",
            "default": true
          },
          "includeRelatedTopics": {
            "title": "Collect related Topics",
            "type": "boolean",
            "description": "Emit visibly linked related topics as topic_related rows.",
            "default": true
          },
          "maxRelatedTopics": {
            "title": "Maximum related Topics",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Bound topic_related rows emitted per topic page. Zero means unlimited.",
            "default": 50
          },
          "includeAnswerPreview": {
            "title": "Collect answer previews",
            "type": "boolean",
            "description": "Opt in to bounded, already-rendered answer-preview evidence on question/search_result cards, without navigating to the full answer page.",
            "default": false
          },
          "maxAnswerPreviews": {
            "title": "Maximum answer previews",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Bound answer_preview_* entries retained per question/search_result card.",
            "default": 3
          },
          "minAnswerPreviewUpvotes": {
            "title": "Minimum preview upvotes",
            "minimum": 0,
            "maximum": 2000000000,
            "type": "integer",
            "description": "Minimum typed upvote threshold an answer preview must meet to be retained. Fails closed: previews with unknown upvotes are excluded once this is positive.",
            "default": 0
          },
          "includeSpaceSettings": {
            "title": "Collect Space settings",
            "type": "boolean",
            "description": "Opt in to explicitly labeled Space settings/content-permission evidence for Space rows; missing settings remain unknown and admin-only queues are not scraped.",
            "default": false
          },
          "includeQuestionDetails": {
            "title": "Collect question details",
            "type": "boolean",
            "description": "Retain rendered question description/body text on question rows. Disable to reduce payload while preserving question identity, metrics, answer/post traversal, and status envelopes.",
            "default": true
          },
          "maxPostsPerSource": {
            "title": "Maximum posts per source",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum posts collected from each source page. Standalone post discovery is off at 0; a positive value collects up to that many visible posts from each profile, Space, or search page.",
            "default": 0
          },
          "includeComments": {
            "title": "Collect comments",
            "type": "boolean",
            "description": "Follow visible comments under enriched answers.",
            "default": false
          },
          "includeRelatedContent": {
            "title": "Collect related content",
            "type": "boolean",
            "description": "Opt in to an explicit 'related/attached content' region scoped to one answer or post card.",
            "default": false
          },
          "maxRelatedContent": {
            "title": "Maximum related content",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Bound related_content entries retained per answer/post.",
            "default": 20
          },
          "maxCommentsPerAnswer": {
            "title": "Maximum comments per answer",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum visible comments extracted from each answer when comments are enabled. Use 0 to collect every comment Quora exposes before the run limit or access boundary.",
            "default": 50
          },
          "includeProfileActivity": {
            "title": "Collect profile activity",
            "type": "boolean",
            "description": "Extract public activity links visibly rendered on profile pages.",
            "default": false
          },
          "includeProfileSensitiveFields": {
            "title": "Include public profile details",
            "type": "boolean",
            "description": "When false, strip location, employment, education, and profile_joined_date from profile/author rows.",
            "default": true
          },
          "includeSocialLinks": {
            "title": "Include social links",
            "type": "boolean",
            "description": "When false, omit social_links/website_url from profile/author rows.",
            "default": true
          },
          "maxItemsPerTab": {
            "title": "Maximum activities per tab",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum activity records to keep from each selected profile tab. 0 uses only the overall activity limit.",
            "default": 0
          },
          "maxAuthors": {
            "title": "Maximum author profiles",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum unique discovered author rows to emit, independent of maxItems. Requires resultTypes to include author.",
            "default": 1000
          },
          "includeProfileSnapshot": {
            "title": "Include Profile Snapshot on Author Rows",
            "type": "boolean",
            "description": "When true and resultTypes includes author, open each discovered author's profile and merge a full profile snapshot onto the author row.",
            "default": false
          },
          "includeEntityGraph": {
            "title": "Connect related records",
            "type": "boolean",
            "description": "Return explicit links between questions, answers, authors, Topics, Spaces, posts, and comments.",
            "default": false
          },
          "maxGraphEdges": {
            "title": "Maximum relationship records",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum relationship records to return in addition to content rows.",
            "default": 5000
          },
          "profileActivityTypes": {
            "title": "Activity types",
            "type": "array",
            "description": "Activity categories to retain: answer, question, or post.",
            "items": {
              "type": "string",
              "enum": [
                "answer",
                "question",
                "post"
              ],
              "enumTitles": [
                "Answers",
                "Questions",
                "Posts"
              ]
            },
            "default": [
              "answer",
              "question",
              "post"
            ]
          },
          "maxProfileActivityItems": {
            "title": "Maximum activity items",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum visibly rendered public activity records per profile.",
            "default": 50
          },
          "cookies": {
            "title": "Quora browser cookies (optional)",
            "type": "array",
            "description": "Optional cookies from a Quora session you are authorized to use. Public results do not require cookies.",
            "items": {
              "type": "object"
            }
          },
          "includeAccessIssues": {
            "title": "Show unavailable sources",
            "type": "boolean",
            "description": "Add one clearly labelled row for each page Quora did not make available. Leave off for a clean content-only dataset.",
            "default": false
          },
          "maxResultsPerSource": {
            "title": "Maximum records per source",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum records collected from each URL or search source before moving to the next source.",
            "default": 0
          },
          "reachMode": {
            "title": "How hard to try for access",
            "enum": [
              "standard",
              "maximum",
              "direct"
            ],
            "type": "string",
            "description": "Standard is the cost-conscious default. Maximum reach uses stronger routing when available. Direct connection is mainly useful when you already control the connection.",
            "default": "standard"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}