---
title: "Get Google Organic SERP Results by id"
url: "https://docs.dataforseo.com/v3/serp/google/organic/task_get/regular/"
date: "2026-06-06"
---

## Get Google Organic SERP Results by id

 

 

 ![checked](https://docs.dataforseo.com/v3/wp-content/themes/dataforseo/assets/img/icons/checked-circle.svg) GET  https://api.dataforseo.com/v3/serp/google/organic/task\_get/regular/$id     

      

Pricing

  Your account will be charged only for posting a task. You can get the results of the task within the next 30 days for free.  
The cost can be calculated on the [Pricing](https://dataforseo.com/pricing/serp/google-organic-serp-api "Pricing") page.

 

 **Description of the fields for sending a request:**

| Field name | Type | Description |
|---|---|---|
| `id` | string | *task identifier*   **unique task identifier in our system in the [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format**   you will be able to use it within **30 days** to request the results of the task at any time |

  
As a response of the API server, you will receive [JSON](https://en.wikipedia.org/wiki/JSON)-encoded data containing a `tasks` array with the information specific to the set tasks.

You can also get all available SERP features by making a request to the following [Sandbox](https://docs.dataforseo.com/v3/appendix/sandbox.md) URL:  
`https://sandbox.dataforseo.com/v3/serp/google/organic/task_get/regular/00000000-0000-0000-0000-000000000000`  
The response will include all available items in the Google Organic SERP Regular endpoint with the fields containing dummy data.  
You won’t be charged for using [Sandbox](https://docs.dataforseo.com/v3/appendix/sandbox.md) endpoints.

**Description of the fields in the results array:**

| Field name | Type | Description |
|---|---|---|
| `version` | string | *the current version of the API* |
| `status_code` | integer | *general status code*   you can find the full list of the response codes [here](https://docs.dataforseo.com/v3/appendix/errors.md)   **Note:** we strongly recommend designing a necessary system for handling related exceptional or error conditions |
| `status_message` | string | *general informational message*   you can find the full list of general informational messages [here](https://docs.dataforseo.com/v3/appendix/errors.md) |
| `time` | string | *execution time, seconds* |
| `cost` | float | *total *tasks* cost, USD* |
| `tasks_count` | integer | *the number of tasks in the **`tasks`** array* |
| `tasks_error` | integer | *the number of tasks in the **`tasks`** array that were returned an error* |
| **`tasks`** | array | *array of tasks* |
| `id` | string | *task identifier*   **unique task identifier in our system in the [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) format** |
| `status_code` | integer | *status code of the task*   generated by DataForSEO; can be within the following range: 10000-60000   you can find the full list of the response codes [here](https://docs.dataforseo.com/v3/appendix/errors.md) |
| `status_message` | string | *informational message of the task*   you can find the full list of general informational messages [here](https://docs.dataforseo.com/v3/appendix/errors.md) |
| `time` | string | *execution time, seconds* |
| `cost` | float | *cost of the task, USD* |
| `result_count` | integer | *number of elements in the `result` array* |
| `path` | array | *URL path* |
| `data` | object | *contains the same parameters that you specified in the POST request* |
| **`result`** | array | *array of results* |
| `keyword` | string | *keyword received in a POST array*   **keyword is returned with decoded %## (plus symbol ‘+’ will be decoded to a space character)** |
| `type` | string | *search engine type in a POST array* |
| `se_domain` | string | *search engine domain in a POST array* |
| `location_code` | integer | *location code in a POST array* |
| `language_code` | string | *language code in a POST array* |
| `check_url` | string | *direct URL to search engine results*   you can use it to make sure that we provided accurate results |
| `datetime` | string | *date and time when the result was received*   in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”   example:   `2019-11-15 12:57:46 +00:00` |
| `spell` | object | *autocorrection of the search engine*   if the search engine provided results for a keyword that was corrected, we will specify the keyword corrected by the search engine and the type of autocorrection;   if there is none, the value is `null` |
| `keyword` | string | *keyword obtained as a result of search engine autocorrection*   the results will be provided for the corrected keyword |
| `type` | string | *type of autocorrection*   possible values:   `did_you_mean`, `showing_results_for`, `no_results_found_for`, `including_results_for`   **note:** Yahoo supports only the following autocorrection type:   `including_results_for` |
| `refinement_chips` | object | *search refinement chips*   if there are none, the value is `null` |
| `type` | string | *type of element = **‘refinement\_chips’*** |
| `xpath` | string | *the [XPath](https://en.wikipedia.org/wiki/XPath) of the element* |
| `items` | array | *items of the element* |
| `type` | string | *type of element = **‘refinement\_chips\_element’*** |
| `title` | string | *title of the element* |
| `url` | string | *search URL with refinement parameters* |
| `domain` | string | *domain in SERP* |
| `options` | array | *further search refinement options* |
| `type` | string | *type of element = **‘refinement\_chips\_option’*** |
| `title` | string | *title of the element* |
| `url` | string | *search URL with refinement parameters* |
| `domain` | string | *domain in SERP* |
| `item_types` | array | *types of search results found in SERP*   contains types of all search results (`items`) found in the returned SERP   possible item types:   `answer_box`, `app`, `carousel`, `multi_carousel`, `featured_snippet`, `google_flights`, `google_reviews`, `third_party_reviews`, `google_posts`, `images`, `jobs`, `knowledge_graph`, `local_pack`, `hotels_pack`, `map`, `organic`, `paid`, `people_also_ask`, `related_searches`, `people_also_search`, `shopping`, `top_stories`, `twitter`, `video`, `events`, `mention_carousel`, `recipes`, `top_sights`, `scholarly_articles`, `popular_products`, `podcasts`, `questions_and_answers`, `find_results_on`, `stocks_box`, `visual_stories`, `commercial_units`, `local_services`, `google_hotels`, `math_solver`, `currency_box`, `product_considerations`, `found_on_web`, `short_videos`, `refine_products`, `explore_brands`, `perspectives`, `discussions_and_forums`, `compare_sites`, `courses`, `ai_overview`**note** that this array contains all types of search results found in the returned SERP;   however, this endpoint provides data for `featured_snippet`, `organic` and `paid` types only;   to get all items (including SERP features and rich snippets) found in the returned SERP, please refer to the [Google Organiс Advanced SERP](https://docs.dataforseo.com/v3/serp/google/organic/live/advanced.md) endpoint |
| `se_results_count` | integer | *total number of results in SERP* |
| `pages_count` | integer | *total search results pages retrieved*   total number of retrieved SERPs in the result |
| `items_count` | integer | *the number of results returned in the **`items`** array* |
| **`items`** | array | *items in SERP* |
| **‘organic’ element in SERP** |  |  |
| `type` | string | *type of element = **‘organic’*** |
| `rank_group` | integer | *group rank in SERP*   position within a group of elements with identical `type` values   positions of elements with different `type` values are omitted from `rank_group` |
| `rank_absolute` | integer | *absolute rank in SERP*   absolute position among all the elements found in SERP**note** values are returned in the ascending order, with values corresponding to advanced SERP features omitted from the results;   to get all items (including SERP features and rich snippets) with their positions, please refer to the [Google Organiс Advanced SERP](https://docs.dataforseo.com/v3/serp/google/organic/live/advanced.md) endpoint |
| `page` | integer | *search results page number*   indicates the number of the SERP page on which the element is located |
| `domain` | string | *domain in SERP* |
| `title` | string | *title of the results element in SERP* |
| `description` | string | *description of the results element in SERP* |
| `url` | string | *relevant URL in SERP* |
| `breadcrumb` | string | *breadcrumb in SERP* |
| **‘paid’ element in SERP** |  |  |
| `type` | string | *type of element = **‘paid’*** |
| `rank_group` | integer | *group rank in SERP*   position within a group of elements with identical `type` values   positions of elements with different `type` values are omitted from `rank_group` |
| `rank_absolute` | integer | *absolute rank in SERP*   absolute position among all the elements found in SERP**note** values are returned in the ascending order, with values corresponding to advanced SERP features omitted from the results;   to get all items (including SERP features and rich snippets) with their positions, please refer to the [Google Organiс Advanced SERP](https://docs.dataforseo.com/v3/serp/google/organic/live/advanced.md) endpoint |
| `page` | integer | *search results page number*   indicates the number of the SERP page on which the element is located |
| `title` | string | *title of the ad element in SERP* |
| `domain` | string | *domain of the ad element in SERP* |
| `description` | string | *description of the ad element in SERP* |
| `url` | string | *relevant URL of the ad element in SERP* |
| `breadcrumb` | string | *breadcrumb of the ad element in SERP* |
| **‘featured\_snippet’ element in SERP** |  |  |
| `type` | string | *type of element = **‘featured\_snippet’*** |
| `rank_group` | integer | *group rank in SERP*   position within a group of elements with identical `type` values   positions of elements with different `type` values are omitted from `rank_group` |
| `rank_absolute` | integer | *absolute rank in SERP*   absolute position among all the elements found in SERP**note** values are returned in the ascending order, with values corresponding to advanced SERP features omitted from the results;   to get all items (including SERP features and rich snippets) with their positions, please refer to the [Google Organiс Advanced SERP](https://docs.dataforseo.com/v3/serp/google/organic/live/advanced.md) endpoint |
| `page` | integer | *search results page number*   indicates the number of the SERP page on which the element is located |
| `domain` | string | *domain in SERP* |
| `title` | string | *title of the result in SERP* |
| `description` | string | *description of the results element in SERP* |
| `url` | string | *relevant URL* |
| `breadcrumb` | string | always equals `null` |



 

 









> Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-access

```
# Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access 
login="login" 
password="password" 
cred="$(printf ${login}:${password} | base64)" 
id="09171517-0696-0242-0000-a96bc1ad0bce" 
curl --location --request GET "https://api.dataforseo.com/v3/serp/google/organic/task_get/regular/${id}" 
--header "Authorization: Basic ${cred}"  
--header "Content-Type: application/json" 
--data-raw ""
```





```php
<?php
// You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip
require('RestClient.php');
$api_url = 'https://api.dataforseo.com/';
try {
	// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
	$client = new RestClient($api_url, null, 'login', 'password');
} catch (RestClientException $e) {
	echo "n";
	print "HTTP code: {$e->getHttpCode()}n";
	print "Error code: {$e->getCode()}n";
	print "Message: {$e->getMessage()}n";
	print  $e->getTraceAsString();
	echo "n";
	exit();
}
try {
	$result = array();
	// #1 - using this method you can get a list of completed tasks
	// GET /v3/serp/google/organic/tasks_ready
	// in addition to 'google' and 'organic' you can also set other search engine and type parameters
	// the full list of possible parameters is available in documentation
	$tasks_ready = $client->get('/v3/serp/google/organic/tasks_ready');
	// you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
	if (isset($tasks_ready['status_code']) AND $tasks_ready['status_code'] === 20000) {
		foreach ($tasks_ready['tasks'] as $task) {
			if (isset($task['result'])) {
				foreach ($task['result'] as $task_ready) {
					// #2 - using this method you can get results of each completed task
					// GET /v3/serp/google/organic/task_get/regular/$id
					if (isset($task_ready['endpoint_regular'])) {
						$result[] = $client->get($task_ready['endpoint_regular']);
					}
					// #3 - another way to get the task results by id
					// GET /v3/serp/google/organic/task_get/regular/$id
					/*
					if (isset($task_ready['id'])) {
						$result[] = $client->get('/v3/serp/google/organic/task_get/regular/' . $task_ready['id']);
					}
					*/
				}
			}
		}
	}
	print_r($result);
	// do something with result
} catch (RestClientException $e) {
	echo "n";
	print "HTTP code: {$e->getHttpCode()}n";
	print "Error code: {$e->getCode()}n";
	print "Message: {$e->getMessage()}n";
	print  $e->getTraceAsString();
	echo "n";
}
$client = null;
?>
```





```js
const task_id = '02201650-1073-0066-2000-1d132bb28897';

const axios = require('axios');

axios({
    method: 'get',
    url: 'https://api.dataforseo.com/v3/serp/google/organic/task_get/regular/' + task_id,
    auth: {
        username: 'login',
        password: 'password'
    },
    headers: {
        'content-type': 'application/json'
    }
}).then(function (response) {
    var result = response['data']['tasks'];
    // Result data
    console.log(result);
}).catch(function (error) {
    console.log(error);
});
```





```python
from client import RestClient
# You can download this file from here https://cdn.dataforseo.com/v3/examples/python/python_Client.zip
client = RestClient("login", "password")
# 1 - using this method you can get a list of completed tasks
# GET /v3/serp/google/organic/tasks_ready
# in addition to 'google' and 'organic' you can also set other search engine and type parameters
# the full list of possible parameters is available in documentation
response = client.get("/v3/serp/google/organic/tasks_ready")
# you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
if response['status_code'] == 20000:
    results = []
    for task in response['tasks']:
        if (task['result'] and (len(task['result']) > 0)):
            for resultTaskInfo in task['result']:
                # 2 - using this method you can get results of each completed task
                # GET /v3/serp/google/organic/regular/$id
                if(resultTaskInfo['endpoint_regular']):
                    results.append(client.get(resultTaskInfo['endpoint_regular']))                
                '''
                # 3 - another way to get the task results by id
                # GET /v3/serp/google/organic/task_get/regular/$id                
                if(resultTaskInfo['id']):
                    results.append(client.get("/v3/serp/google/organic/task_get/regular/" + resultTaskInfo['id']))
                '''
    print(results)
    # do something with result
else:
    print("error. Code: %d Message: %s" % (response["status_code"], response["status_message"]))
```





```csharp
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

namespace DataForSeoDemos
{
    public static partial class Demos
    {
        public static async Task serp_task_get()
        {
            var httpClient = new HttpClient
            {
                BaseAddress = new Uri("https://api.dataforseo.com/"),
                // Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
                DefaultRequestHeaders = { Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("login:password"))) }
            };
            // #1 - using this method you can get a list of completed tasks
            // GET /v3/serp/google/organic/tasks_ready
            // in addition to 'google' and 'organic' you can also set other search engine and type parameters
            // the full list of possible parameters is available in documentation
            var response = await httpClient.GetAsync("/v3/serp/google/organic/tasks_ready");
            var tasksInfo = JsonConvert.DeserializeObject<dynamic>(await response.Content.ReadAsStringAsync());
            var tasksResponses = new List<object>();
            // you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
            if (tasksInfo.status_code == 20000)
            {
                if (tasksInfo.tasks != null)
                {
                    foreach (var tasks in tasksInfo.tasks)
                    {
                        if (tasks.result != null)
                        {
                            foreach (var task in tasks.result)
                            {
                                if (task.endpoint_regular != null)
                                {
                                    // #2 - using this method you can get results of each completed task
                                    // GET /v3/serp/google/organic/task_get/regular/$id
                                    var taskGetResponse = await httpClient.GetAsync((string)task.endpoint_regular);
                                    var taskResultObj = JsonConvert.DeserializeObject<dynamic>(await taskGetResponse.Content.ReadAsStringAsync());
                                    if (taskResultObj.tasks != null)
                                    {
                                        var fst = taskResultObj.tasks.First;
                                        // you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
                                        if (fst.status_code >= 40000 || fst.result == null)
                                            Console.WriteLine($"error. Code: {fst.status_code} Message: {fst.status_message}");
                                        else
                                            tasksResponses.Add(fst.result);
                                    }
                                    // #3 - another way to get the task results by id
                                    // GET /v3/serp/google/organic/task_get/regular/$id
                                    /*
                                    var tasksGetResponse = await httpClient.GetAsync("/v3/serp/google/organic/task_get/regular/" + (string)task.id);
                                    var tasksResultObj = JsonConvert.DeserializeObject<dynamic>(await tasksGetResponse.Content.ReadAsStringAsync());
                                    if (tasksResultObj.tasks != null)
                                    {
                                        var fst = taskResultObj.tasks.First;
                                        // you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
                                        if (fst.status_code >= 40000 || fst.result == null)
                                            Console.WriteLine($"error. Code: {fst.status_code} Message: {fst.status_message}");
                                        else
                                            tasksResponses.Add(fst.result);
                                    }
                                    */
                                }
                            }
                        }
                    }
                }
                if (tasksResponses.Count > 0)
                    // do something with result
                    Console.WriteLine(String.Join(Environment.NewLine, tasksResponses));
                else
                    Console.WriteLine("No completed tasks");
            }
            else
                Console.WriteLine($"error. Code: {tasksInfo.status_code} Message: {tasksInfo.status_message}");
        }
    }
}
```





> The above command returns JSON structured like this:

```
{
  "version": "0.1.20200129",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.3059 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "11151456-0696-0066-0000-002a5915da37",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.0952 sec.",
      "cost": 0,
      "result_count": 1,
      "path": [
        "v3",
        "serp",
        "google",
        "organic",
        "task_get",
        "regular",
        "11151456-0696-0066-0000-002a5915da37"
      ],
      "data": {
        "api": "serp",
        "function": "task_get",
        "se": "google",
        "se_type": "organic",
        "language_code": "en",
        "location_code": 2840,
        "keyword": "flight ticket new york san francisco",
        "priority": "2",
        "tag": "tag2",
        "device": "desktop",
        "os": "windows"
      },
      "result": [
        {
          "keyword": "flight ticket new york san francisco",
          "type": "organic",
          "se_domain": "google.com",
          "location_code": 2840,
          "language_code": "en",
          "check_url": "https://www.google.com/search?q=flight%20ticket%20new%20york%20san%20francisco&num=100&hl=en&gl=US&gws_rd=cr&ie=UTF-8&oe=UTF-8&uule=w+CAIQIFISCQs2MuSEtepUEUK33kOSuTsc",
          "datetime": "2019-11-15 12:57:46 +00:00",
          "spell": null,
          "refinement_chips": {
            "type": "refinement_chips",
            "xpath": "/html[1]/body[1]/div[3]/div[1]/div[9]/div[1]/div[1]/div[3]/div[1]/div[1]",
            "items": [
              {
                "type": "refinement_chips_element",
                "title": "Remote",
                "url": "https://www.google.com/search?num=100&sca_esv=427163c40a0d98b7&hl=en&gl=US&glp=1&q=bristol+temp+agencies+remote&uds=ADvngMjcH0KdF7qGWtwTBrP0nt7drlQNXJ_q6WhUnfcnlFQAOVqvQ09aiEx7jUP4Wb5sg6FzKTGyEoBQg36hfgreicnnhtBQv8H25iRkUIMWBSqTcu0nGLObB57jKDn4sIHqgjkv6AqtXzA0gTV6n6-p1_aOUPMmYdgJOPy5xybgxI0ZY3-OZUg&sa=X&ved=2ahUKEwjEjMPzrvyIAxVgpIkEHYTyBqEQxKsJegQIHRAB&ictx=0",
                "domain": "www.google.com",
                "options": null
              },
              {
                "type": "refinement_chips_element",
                "title": "Date posted",
                "url": null,
                "domain": null,
                "options": [
                  {
                    "type": "refinement_chips_option",
                    "title": "Yesterday",
                    "url": "https://www.google.com/search?num=100&sca_esv=427163c40a0d98b7&hl=en&gl=US&glp=1&q=bristol+temp+agencies+since+yesterday&uds=ADvngMjcH0KdF7qGWtwTBrP0nt7d1cxhUU_4I1tnZ_YIEcACz8ZYvzwewv2vtaifFRGAtrClbFOcrHbTAbAeXm1jREcC6VS1VsCvY-sITnX4ozb-ILgfWEVwq_Z5ROUTUSIPShEnKXD5sUUbZbocrG609xSmt2d98g8y8m1lGjX2kp2G7tWTnMoyaYhx7tPHFsc1SlxiTTuylOmQpyaET98nEnMhDFUw8hSQnpfQcpEDEdBLwrOxN3gOZC4RtcHuKTyeCrFRnaDjQ17dNosh1yiBWrSXB9e1dQF-1Pt17wXCHwRUCH6wH0DbAN-oCNd7lMT2v24eI8rDkLQP3kTLpzGMUZReaWIAPw&sa=X&ved=2ahUKEwjEjMPzrvyIAxVgpIkEHYTyBqEQkbEKegQIDxAD",
                    "domain": "www.google.com"
                  },
                  {
                    "type": "refinement_chips_option",
                    "title": "Last 3 days",
                    "url": "https://www.google.com/search?num=100&sca_esv=427163c40a0d98b7&hl=en&gl=US&glp=1&q=bristol+temp+agencies+in+the+last+3+days&uds=ADvngMjcH0KdF7qGWtwTBrP0nt7dLQVdkfQJDu14-gF_eQoKa39tQdXyMUfu3HnnM3Pu4g5hOzwEez_H8t-yULnPJEgal7YGml0mtSaIuH3YeuIhPq5mBSo_ECo7hOJVwSRGkksXQg-RdTy8GhoT8Qm-ZFkyAQnSLmnlmv0Rm042YAlQ6JFqnfOW0VIOgTeTdYm6SLpzQ3a6YSvEf2tau3pEKxnGWKleL613vj0tLBWg4Jhsa0trdMkFPHDQYhc2caGQ8cmSYU4cqdB2Eq3PsNGgjgebvt7_7bbvjixC19O4L9ZB02rwY0EP30_mYAeTG9lYAx8ZJvGDslVLp0DHS93P8ynaiA7Bbw&sa=X&ved=2ahUKEwjEjMPzrvyIAxVgpIkEHYTyBqEQkbEKegQIDxAE",
                    "domain": "www.google.com"
                  }
                ]
              }
            ]
          },
          "item_types": [
            "featured_snippet",
            "organic",
            "paid",
            "ai_overview"
          ],
          "se_results_count": 85600000,
          "pages_count": 1,
          "items_count": 96,
          "items": [
            {
              "type": "paid",
              "rank_group": 1,
              "rank_absolute": 1,
              "page": 1,
              "domain": "www.bookingbuddy.com",
              "title": "Flights To Lwo | Unbelievably Cheap Flights | BookingBuddy.com‎",
              "description": "Compare Airlines & Sites. Cheap Flights on BookingBuddy, a TripAdvisor Company",
              "url": "https://www.bookingbuddy.com/en/hero/",
              "breadcrumb": "www.bookingbuddy.com/Flights"
            },
            {
              "type": "paid",
              "rank_group": 2,
              "rank_absolute": 2,
              "page": 1,
              "domain": "www.trip.com",
              "title": "Cheap Flight Tickets | Search & Find Deals on Flights | trip.com‎",
              "description": "Wide Selection of Cheap Flights Online. Explore & Save with Trip.com! Fast, Easy & Secure...",
              "url": "https://www.trip.com/flights/index?utm_campaign=GG_SE_All_en_Flight_Generic_NA_Phrase",
              "breadcrumb": "www.trip.com/"
            },
            {
              "type": "paid",
              "rank_group": 3,
              "rank_absolute": 4,
              "page": 1,
              "domain": "www.kayak.com",
              "title": "Find the Cheapest Flights | Search, Compare & Save Today‎",
              "description": "Cheap Flights, Airline Tickets and Flight Deals. Compare 100s of Airlines Worldwide. Search...",
              "url": "https://www.kayak.com/horizon/sem/flights/general",
              "breadcrumb": "www.kayak.com/flights"
            },
            {
              "type": "featured_snippet",
              "rank_group": 1,
              "rank_absolute": 5,
              "page": 1,
              "domain": "www.kayak.com",
              "title": "Cheap Flights from New York to San Francisco from $182 ...",
              "description": "Fly from New York to San Francisco on Frontier from $182, United Airlines from ... the cheapest round-trip tickets were found on Frontier ($182), United Airlines ...",
              "url": "https://www.kayak.com/flight-routes/New-York-NYC/San-Francisco-SFO",
              "breadcrumb": null
            },
            {
              "type": "organic",
              "rank_group": 1,
              "rank_absolute": 6,
              "page": 1,
              "domain": "www.skyscanner.com",
              "title": "Cheap flights from New York to San Francisco SFO from $123 ...",
              "description": "Flight information New York to San Francisco International .... tool will help you find the cheapest tickets from New York in San Francisco in just a few clicks.",
              "url": "https://www.skyscanner.com/routes/nyca/sfo/new-york-to-san-francisco-international.html",
              "breadcrumb": "https://www.skyscanner.com › United States › New York"
            },
            {
              "type": "organic",
              "rank_group": 2,
              "rank_absolute": 7,
              "page": 1,
              "domain": "www.expedia.com",
              "title": "JFK to SFO: Flights from New York to San Francisco for 2019 ...",
              "description": "Book your New York (JFK) to San Francisco (SFO) flight with our Best Price ... How much is a plane ticket to San Francisco (SFO) from New York (JFK)?.",
              "url": "https://www.expedia.com/lp/flights/jfk/sfo/new-york-to-san-francisco",
              "breadcrumb": "https://www.expedia.com › flights › jfk › sfo › new-york-to-san-francisco"
            },
            {
              "type": "organic",
              "rank_group": 94,
              "rank_absolute": 97,
              "page": 1,
              "domain": "www.ethiopianairlines.com",
              "title": "Ethiopian Airlines | Book your next flight online and Fly Ethiopian",
              "description": "Fly to your Favorite International Destination with Ethiopian Airlines. Book your Flights Online for Best Offers/Discounts and Enjoy African Flavored Hospitality.",
              "url": "https://www.ethiopianairlines.com/",
              "breadcrumb": "https://www.ethiopianairlines.com"
            },
            {
              "type": "organic",
              "rank_group": 95,
              "rank_absolute": 98,
              "page": 1,
              "domain": "www.vietnamairlines.com",
              "title": "Vietnam Airlines | Reach Further | Official website",
              "description": "Great value fares with Vietnam Airlines. Book today and save! Skytrax – 4 Star airline. Official website. Earn frequent flyer miles with Lotusmiles.",
              "url": "https://www.vietnamairlines.com/",
              "breadcrumb": "https://www.vietnamairlines.com"
            },
            {
              "type": "organic",
              "rank_group": 96,
              "rank_absolute": 99,
              "page": 1,
              "domain": "books.google.com",
              "title": "Code of Federal Regulations: 1985-1999",
              "description": "A purchases in New York a round-trip ticket for transportation by air from New York to ... B purchases a ticket in San Francisco for Combination rail and water ...",
              "url": "https://books.google.com/books?id=av3umFsqbAEC&pg=PA305&lpg=PA305&dq=flight+ticket+new+york+san+francisco&source=bl&ots=fJJY5RUS9l&sig=ACfU3U16ejUqNf23jHD32QNCxDCa05Vn9g&hl=en&ppis=_e&sa=X&ved=2ahUKEwjs_4OnouzlAhXJ4zgGHeBcD3oQ6AEwdXoECHEQAQ",
              "breadcrumb": "https://books.google.com › books"
            }
          ]
        }
      ]
    }
  ]
}
```









 

  cURL   php   Node.js   Python   cSharp