openapi: 3.1.0 info: title: Stack Exchange Answers Search API description: The Stack Exchange API v2.3 provides programmatic access to the Stack Exchange network of Q&A sites, including Stack Overflow, Server Fault, Super User, and hundreds of other communities. The API supports reading and writing questions, answers, comments, tags, users, and other content. Authentication is via OAuth 2.0 with access tokens. All responses are JSON-encoded and support GZIP compression. version: '2.3' contact: name: Stack Exchange API Support url: http://stackapps.com/ email: team+api@stackexchange.com termsOfService: https://stackexchange.com/legal/api-terms-of-use servers: - url: https://api.stackexchange.com/2.3 description: Stack Exchange API v2.3 security: - oauth2: [] - {} tags: - name: Search description: Operations for searching questions and content across the Stack Exchange network. paths: /search: get: operationId: searchQuestions summary: Search Questions description: Searches for questions based on a query string. Returns questions that match the search terms in the title, body, or tags. At least one of tagged, nottagged, or intitle must be specified. tags: - Search parameters: - $ref: '#/components/parameters/site' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pagesize' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/sort' - name: intitle in: query schema: type: string description: Search within question titles - $ref: '#/components/parameters/tagged' - name: nottagged in: query schema: type: string description: Exclude questions with these semicolon-delimited tags - $ref: '#/components/parameters/filter' responses: '200': description: Questions matching the search query content: application/json: schema: $ref: '#/components/schemas/QuestionsResponse' '400': $ref: '#/components/responses/BadRequest' /search/advanced: get: operationId: searchAdvanced summary: Advanced Question Search description: Searches for questions using advanced filtering options including accepted answers, minimum score, body text, and view count filters. tags: - Search parameters: - $ref: '#/components/parameters/site' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pagesize' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/sort' - name: q in: query schema: type: string description: Full-text search query - name: accepted in: query schema: type: boolean description: Filter for questions that have accepted answers - name: answers in: query schema: type: integer description: Minimum number of answers - name: body in: query schema: type: string description: Text that must appear in the question body - name: closed in: query schema: type: boolean description: Filter for closed or open questions - name: migrated in: query schema: type: boolean description: Filter for migrated questions - name: notice in: query schema: type: boolean description: Filter for questions with a post notice - name: nottagged in: query schema: type: string description: Exclude questions with these tags (semicolon-delimited) - $ref: '#/components/parameters/tagged' - name: title in: query schema: type: string description: Text that must appear in the question title - name: user in: query schema: type: integer description: Filter by user ID of the question owner - name: views in: query schema: type: integer description: Minimum number of question views - name: wiki in: query schema: type: boolean description: Filter for community wiki questions - $ref: '#/components/parameters/filter' responses: '200': description: Questions matching the advanced search criteria content: application/json: schema: $ref: '#/components/schemas/QuestionsResponse' /similar: get: operationId: findSimilarQuestions summary: Find Similar Questions description: Returns questions that are similar to the question with the given title. Useful for finding existing related questions before asking a new one. tags: - Search parameters: - $ref: '#/components/parameters/site' - name: title in: query required: true schema: type: string description: The title of the question to find similar questions for - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/pagesize' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/tagged' - $ref: '#/components/parameters/filter' responses: '200': description: Questions similar to the provided title content: application/json: schema: $ref: '#/components/schemas/QuestionsResponse' components: schemas: Question: type: object description: A question on a Stack Exchange site properties: question_id: type: integer description: Unique identifier of the question title: type: string description: The title of the question body: type: string description: The HTML body of the question body_markdown: type: string description: The Markdown body of the question score: type: integer description: The net vote score of the question view_count: type: integer description: Number of times the question has been viewed answer_count: type: integer description: Number of answers the question has received accepted_answer_id: type: integer description: ID of the accepted answer if one exists is_answered: type: boolean description: Whether the question has an accepted answer creation_date: type: integer description: Unix timestamp of when the question was created last_activity_date: type: integer description: Unix timestamp of the last activity on the question last_edit_date: type: integer description: Unix timestamp of the last edit owner: $ref: '#/components/schemas/ShallowUser' tags: type: array items: type: string description: Tags associated with the question link: type: string format: uri description: Link to the question page closed_reason: type: string description: Reason the question was closed if applicable closed_date: type: integer description: Unix timestamp of when the question was closed bounty_amount: type: integer description: Bounty amount if an active bounty exists bounty_closes_date: type: integer description: Unix timestamp when the bounty closes QuestionsResponse: allOf: - $ref: '#/components/schemas/Wrapper' - type: object properties: items: type: array items: $ref: '#/components/schemas/Question' ErrorResponse: type: object properties: error_id: type: integer description: Numeric error identifier error_message: type: string description: Human-readable error description error_name: type: string description: Machine-readable error name ShallowUser: type: object description: A shallow representation of a Stack Exchange user properties: user_id: type: integer description: Unique identifier of the user display_name: type: string description: The user's display name reputation: type: integer description: The user's reputation score user_type: type: string enum: - unregistered - registered - moderator - named_moderator - team_admin description: The type of user account profile_image: type: string format: uri description: URL of the user's profile image link: type: string format: uri description: Link to the user's profile page accept_rate: type: integer description: Percentage of questions the user has accepted answers for Wrapper: type: object description: Standard Stack Exchange API response wrapper containing items, pagination info, and backoff/quota information. properties: items: type: array description: The list of items returned items: type: object has_more: type: boolean description: Whether there are more results available quota_max: type: integer description: Maximum number of requests allowed per day quota_remaining: type: integer description: Number of requests remaining for today backoff: type: integer description: Number of seconds to wait before making additional requests if the API has asked for backoff total: type: integer description: Total number of items available page: type: integer description: Current page number page_size: type: integer description: Number of items per page type: type: string description: The type of items in the response error_id: type: integer description: Error identifier if an error occurred error_message: type: string description: Human-readable error description error_name: type: string description: Machine-readable error name parameters: order: name: order in: query schema: type: string enum: - asc - desc default: desc description: Sort order for results site: name: site in: query required: true schema: type: string default: stackoverflow description: The Stack Exchange site to query. Use the API name of the site, e.g., stackoverflow, serverfault, superuser. example: stackoverflow filter: name: filter in: query schema: type: string description: A filter to control which fields are returned in the response. Use the /filter endpoint to create custom filters. page: name: page in: query schema: type: integer minimum: 1 default: 1 description: The page number to return (1-indexed) pagesize: name: pagesize in: query schema: type: integer minimum: 0 maximum: 100 default: 30 description: Number of results to return per page (max 100) sort: name: sort in: query schema: type: string description: The field to sort results by (varies by endpoint) tagged: name: tagged in: query schema: type: string description: Semicolon-delimited list of tags to filter by responses: BadRequest: description: Bad request due to missing or invalid parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 authentication for Stack Exchange API. Register an application at http://stackapps.com/apps/oauth to obtain client credentials. flows: authorizationCode: authorizationUrl: https://stackoverflow.com/oauth tokenUrl: https://stackoverflow.com/oauth/access_token/json scopes: no_expiry: Issues an access token that does not expire write_access: Allows write access to a user's data private_info: Access a user's private information externalDocs: description: Stack Exchange API Documentation url: https://api.stackexchange.com/docs