ValueSERP Search API

Google organic web search results.

OpenAPI Specification

valueserp-search-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ValueSERP Images Search API
  description: Real-time Google SERP data API supporting organic search, shopping, news, images, places, and product results via simple GET requests authenticated with an API key. Returns structured JSON with organic results, ads, knowledge graphs, answer boxes, AI overviews, and more. Operated by Traject Data.
  version: '1.0'
  contact:
    name: ValueSERP Support
    url: https://trajectdata.com/serp/value-serp-api/
  termsOfService: https://trajectdata.com/serp/value-serp-api/
  x-api-id: valueserp-search
servers:
- url: https://api.valueserp.com
  description: ValueSERP Production API
security:
- apiKeyQuery: []
tags:
- name: Search
  description: Google organic web search results.
paths:
  /search:
    get:
      operationId: googleSearch
      summary: Google Search (Organic)
      description: Retrieve real-time Google organic search results for a given keyword. Returns organic listings, ads, knowledge graph data, answer boxes, AI overviews, related questions, and more.
      tags:
      - Search
      parameters:
      - $ref: '#/components/parameters/api_key'
      - $ref: '#/components/parameters/q'
      - $ref: '#/components/parameters/location'
      - $ref: '#/components/parameters/location_auto'
      - $ref: '#/components/parameters/google_domain'
      - $ref: '#/components/parameters/gl'
      - $ref: '#/components/parameters/hl'
      - $ref: '#/components/parameters/lr'
      - $ref: '#/components/parameters/cr'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/max_page'
      - $ref: '#/components/parameters/safe'
      - $ref: '#/components/parameters/nfpr'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/tbs'
      - $ref: '#/components/parameters/uule'
      - $ref: '#/components/parameters/time_period'
      - $ref: '#/components/parameters/time_period_min'
      - $ref: '#/components/parameters/time_period_max'
      - $ref: '#/components/parameters/knowledge_graph_id'
      - name: include_ai_overview
        in: query
        required: false
        schema:
          type: boolean
        description: Adds Google's AI overview content to the response. Costs 1 additional credit when an AI overview is returned.
      - name: include_ai_overview_paa
        in: query
        required: false
        schema:
          type: boolean
        description: Includes AI overview answers in related questions (People Also Ask). Costs 1 credit per overview.
      - name: include_answer_box
        in: query
        required: false
        schema:
          type: boolean
        description: When true, includes the featured snippet/answer box as the first item in organic results.
      - name: flatten_results
        in: query
        required: false
        schema:
          type: boolean
        description: Flattens inline videos, inline images, and other inline content blocks so they appear inline in results.
      - name: fields
        in: query
        required: false
        schema:
          type: string
        description: Comma-separated list of top-level response objects to return (web-only feature). Reduces response size.
        example: organic_results,knowledge_graph
      - name: order_online
        in: query
        required: false
        schema:
          type: boolean
        description: Returns pickup/delivery ordering info for restaurants (US only). Costs 2 credits instead of 1.
      - name: ads_optimized
        in: query
        required: false
        schema:
          type: boolean
        description: Optimizes ad return rates in the response. Costs 3 additional credits.
      responses:
        '200':
          description: Successful search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
              example:
                request_info:
                  success: true
                search_metadata:
                  id: SEARCH_ID
                  google_url: https://www.google.com/search?q=pizza
                  total_time_taken: 1.23
                search_parameters:
                  q: pizza
                  gl: us
                  hl: en
                organic_results:
                - position: 1
                  title: Best Pizza Recipes
                  link: https://example.com/pizza
                  domain: example.com
                  snippet: Find the best pizza recipes here.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  parameters:
    hl:
      name: hl
      in: query
      required: false
      schema:
        type: string
        default: en
      description: Determines the Google UI language to return results in. BCP-47 language code.
      example: en
    safe:
      name: safe
      in: query
      required: false
      schema:
        type: string
        enum:
        - active
        - 'off'
      description: Safe search filter setting.
      example: active
    uule:
      name: uule
      in: query
      required: false
      schema:
        type: string
      description: Custom Google UULE parameter to override the location.
    lr:
      name: lr
      in: query
      required: false
      schema:
        type: string
      description: Limits results to pages in the specified language.
      example: lang_en
    location_auto:
      name: location_auto
      in: query
      required: false
      schema:
        type: boolean
        default: true
      description: When true, automatically updates gl and hl parameters based on the built-in location value. Defaults to true.
    time_period_min:
      name: time_period_min
      in: query
      required: false
      schema:
        type: string
        pattern: ^\d{2}/\d{2}/\d{4}$
      description: Custom time period start date in MM/DD/YYYY format. Required when time_period=custom.
      example: 01/01/2024
    google_domain:
      name: google_domain
      in: query
      required: false
      schema:
        type: string
        default: google.com
      description: The Google domain to use for the search.
      example: google.com
    filter:
      name: filter
      in: query
      required: false
      schema:
        type: integer
        enum:
        - 0
        - 1
        default: 1
      description: Toggle similar/omitted result filters. 1 enables filtering (default), 0 disables it.
      example: 1
    location:
      name: location
      in: query
      required: false
      schema:
        type: string
      description: Geographic location for the search. Accepts location names (e.g., "manhattan,new york,united states") or GPS coordinates (e.g., "lat 43.437677,lon 3.8392765").
      example: united states
    page:
      name: page
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        default: 1
      description: The results page number to retrieve. Defaults to 1.
      example: 1
    nfpr:
      name: nfpr
      in: query
      required: false
      schema:
        type: integer
        enum:
        - 0
        - 1
      description: Exclude auto-corrected spelling results. Set to 1 to exclude, 0 to include (default).
      example: 0
    gl:
      name: gl
      in: query
      required: false
      schema:
        type: string
        default: us
      description: Determines the Google country to use for the query. ISO 3166-1 alpha-2 country code.
      example: us
    cr:
      name: cr
      in: query
      required: false
      schema:
        type: string
      description: Limits results to pages from the specified country.
      example: countryUS
    tbs:
      name: tbs
      in: query
      required: false
      schema:
        type: string
      description: Custom Google TBS parameter value for advanced filtering.
    api_key:
      name: api_key
      in: query
      required: true
      schema:
        type: string
      description: Your ValueSERP API key. Use "demo" for testing limited queries.
      example: demo
    knowledge_graph_id:
      name: knowledge_graph_id
      in: query
      required: false
      schema:
        type: string
      description: Specific Google Knowledge Graph entity ID.
      example: /m/0jg24
    time_period:
      name: time_period
      in: query
      required: false
      schema:
        type: string
        enum:
        - last hour
        - last day
        - last week
        - last month
        - last year
        - custom
      description: Filter results by time period.
      example: last week
    time_period_max:
      name: time_period_max
      in: query
      required: false
      schema:
        type: string
        pattern: ^\d{2}/\d{2}/\d{4}$
      description: Custom time period end date in MM/DD/YYYY format. Required when time_period=custom.
      example: 12/31/2024
    q:
      name: q
      in: query
      required: true
      schema:
        type: string
      description: The keyword or search query to use.
      example: pizza
    max_page:
      name: max_page
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
      description: Retrieve multiple result pages in a single API request. Specifies the maximum page number to retrieve.
      example: 3
  schemas:
    AnswerBox:
      type: object
      description: Featured snippet / answer box data.
      properties:
        type:
          type: string
          description: Type of answer box (e.g., organic, list, table).
        title:
          type: string
          description: Answer box title.
        answer:
          type: string
          description: The direct answer text.
        link:
          type: string
          format: uri
          description: Source URL for the answer.
    ErrorResponse:
      type: object
      description: Error response body.
      properties:
        request_info:
          type: object
          properties:
            success:
              type: boolean
              example: false
            message:
              type: string
              description: Human-readable error message.
    RequestInfo:
      type: object
      description: Meta-information about the API request status.
      properties:
        success:
          type: boolean
          description: Whether the request was processed successfully.
        message:
          type: string
          description: Status message (present on errors or incidents).
        credits_used:
          type: integer
          description: Number of credits consumed by this request.
        credits_remaining:
          type: integer
          description: Number of credits remaining in the account.
    SearchParameters:
      type: object
      description: Echo of the parameters used for the search.
      properties:
        q:
          type: string
          description: The search query keyword used.
        search_type:
          type: string
          description: The type of search performed.
        gl:
          type: string
          description: Country code used.
        hl:
          type: string
          description: Language code used.
        google_domain:
          type: string
          description: Google domain used.
    SearchResponse:
      type: object
      description: Google organic search results response.
      properties:
        request_info:
          $ref: '#/components/schemas/RequestInfo'
        search_metadata:
          $ref: '#/components/schemas/SearchMetadata'
        search_parameters:
          $ref: '#/components/schemas/SearchParameters'
        organic_results:
          type: array
          items:
            $ref: '#/components/schemas/OrganicResult'
          description: Organic search result listings.
        ads:
          type: array
          items:
            $ref: '#/components/schemas/AdResult'
          description: Paid advertisement results.
        knowledge_graph:
          $ref: '#/components/schemas/KnowledgeGraph'
        answer_box:
          $ref: '#/components/schemas/AnswerBox'
        related_questions:
          type: array
          items:
            $ref: '#/components/schemas/RelatedQuestion'
          description: People Also Ask related questions.
        related_searches:
          type: array
          items:
            type: object
            properties:
              query:
                type: string
                description: Related search query text.
              link:
                type: string
                format: uri
          description: Related searches suggested by Google.
        pagination:
          type: object
          properties:
            current:
              type: integer
              description: Current page number.
            next:
              type: string
              format: uri
              description: URL for the next page of results.
            other_pages:
              type: object
              additionalProperties:
                type: string
              description: Map of page numbers to page URLs.
    SearchMetadata:
      type: object
      description: Metadata about the search execution.
      properties:
        id:
          type: string
          description: Unique identifier for this search request.
        google_url:
          type: string
          format: uri
          description: The Google URL that was scraped to generate results.
        total_time_taken:
          type: number
          format: float
          description: Total time taken to process the request in seconds.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the search was created.
    AdResult:
      type: object
      description: A paid advertisement result.
      properties:
        position:
          type: integer
          description: Ad position.
        title:
          type: string
          description: Ad headline.
        link:
          type: string
          format: uri
          description: Ad destination URL.
        display_link:
          type: string
          description: Display URL shown in the ad.
        snippet:
          type: string
          description: Ad description text.
    KnowledgeGraph:
      type: object
      description: Google Knowledge Graph panel data.
      properties:
        title:
          type: string
          description: Entity name.
        type:
          type: string
          description: Entity type or category.
        description:
          type: string
          description: Brief description of the entity.
        source:
          type: object
          properties:
            name:
              type: string
            link:
              type: string
              format: uri
        image:
          type: object
          properties:
            src:
              type: string
              format: uri
            alt:
              type: string
    RelatedQuestion:
      type: object
      description: A People Also Ask related question.
      properties:
        question:
          type: string
          description: The related question text.
        answer:
          type: string
          description: Answer text for the question.
        link:
          type: string
          format: uri
          description: Source URL for the answer.
    OrganicResult:
      type: object
      description: A single organic search result.
      properties:
        position:
          type: integer
          description: Position/rank of the result on the page.
        title:
          type: string
          description: Title of the result.
        link:
          type: string
          format: uri
          description: URL of the result.
        domain:
          type: string
          description: Domain of the result URL.
        snippet:
          type: string
          description: Text snippet/excerpt from the result page.
        cached_page_link:
          type: string
          format: uri
          description: Link to Google's cached version of the page.
        related_pages_link:
          type: string
          format: uri
          description: Link to related pages on the same domain.
        sitelinks:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              link:
                type: string
                format: uri
          description: Sitelinks shown beneath the result.
  responses:
    InternalServerError:
      description: Internal Server Error - Retry after a delay; contact support if the issue persists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    PaymentRequired:
      description: Payment Required - Your ValueSERP account has run out of available credits or there is a payment issue.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized - The api_key supplied is not valid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad Request - Invalid parameters or unsupported parameter combinations.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServiceUnavailable:
      description: Service Unavailable - Returned during parsing incidents. Requests are not charged. Use skip_on_incident=true to opt out automatically.
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds to wait before retrying.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Too Many Requests - Your plan's rate limit has been exceeded.
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds to wait before retrying.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    apiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: API key for authentication. Pass as the api_key query parameter. Use "demo" as the key for testing.