{"id":13612,"date":"2022-04-29T15:59:14","date_gmt":"2022-04-29T15:59:14","guid":{"rendered":"https:\/\/docs_v3.dataforseo.com\/v3\/?page_id=13612"},"modified":"2022-05-16T08:37:20","modified_gmt":"2022-05-16T08:37:20","slug":"app_data-google-app_searches-task_get-html","status":"publish","type":"page","link":"https:\/\/docs.dataforseo.com\/v3\/app_data-google-app_searches-task_get-html\/","title":{"rendered":"app_data\/google\/app_searches\/task_get\/html"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]<\/p>\n<h2 id=\"get-app_data-google-app_searches-html-results-by-task_id\">Get Google App Searches HTML Results by id<\/h2>\n<p>[\/vc_column_text]    <div class=\"endpoint\">\n        <img decoding=\"async\" class=\"endpoint__icon\" src=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/checked-circle.svg\" alt=\"checked\">\n\n                    GET            <button class=\"btn-reset button-link copy-button\" data-href=\"https:\/\/api.dataforseo.com\/v3\/app_data\/google\/app_searches\/task_get\/html\/$id\">\n                https:\/\/api.dataforseo.com\/v3\/app_data\/google\/app_searches\/task_get\/html\/$id                <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n                    <use href=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/sprite.svg#layers\"><\/use>\n                <\/svg>\n            <\/button>\n            <\/div>\n    \t<article class=\"info-card info-card--yellow\">\n\t\t<header class=\"info-card__header\">\n\t\t\t<div class=\"info-card__icon\">\n\t\t\t\t<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n\t\t\t\t\t<use href=\"https:\/\/docs.dataforseo.com\/v3\/wp-content\/themes\/dataforseo\/assets\/img\/icons\/sprite.svg#label\"><\/use>\n\t\t\t\t<\/svg>\n\t\t\t<\/div>\n\t\t\t<div class=\"info-card__title\">Pricing<\/div>\n\t\t<\/header>\n\t\t<div class=\"info-card__content\">\n\t\t\t<p> Your account will be charged only for posting a task. You can get the results of the task within the next 7 days for free.<br \/>\nThe cost can be calculated on the <a title=\"Pricing\" href=\"https:\/\/dataforseo.com\/pricing\/api\/google-play\" target=\"_blank\" rel=\"noopener noreferrer\">Pricing<\/a> page.<\/p>\n\t\t<\/div>\n\t<\/article>\n\t[vc_column_text]<\/p>\n<p><strong>Description of the fields for sending a request:<\/strong><\/p>\n<table style=\"width: 86.0726%; height: 34px;\">\n<thead>\n<tr style=\"height: 24px;\">\n<th style=\"width: 12.4003%; height: 24px;\">Field name<\/th>\n<th style=\"width: 3.91588%; height: 24px;\">Type<\/th>\n<th style=\"width: 82.9587%; height: 24px;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 192px;\">\n<td style=\"width: 12.4003%; height: 10px;\"><code>id<\/code><\/td>\n<td style=\"width: 3.91588%; height: 10px;\">string<\/td>\n<td style=\"width: 82.9587%; height: 10px;\"><em>task identifier<\/em><br \/>\n<strong>unique task identifier in our system in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\">UUID<\/a> format<\/strong><br \/>\nyou will be able to use it within <strong>7 days<\/strong> to request the results of the task at any time<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u200c\u200c<br \/>\nAs a response of the API server, you will receive <a href=\"https:\/\/en.wikipedia.org\/wiki\/JSON\">JSON<\/a>-encoded data containing a <code>tasks<\/code> array with the information specific to the set tasks.<\/p>\n<p><strong>Description of the fields in the results array:<\/strong><\/p>\n<table style=\"width: 86.001%; height: 1152px;\">\n<thead>\n<tr style=\"height: 24px;\">\n<th style=\"width: 24.3517%; height: 24px;\">Field name<\/th>\n<th style=\"width: 6.19209%; height: 24px;\">Type<\/th>\n<th style=\"width: 79.8065%; height: 24px;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 48px;\">\n<td style=\"width: 24.3517%; height: 48px;\"><code>version<\/code><\/td>\n<td style=\"width: 6.19209%; height: 48px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 48px;\"><em>the current version of the API<\/em><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 38.423%; height: 48px;\"><code>status_code<\/code><\/td>\n<td style=\"width: 1.75219%; height: 48px;\">integer<\/td>\n<td style=\"width: 61.2015%; height: 48px;\"><i>general status code<\/i><br \/>\nyou can find the full list of the response codes <a href=\"\/v3\/appendix\/errors\">here<\/a><br \/>\n<strong>Note:<\/strong> we strongly recommend designing a necessary system for handling related exceptional or error conditions<\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>status_message<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>general informational message<\/em><br \/>\nyou can find the full list of general informational messages <a href=\"\/v3\/appendix\/errors\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>time<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>cost<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">float<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>total tasks cost, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>tasks_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the number of tasks in the <strong><code>tasks<\/code><\/strong> array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><code>tasks_error<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the number of tasks in the <strong><code>tasks<\/code><\/strong> array returned with an error<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\"><strong><code>tasks<\/code><\/strong><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>array of tasks<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>id<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>task identifier<\/em><br \/>\n<strong>unique task identifier in our system in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Universally_unique_identifier\">UUID<\/a> format<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 48px;\">\n<td style=\"width: 24.3517%; height: 48px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_code<\/code><\/td>\n<td style=\"width: 6.19209%; height: 48px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 48px;\"><em>status code of the task<\/em><br \/>\ngenerated by DataForSEO; can be within the following range: 10000-60000<br \/>\nyou can find the full list of the response codes <a href=\"\/v3\/appendix\/errors\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>status_message<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>informational message of the task<\/em><br \/>\nyou can find the full list of general informational messages <a href=\"\/v3\/appendix\/errors\">here<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>time<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>execution time, seconds<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>cost<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">float<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>cost of the task, USD<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>result_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>number of elements in the <code>result<\/code> array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>path<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>URL path<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 38.423%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 <code>data<\/code><\/td>\n<td style=\"width: 1.25156%; height: 24px;\">object<\/td>\n<td style=\"width: 61.7021%; height: 24px;\"><em>contains the same parameters that you specified in the POST request<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 <strong>\u00a0 \u00a0 <code>result<\/code><\/strong><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>array of results<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>keyword<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>keyword received in a POST request<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>type<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>search engine type in a POST array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>se_domain<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>search engine domain in a POST array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>location_code<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>location code in a POST array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>language_code<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>language code in a POST array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>datetime<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>date and time when the result was received<\/em><br \/>\nin the UTC format: \u201cyyyy-mm-dd hh-mm-ss +00:00\u201d<br \/>\nexample:<br \/>\n<code class=\"long-string\">2019-11-15 12:57:46 +00:00<\/code><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>items_count<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>the number of results returned in the <strong><code>items<\/code><\/strong> array<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <strong><code>items<\/code><\/strong><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">array<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>HTML pages and related data<\/em><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>page<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">integer<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><i>serial number of the returned HTML page<\/i><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>date<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><em>date and time when the HTML page was scanned<\/em><br \/>\nin the UTC format: \u201cyyyy-mm-dd hh-mm-ss +00:00\u201d<br \/>\nexample:<br \/>\n<code class=\"long-string\">2019-11-15 12:57:46 +00:00<\/code><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"width: 24.3517%; height: 24px;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <code>html<\/code><\/td>\n<td style=\"width: 6.19209%; height: 24px;\">string<\/td>\n<td style=\"width: 79.8065%; height: 24px;\"><i>HTML\u00a0<\/i><i>page<\/i><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u200c\u200c[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<blockquote><p>Instead of \u2018login\u2019 and \u2018password\u2019 use your credentials from https:\/\/app.dataforseo.com\/api-access<\/p><\/blockquote><div id=\"curl\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-bash hljs\"># Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access \r\nlogin=&quot;login&quot; \r\npassword=&quot;password&quot; \r\ncred=&quot;$(printf ${login}:${password} | base64)&quot; \r\nid=&quot;04171455-0696-0192-0000-4c69cc29b945&quot; \r\ncurl --location --request GET &quot;https:\/\/api.dataforseo.com\/v3\/app_data\/google\/app_searches\/task_get\/html\/${id}&quot; \r\n--header &quot;Authorization: Basic ${cred}&quot;  \r\n--header &quot;Content-Type: application\/json&quot; \r\n--data-raw &quot;&quot;<\/code><\/pre><\/div><\/div><div id=\"php\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-php hljs\">&lt;?php\r\n\/\/ You can download this file from here https:\/\/cdn.dataforseo.com\/v3\/examples\/php\/php_RestClient.zip\r\nrequire(&#039;RestClient.php&#039;);\r\n$api_url = &#039;https:\/\/api.dataforseo.com\/&#039;;\r\n\/\/ Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access\r\n$client = new RestClient($api_url, null, &#039;login&#039;, &#039;password&#039;);\r\n\r\ntry {\r\n   $result = array();\r\n   \/\/ #1 - using this method you can get a list of completed tasks\r\n   \/\/ GET \/v3\/app_data\/google\/app_searches\/tasks_ready\r\n   $tasks_ready = $client-&gt;get(&#039;\/v3\/app_data\/google\/app_searches\/tasks_ready&#039;);\r\n   \/\/ you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\n   if (isset($tasks_ready[&#039;status_code&#039;]) AND $tasks_ready[&#039;status_code&#039;] === 20000) {\r\n      foreach ($tasks_ready[&#039;tasks&#039;] as $task) {\r\n         if (isset($task[&#039;result&#039;])) {\r\n            foreach ($task[&#039;result&#039;] as $task_ready) {\r\n               \/\/ #2 - using this method you can get results of each completed task\r\n               \/\/ GET \/v3\/app_data\/google\/app_searches\/task_get\/html\/$id\r\n               if (isset($task_ready[&#039;endpoint_html&#039;])) {\r\n                  $result[] = $client-&gt;get($task_ready[&#039;endpoint_html&#039;]);\r\n               }\r\n               \/\/ #3 - another way to get the task results by id\r\n               \/\/ GET \/v3\/app_data\/google\/app_searches\/task_get\/html\/$id\r\n               \/*\r\n               if (isset($task_ready[&#039;id&#039;])) {\r\n                  $result[] = $client-&gt;get(&#039;\/v3\/app_data\/google\/app_searches\/task_get\/html\/&#039; . $task_ready[&#039;id&#039;]);\r\n               }\r\n               *\/\r\n            }\r\n         }\r\n      }\r\n   }\r\n   print_r($result);\r\n   \/\/ do something with result\r\n} catch (RestClientException $e) {\r\n   echo &quot;n&quot;;\r\n   print &quot;HTTP code: {$e-&gt;getHttpCode()}n&quot;;\r\n   print &quot;Error code: {$e-&gt;getCode()}n&quot;;\r\n   print &quot;Message: {$e-&gt;getMessage()}n&quot;;\r\n   print  $e-&gt;getTraceAsString();\r\n   echo &quot;n&quot;;\r\n}\r\n$client = null;\r\n?&gt;<\/code><\/pre><\/div><\/div><div id=\"javascript\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-javascript hljs\">const task_id = &#039;02201115-0001-0066-0000-c06c8f23fce5&#039;;\r\n\r\nconst axios = require(&#039;axios&#039;);\r\n\r\naxios({\r\n    method: &#039;get&#039;,\r\n    url: &#039;https:\/\/api.dataforseo.com\/v3\/app_data\/google\/app_searches\/task_get\/html\/&#039; + task_id,\r\n    auth: {\r\n        username: &#039;login&#039;,\r\n        password: &#039;password&#039;\r\n    },\r\n    headers: {\r\n        &#039;content-type&#039;: &#039;application\/json&#039;\r\n    }\r\n}).then(function (response) {\r\n    var result = response[&#039;data&#039;][&#039;tasks&#039;];\r\n    \/\/ Result data\r\n    console.log(result);\r\n}).catch(function (error) {\r\n    console.log(error);\r\n});<\/code><\/pre><\/div><\/div><div id=\"python\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-python hljs\">from client import RestClient\r\n# You can download this file from here https:\/\/cdn.dataforseo.com\/v3\/examples\/python\/python_Client.zip\r\nclient = RestClient(&quot;login&quot;, &quot;password&quot;)\r\n# 1 - using this method you can get a list of completed tasks\r\n# GET \/v3\/app_data\/google\/app_searches\/tasks_ready\r\nresponse = client.get(&quot;\/v3\/app_data\/google\/app_searches\/tasks_ready&quot;)\r\n# you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\nif response[&#039;status_code&#039;] == 20000:\r\n    results = []\r\n    for task in response[&#039;tasks&#039;]:\r\n        if (task[&#039;result&#039;] and (len(task[&#039;result&#039;]) &gt; 0)):\r\n            for resultTaskInfo in task[&#039;result&#039;]:\r\n                # 2 - using this method you can get results of each completed task\r\n\t\t\t\t# GET \/v3\/app_data\/google\/app_searches\/task_get\/html\/$id\r\n                if(resultTaskInfo[&#039;endpoint_html&#039;]):\r\n                    results.append(client.get(resultTaskInfo[&#039;endpoint_html&#039;]))\r\n                &#039;&#039;&#039;\r\n                # 3 - another way to get the task results by id\r\n                # GET \/v3\/app_data\/google\/app_searches\/task_get\/html\/$id              \r\n                if(resultTaskInfo[&#039;id&#039;]):\r\n                    results.append(client.get(&quot;\/v3\/app_data\/google\/app_searches\/task_get\/html\/&quot; + resultTaskInfo[&#039;id&#039;]))\r\n                &#039;&#039;&#039;\r\n    print(results)\r\n    # do something with result\r\nelse:\r\n    print(&quot;error. Code: %d Message: %s&quot; % (response[&quot;status_code&quot;], response[&quot;status_message&quot;]))<\/code><\/pre><\/div><\/div><div id=\"csharp\" class=\"tab-content example__content\"><div class=\"example__code\"><pre><code class=\"language-csharp hljs\">using Newtonsoft.Json;\r\nusing System;\r\nusing Newtonsoft.Json;\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Net.Http;\r\nusing System.Net.Http.Headers;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace DataForSeoDemos\r\n{\r\n    public static partial class Demos\r\n    {\r\n        public static async Task app_data_google_app_searches_task_get()\r\n        {\r\n            var httpClient = new HttpClient\r\n            {\r\n                BaseAddress = new Uri(&quot;https:\/\/api.dataforseo.com\/&quot;),\r\n                \/\/ Instead of &#039;login&#039; and &#039;password&#039; use your credentials from https:\/\/app.dataforseo.com\/api-access\r\n                DefaultRequestHeaders = { Authorization = new AuthenticationHeaderValue(&quot;Basic&quot;, Convert.ToBase64String(Encoding.ASCII.GetBytes(&quot;login:password&quot;))) }\r\n            };\r\n            \/\/ #1 - using this method you can get a list of completed tasks\r\n            \/\/ GET \/v3\/app_data\/google\/app_searches\/tasks_ready\r\n            var response = await httpClient.GetAsync(&quot;\/v3\/app_data\/google\/app_searches\/tasks_ready&quot;);\r\n            var tasksInfo = JsonConvert.DeserializeObject&lt;dynamic&gt;(await response.Content.ReadAsStringAsync());\r\n            var tasksResponses = new List&lt;object&gt;();\r\n            \/\/ you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\n            if (tasksInfo.status_code == 20000)\r\n            {\r\n                if (tasksInfo.tasks != null)\r\n                {\r\n                    foreach (var tasks in tasksInfo.tasks)\r\n                    {\r\n                        if (tasks.result != null)\r\n                        {\r\n                            foreach (var task in tasks.result)\r\n                            {\r\n                                if (task.endpoint_html != null)\r\n                                {\r\n                                    \/\/ #2 - using this method you can get results of each completed task\r\n                                    \/\/ GET \/v3\/app_data\/google\/app_searches\/task_get\/html\/$id\r\n                                    var taskGetResponse = await httpClient.GetAsync((string)task.endpoint_html);\r\n                                    var taskResultObj = JsonConvert.DeserializeObject&lt;dynamic&gt;(await taskGetResponse.Content.ReadAsStringAsync());\r\n                                    if (taskResultObj.tasks != null)\r\n                                    {\r\n                                        var fst = taskResultObj.tasks.First;\r\n                                        \/\/ you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\n                                        if (fst.status_code &gt;= 40000 || fst.result == null)\r\n                                            Console.WriteLine($&quot;error. Code: {fst.status_code} Message: {fst.status_message}&quot;);\r\n                                        else\r\n                                            tasksResponses.Add(fst.result);\r\n                                    }\r\n                                    \/\/ #3 - another way to get the task results by id\r\n                                    \/\/ GET \/v3\/app_data\/google\/app_searches\/task_get\/html\/$id\r\n                                    \/*\r\n                                    var tasksGetResponse = await httpClient.GetAsync(&quot;\/v3\/app_data\/google\/app_searches\/task_get\/html\/&quot; + (string)task.id);\r\n                                    var taskResultObj = JsonConvert.DeserializeObject&lt;dynamic&gt;(await tasksGetResponse.Content.ReadAsStringAsync());\r\n                                    if (taskResultObj.tasks != null)\r\n                                    {\r\n                                        var fst = taskResultObj.tasks.First;\r\n                                        \/\/ you can find the full list of the response codes here https:\/\/docs.dataforseo.com\/v3\/appendix\/errors\r\n                                        if (fst.status_code &gt;= 40000 || fst.result == null)\r\n                                            Console.WriteLine($&quot;error. Code: {fst.status_code} Message: {fst.status_message}&quot;);\r\n                                        else\r\n                                            tasksResponses.Add(fst.result);\r\n                                    }\r\n                                    *\/\r\n                                }\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n                if (tasksResponses.Count &gt; 0)\r\n                    \/\/ do something with result\r\n                    Console.WriteLine(String.Join(Environment.NewLine, tasksResponses));\r\n                else\r\n                    Console.WriteLine(&quot;No completed tasks&quot;);\r\n            }\r\n            else\r\n                Console.WriteLine($&quot;error. Code: {tasksInfo.status_code} Message: {tasksInfo.status_message}&quot;);\r\n        }\r\n    }\r\n}<\/code><\/pre><\/div><\/div><blockquote><p>The above command returns JSON structured like this:<\/p><\/blockquote><div class=\"example example--json\"><div class=\"example__content\"><div class=\"example__code example__code-json\"><pre><code class=\"language-json hljs\">{\r\n    &quot;version&quot;: &quot;0.1.20220422&quot;,\r\n    &quot;status_code&quot;: 20000,\r\n    &quot;status_message&quot;: &quot;Ok.&quot;,\r\n    &quot;time&quot;: &quot;0.1093 sec.&quot;,\r\n    &quot;cost&quot;: 0,\r\n    &quot;tasks_count&quot;: 1,\r\n    &quot;tasks_error&quot;: 0,\r\n    &quot;tasks&quot;: [\r\n        {\r\n            &quot;id&quot;: &quot;04221432-2806-0428-0000-473adcdd94b6&quot;,\r\n            &quot;status_code&quot;: 20000,\r\n            &quot;status_message&quot;: &quot;Ok.&quot;,\r\n            &quot;time&quot;: &quot;0.0452 sec.&quot;,\r\n            &quot;cost&quot;: 0,\r\n            &quot;result_count&quot;: 1,\r\n            &quot;path&quot;: [\r\n                &quot;v3&quot;,\r\n                &quot;app_data&quot;,\r\n                &quot;google&quot;,\r\n                &quot;app_searches&quot;,\r\n                &quot;task_get&quot;,\r\n                &quot;html&quot;,\r\n                &quot;04221432-2806-0428-0000-473adcdd94b6&quot;\r\n            ],\r\n            &quot;data&quot;: {\r\n                &quot;se_type&quot;: &quot;organic&quot;,\r\n                &quot;se&quot;: &quot;google&quot;,\r\n                &quot;api&quot;: &quot;app_data&quot;,\r\n                &quot;function&quot;: &quot;app_searches&quot;,\r\n                &quot;keyword&quot;: &quot;vpn&quot;,\r\n                &quot;location_code&quot;: 2840,\r\n                &quot;language_code&quot;: &quot;en&quot;,\r\n                &quot;depth&quot;: 50,\r\n                &quot;device&quot;: &quot;desktop&quot;,\r\n                &quot;os&quot;: &quot;windows&quot;\r\n            },\r\n            &quot;result&quot;: [\r\n                {\r\n                    &quot;keyword&quot;: &quot;vpn&quot;,\r\n                    &quot;type&quot;: &quot;organic&quot;,\r\n                    &quot;se_domain&quot;: &quot;play.google.com&quot;,\r\n                    &quot;location_code&quot;: 2840,\r\n                    &quot;language_code&quot;: &quot;en&quot;,\r\n                    &quot;datetime&quot;: &quot;2022-04-22 11:32:43 +00:00&quot;,\r\n                    &quot;items_count&quot;: 1,\r\n                    &quot;items&quot;: [\r\n                        {\r\n                            &quot;page&quot;: 1,\r\n                            &quot;date&quot;: &quot;2022-04-22 11:36:13 +00:00&quot;,\r\n                            &quot;html&quot;: &quot;&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;\/head&gt;&lt;\/body&gt;&lt;\/html&gt;&quot;\r\n                        }\r\n                    ]\r\n                }\r\n            ]\r\n        }\r\n    ]\r\n}<\/code><\/pre><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text] Get Google App Searches HTML Results by id [\/vc_column_text] GET https:\/\/api.dataforseo.com\/v3\/app_data\/google\/app_searches\/task_get\/html\/$id Pricing Your account will be charged only for posting a task. You can get the results of the task within the next 7 days for free. The cost can be calculated on the Pricing page. [vc_column_text] Description of the fields for sending a [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template.php","meta":{"apibase_doc_request_yaml":"","apibase_doc_request_additional_yaml":"","apibase_doc_response_yaml":"","footnotes":""},"class_list":["post-13612","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/13612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/comments?post=13612"}],"version-history":[{"count":5,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/13612\/revisions"}],"predecessor-version":[{"id":14012,"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/pages\/13612\/revisions\/14012"}],"wp:attachment":[{"href":"https:\/\/docs.dataforseo.com\/v3\/wp-json\/wp\/v2\/media?parent=13612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}