Real-time search request

A real-time request allows users to collect data from the search of a single search term. The collected data is returned directly to the user performing the request. The Nimble SERP API currently supports the following search engines:

To send a request, use the /realtime/serp endpoint with the following syntax:

Nimble APIs requires that a base64 encoded credential string be sent with every request to authenticate your account. For detailed examples, see Web API Authentication.

curl -X POST 'https://api.webit.live/api/v1/realtime/serp' \
--header 'Authorization: Basic <credential string>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "search_engine": "google_search",
    "country": "US",
    "query": "Sample search phrase"
}'

Every request sent through Nimble API is automatically routed through Nimble IP - our premium proxy network!

Request Options

ParameterRequiredTypeDescription

query

Required

String

The term or phrase to search for.

search_engine

Required

Enum: google_search

google_sge

bing_search

yandex_search

The search engine from which to collect results.

tab

Optional (default = null)

Enum: news

Select the tab of results to return from google_search engine. Currently, news is supported.

num_results

Optional

Integer

Set the mount of retuned search results

domain

Optional

String

Search through a custom top-level domain of Google. eg: "co.uk"

country

Optional (default = all)

String

Country used to access the target URL, use ISO Alpha-2 Country Codes i.e. US, DE, GB

state

Optional

String

For targeting US states (does not include regions or territories in other countries). Two-letter state code, e.g. NY, IL, etc.

city

Optional

String

For targeting large cities and metro areas around the globe. When targeting major US cities, you must include state as well. Click here for a list of available cities.

locale

Optional (default = en)

String

String | LCID standard locale used for the URL request. Alternatively, user can use auto for automatic locale based on country targeting.

location

Optional

String

Search Google through a custom geolocation, regardless of country or proxy location. eg: "London,Ohio,United States". See Getting local data for more information.

parse

Optional (default = true)

Boolean

Instructs Nimble whether to structure the results into a JSON format or return the raw HTML.

ads_optimization

Optional (default = false)

Boolean

This flag increases the number of paid ads (sponsored ads) in the results. It works by running the requests in 'incognito' mode.

Response

Headers

X-Task-ID: string

Payload examples:

If parsing is disabled, the resulting data will be the raw HTML of the requested SERP. If parsing is enabled, a JSON object with a parsed version of the SERP will be delivered in addition to the raw HTML, which is contained under the html_content property.

200 OK

{
  "status": "success",
  "html_content": "<html>The SERP's full HTML</html>",
  "parsing": {
    "status": "success",
    "entities": {
      "InlineVideos": [
        {
          "entityType": "InlineVideos",
          "videos": [
            {
              "channel": "FilmsActu",
              "date": "15 nov. 2021",
              "length": "1:52",
              "source": "YouTube",
              "thumbnail": "https://i.ytimg.com/vi/b1r_UR5-0tY/mqdefault.jpg?sqp=-oaymwEECHwQRg&rs=AMzJL3kXJ1udP5Pc4cVSVd0uvOsYe0mTCg",
              "title": "LE TEST Bande Annonce (2021)",
              "url": "https://www.youtube.com/watch?v=b1r_UR5-0tY"
            },
                        ...
          ]
        }
      ],
      "OrganicResult": [
        {
          "displayed_url": "https://fr.wikipedia.org › wiki › Test",
          "entityType": "OrganicResult",
          "position": 1,
          "sitelinks": [
            {
              "title": "Test (méthode) - Wikipédiahttps://fr.wikipedia.org › wiki › Test_(méthode)",
              "url": "https://fr.wikipedia.org/wiki/Test_(m%C3%A9thode)"
            }
          ],
          "snippet": "Le mot test est polysémique en français et issu de deux étymologies latines distinctes : testis (témoin) et testa (récipient rond).",
          "title": "Test - Wikipédia",
          "url": "https://fr.wikipedia.org/wiki/Test"
        },
        ...
            "Pagination": [
        {
          "current_page": 1,
          "entityType": "Pagination",
          "next_page_url": "/search?q=test&hl=fr&ei=6GvmYtLMIYKOlwS3wLTgDA&start=10&sa=N&ved=2ahUKEwjS4LSgh6P5AhUCx4UKHTcgDcwQ8NMDegQIAhBP",
          "other_page_urls": {
            "2": "/search?q=test&hl=fr&ei=6GvmYtLMIYKOlwS3wLTgDA&start=10&sa=N&ved=2ahUKEwjS4LSgh6P5AhUCx4UKHTcgDcwQ8tMDegQIAhA9",
            ...
          }
        }
      ],
        "RelatedSearch": [
        {
          "entityType": "RelatedSearch",
          "query": "test quiz",
          "url": "/search?hl=fr&q=Test+quiz&sa=X&ved=2ahUKEwjS4LSgh6P5AhUCx4UKHTcgDcwQ1QJ6BAglEAE"
        },
            ],
            "SearchInformation": [
        {
          "entityType": "SearchInformation",
          "query_displayed": "Sample search phrase",
          "total_results": "Environ 15 850 000 000 résultats "
        }
      ]
    },
    "total_entities_count": 19,
    "entities_count": {
      "InlineVideos": 1,
      "OrganicResult": 8,
      "Pagination": 1,
      "RelatedSearch": 8,
      "SearchInformation": 1
    },
    "metrics": {}
  },
  "url": "https://www.google.com/search?q=Sample+search+phrase&hl=fr",
  "nimble_pagination": {
    "next_page_url": "https://api.webit.live/api/v1/realtime/serp?parse=true&query=test&search_engine=google_search&format=json&render=false&country=FR&locale=fr&ei=vPBQZLakI86ckdUPwOuB6A0&sa=N&ved=2ahUKEwi28uXqwNb-AhVOTqQEHcB1AN0Q8NMDegQIBxAW&start=10",
    "other_pages": [
      "https://api.webit.live/api/v1/realtime/serp?parse=true&query=test&search_engine=google_search&format=json&render=false&country=FR&locale=fr&ei=vPBQZLakI86ckdUPwOuB6A0&sa=N&ved=2ahUKEwi28uXqwNb-AhVOTqQEHcB1AN0Q8tMDegQIBxAE&start=10",
      "https://api.webit.live/api/v1/realtime/serp?parse=true&query=test&search_engine=google_search&format=json&render=false&country=FR&locale=fr&ei=vPBQZLakI86ckdUPwOuB6A0&sa=N&ved=2ahUKEwi28uXqwNb-AhVOTqQEHcB1AN0Q8tMDegQIBxAG&start=20",
      ...
      ]
    }
}

500 Error

{
          "status": "error",
        "task_id": "<task_id>",
        "msg": "can't download the query response - please try again"
}

400 Input Error

{
        "status": "failed",
        "msg": error
}

Response Codes

StatusDescription

200

OK.

400

The requested resource could not be reached.

401

Unauthorized/invalid credental string

500

Internal service error.

501

An error was encountered by the proxy service.

Last updated