Live Google App Listings Search Results

 
This endpoint will provide you with a list of apps published on Google Play along with additional information: its ID, icon, reviews count, rating, price, and other data. The results are specific to the title, description, and categories parameters specified in the API request.

Note: data is currently available only for the United States (location code 2840).

checked POST
Pricing

Your account will be charged for each request. The cost can be calculated on the Pricing page.

All POST data should be sent in the JSON format (UTF-8 encoding). The task setting is done using the POST method. When setting a task, you should send all task parameters in the task array of the generic POST array. You can send up to 2000 API calls per minute.

Below you will find a detailed description of the fields you can use for setting a task.

Description of the fields for setting a task:

Field name Type Description
categories array app categories
optional field
the categories you specify are used to search for app listings;
you can get the full list of available app listing categories by this link
you can specify up to 10 categories
description string keyword in the app’s description
optional field
keywords that occur in the description of the app;
can contain up to 200 characters
title string keyword in the app’s title
optional field
keywords that occur in the title of the app;
can contain up to 200 characters
filters array array of results filtering parameters
optional field
you can add several filters at once (8 filters maximum)
you should set a logical operator and, or between the conditions
the following operators are supported:
regex, not_regex, <, <=, >, >=, =, <>, in, not_in, like, not_like
you can use the % operator with like and not_like to match any string of zero or more characters
example:
["item.rating.value",">",3]

you can receive the list of available filters by making a separate request to https://api.dataforseo.com/v3/app_data/google/app_listings/available_filters

order_by array results sorting rules
optional field
you can use the same values as in the filters array to sort the results
possible sorting types:
asc – results will be sorted in the ascending order
desc – results will be sorted in the descending order
you should use a comma to set up a sorting parameter
example:
["item.installs_count,asc"]

note that you can set no more than three sorting rules in a single request
you should use a comma to separate several sorting rules
example:
["item.rating.value,desc","item.installs_count,asc"]

limit integer the maximum number of returned apps
optional field
default value: 100
maximum value: 1000
offset integer offset in the results array of returned apps
optional field
default value: 0
if you specify the 10 value, the first ten entities in the results array will be omitted and the data will be provided for the successive entities
offset_token string token for subsequent requests
optional field
provided in the identical filed of the response to each request;
use this parameter to avoid timeouts while trying to obtain over 100,000 results in a single request;
by specifying the unique offset_token value from the response array, you will get the subsequent results of the initial task;
offset_token values are unique for each subsequent task
Note: if the offset_token is specified in the request, all other parameters should be identical to the previous request
tag string user-defined task identifier
optional field
the character limit is 255
you can use this parameter to identify the task and match it with the result
you will find the specified tag value in the data object of the response

‌‌‌‌
‌‌As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information specific to the set tasks.

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
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
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 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
        status_message string informational message of the task
you can find the full list of general informational messages here
        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
            total_count integer the total number of relevant results in the database
            count integer the number of items in the results array
            offset integer offset in the results array of returned apps
            offset_token string token for subsequent requests
you can use this parameter in the POST request to avoid timeouts while trying to obtain over 100,000 results in a single request
            items array array of apps and related data
                app_id string ID of the returned app
                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
                time_update string date and time when SERP data was last updated
in the ISO 8601 format: “YYYY-MM-DDThh:mm:ss.sssssssZ”
example:
2023-05-23 10:16:19 +00:00
                item object detailed information about the app
                    type string the item’s type
possible item types: "google_play_info_organic"
                    rank_group integer 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 among all the listed apps
absolute position among all apps on the list
                    position string the alignment of the element in SERP
can take the following values: left
                    app_id string ID of the returned app
                    title string title of the returned app
                    url string URL to the app page on Google Play
                    icon string URL to the app icon
                    description string description of the returned app
                    reviews_count integer the total number of reviews the app has
                    rating object average rating of the app
                        rating_type string the type of the rating
can take the following values: Max5
                        value float the value of the rating
                        votes_count integer the amount of feedback
in this case, the value will be null
                        rating_max integer the maximum value for a rating_type
the maximum value for Max5 is 5
                    price object price of the app
                        current float current price
refers to the current price indicated in the element
                        regular float regular price
refers to the regular price indicated in the element
                        max_value float the maximum price
refers to the maximum price indicated in the element
                        currency string currency of the listed price
ISO code of the currency applied to the price
                        is_price_range boolean price is provided as a range
indicates whether a price is provided in a range
                        displayed_price string price string in the result
raw price string as provided in the result
                    is_free boolean indicates whether the app is free
                    main_category string app category
Google Play category relevant to the app
                    installs string approximate number of app installs
                    installs_count integer accurate number of app installs
                    developer string name of the app developer
                    developer_id string ID of the developer on Google Play
                    developer_url string URL to the developer page on Google Play
                    developer_email string email address of the developer
                    developer_address string physical address of the developer
                    developer_website string official website of the developer
                    version string current version of the app
                    minimum_os_version string minimum OS version required to install the app
                    size float size of the app
                    released_date string date and time when the app was released
in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”;
example:
2019-11-15 12:57:46 +00:00
                    last_update_date string date and time when the app was last updated
in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00”;
example:
2019-11-15 12:57:46 +00:00
                    update_notes string update notes
contains the latest update notes from the developer
                    images array app images
contains URLs to the images published on the app page on Google Play
                    videos array app videos
contains URLs to the video published on the app page on Google Play
                    similar_apps array similar apps
displays apps similar to the app in a POST request
                        app_id string ID of the app
                        title string title of the app
                       url string URL to the app page on Google Play
                    more_apps_by_developer array similar apps
information about apps built by the same developer
                       app_id string ID of the app
                       title string title of the app
                       url string URL to the app page on Google Play
                    genres array app genres
contains relevant app categories
                    tags array app tags
contains relevant app tags

‌‌

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)" 
curl --location --request POST "https://api.dataforseo.com/v3/app_data/google/app_listings/search/live" 
--header "Authorization: Basic ${cred}"  
--header "Content-Type: application/json" 
--data-raw "[
    {
     "title": "vpn",
     "description": "vpn",
     "categories": [
         "Tools"
        ],
     "order_by": ["item.installs_count,asc"],
     "filters": [
         ["item.rating.value", ">", 4.5]
        ],
     "limit": 10
    }
]"
<?php
// You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip?202197
require('RestClient.php');
$api_url = 'https://api.dataforseo.com/';
// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
$client = new RestClient($api_url, null, 'login', 'password');
$post_array = array();
// simple way to get a result
$post_array[] = array(
   "title" => "vpn",
   "description" => "vpn",
   "order_by" => [ "item.rating.value,asc" ],
   "filters" => [
      [ "item.rating.value",">",4 ]
   ],
   "limit" => 3
);
try {
   // POST /v3/app_data/google/app_listings/search/live
   // POST /v3/app_data/apple/app_listings/search/live
   // the full list of possible parameters is available in documentation
   $result = $client->post('/v3/app_data/google/app_listings/search/live', $post_array);
   print_r($result);
   // do something with post 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;
?>
const post_array = [];

post_array.push({
    "title": "vpn",
    "description": "vpn",
    "categories": [
      "Tools"
    ],
    "order_by": [
      "item.installs_count,asc"
    ],
    "filters": [
      [
        "item.rating.value",
        ">",
        4.5
      ]
    ],
    "limit": 10
  });

const axios = require('axios');

axios({
  method: 'post',
  url: 'https://api.dataforseo.com/v3/app_data/google/app_listings/search/live',
  auth: {
    username: 'login',
    password: 'password'
  },
  data: post_array,
  headers: {
    'content-type': 'application/json'
  }
}).then(function (response) {
  var result = response['data']['tasks'];
  // Result data
  console.log(result);
}).catch(function (error) {
  console.log(error);
});
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")
post_data = dict()
# simple way to set a task
post_data[len(post_data)] = dict(
    title="vpn",
    description="vpn",
    order_by=["item.rating.value,asc"],
    filters=[
        ["item.rating.value",">",4]
    ],
    limit=3
)
# POST /v3/app_data/google/app_listings/search/live
# POST /v3/app_data/apple/app_listings/search/live
response = client.post("/v3/app_data/google/app_listings/search/live", post_data)
# you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
if response["status_code"] == 20000:
    print(response)
    # do something with result
else:
    print("error. Code: %d Message: %s" % (response["status_code"], response["status_message"]))
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 app_data_app_listings_search_live()
        {
            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"))) }
            };
            var postData = new List<object>();
            postData.Add(new
            {
                title = "vpn",
                description = "vpn",
                order_by = new[]
                {
                    "item.rating.value,asc"
                },
                filters = new object[]
                {
                    new object[] { "item.rating.value", ">", 4 }
                },
                limit = 3
            });
            // POST /v3/app_data/google/app_listings/search/live
            // POST /v3/app_data/apple/app_listings/search/live
            // the full list of possible parameters is available in documentation

            var taskPostResponse = await httpClient.PostAsync("/v3/app_data/google/app_listings/search/live", new StringContent(JsonConvert.SerializeObject(postData)));
            var result = JsonConvert.DeserializeObject<dynamic>(await taskPostResponse.Content.ReadAsStringAsync());
            // you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
            if (result.status_code == 20000)
            {
                // do something with result
                Console.WriteLine(result);
            }
            else
                Console.WriteLine($"error. Code: {result.status_code} Message: {result.status_message}");
        }
    }
}