cURL Python Node.js HTTP PHP Golang C# Java JSON
Copy curl 'https://realtime.oxylabs.io/v1/queries' \
--user 'USERNAME:PASSWORD' \
-H 'Content-Type: application/json' \
-d '{
"source": "google_trends_explore",
"query": "adidas",
"context": [
{"key": "date_from", "value": "2021-01-01"},
{"key": "date_to", "value": "2022-02-02"},
{"key": "category_id", "value": 3}
]
}'
Copy import requests
from pprint import pprint
# Structure payload.
payload = {
'source' : 'google_trends_explore' ,
'query' : 'adidas' ,
'context' : [
{ 'key' : 'date_from' , 'value' : '2021-01-01' },
{ 'key' : 'date_to' , 'value' : '2022-02-02' },
{ 'key' : 'category_id' , 'value' : 3 },
] ,
}
# Get response.
response = requests . request (
'POST' ,
'https://realtime.oxylabs.io/v1/queries' ,
auth = ( 'USERNAME' , 'PASSWORD' ),
json = payload,
)
# Print prettified response to stdout.
pprint (response. json ())
Copy const https = require ( "https" );
const username = "USERNAME" ;
const password = "PASSWORD" ;
const body = {
source : "google_trends_explore" ,
query : "adidas" ,
context : [
{ key : "date_from" , value : "2021-01-01" } ,
{ key : "date_to" , value : "2022-02-02" } ,
{ key : "category_id" , value : 3 } ,
] ,
};
const options = {
hostname : "realtime.oxylabs.io" ,
path : "/v1/queries" ,
method : "POST" ,
headers : {
"Content-Type" : "application/json" ,
Authorization :
"Basic " + Buffer .from ( ` ${ username } : ${ password } ` ) .toString ( "base64" ) ,
} ,
};
const request = https .request (options , (response) => {
let data = "" ;
response .on ( "data" , (chunk) => {
data += chunk;
});
response .on ( "end" , () => {
const responseData = JSON .parse (data);
console .log ( JSON .stringify (responseData , null , 2 ));
});
});
request .on ( "error" , (error) => {
console .error ( "Error:" , error);
});
request .write ( JSON .stringify (body));
request .end ();
Copy https://realtime.oxylabs.io/v1/queries?source =google_trends_explore & query = adidas & context[0][key] =date_from & context[0][value] =2021-01-01 && context[1][key] =date_to & context[1][value] =2022-02-02 & context[2][key] =category_id & context[0][value] =3 & access_token = 12345abcde
Copy <? php
$params = array (
'source' => 'google_trends_explore' ,
'query' => 'adidas' ,
'context' => [
[ 'key' => 'date_from' , 'value' => '2021-01-01' ] ,
[ 'key' => 'date_to' , 'value' => '2022-02-02' ] ,
[ 'key' => 'category_id' , 'value' => 3 ]
]
);
$ch = curl_init () ;
curl_setopt ( $ch , CURLOPT_URL , "https://realtime.oxylabs.io/v1/queries" ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 ) ;
curl_setopt ( $ch , CURLOPT_POSTFIELDS , json_encode ( $params )) ;
curl_setopt ( $ch , CURLOPT_POST , 1 ) ;
curl_setopt ( $ch , CURLOPT_USERPWD , "USERNAME" . ":" . "PASSWORD" ) ;
$headers = array ();
$headers[] = "Content-Type: application/json" ;
curl_setopt ( $ch , CURLOPT_HTTPHEADER , $headers ) ;
$result = curl_exec ( $ch ) ;
echo $result;
if ( curl_errno ( $ch ) ) {
echo 'Error:' . curl_error ( $ch ) ;
}
curl_close ( $ch ) ;
Copy package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main () {
const Username = "USERNAME"
const Password = "PASSWORD"
payload := map [ string ] interface {}{
"source" : "google_trends_explore" ,
"query" : "adidas" ,
"context" : [] map [ string ] interface {}{
{ "key" : "date_from" , "value" : "2021-01-01" },
{ "key" : "date_to" , "value" : "2022-02-02" },
{ "key" : "category_id" , "value" : 3 },
},
}
jsonValue, _ := json. Marshal (payload)
client := & http . Client {}
request, _ := http. NewRequest ( "POST" ,
"https://realtime.oxylabs.io/v1/queries" ,
bytes. NewBuffer (jsonValue),
)
request. SetBasicAuth (Username, Password)
response, _ := client. Do (request)
responseText, _ := ioutil. ReadAll (response.Body)
fmt. Println ( string (responseText))
}
Copy using System ;
using System . Collections . Generic ;
using System . Net . Http ;
using System . Net . Http . Json ;
using System . Threading . Tasks ;
namespace OxyApi
{
class Program
{
static async Task Main ()
{
const string Username = "USERNAME" ;
const string Password = "PASSWORD" ;
var parameters = new {
source = "google_trends_explore" ,
query = "adidas" ,
context = new dynamic [] {
new { key = "date_from" , value = "2021-01-01" } ,
new { key = "date_to" , value = "2022-02-02" } ,
new { key = "category_id" , value = 3 }
}
};
var client = new HttpClient ();
Uri baseUri = new Uri ( "https://realtime.oxylabs.io" );
client . BaseAddress = baseUri;
var requestMessage = new HttpRequestMessage ( HttpMethod . Post , "/v1/queries" );
requestMessage . Content = JsonContent . Create (parameters);
var authenticationString = $"{Username}:{Password}" ;
var base64EncodedAuthenticationString = Convert . ToBase64String ( System . Text . ASCIIEncoding . UTF8 . GetBytes (authenticationString));
requestMessage . Headers . Add ( "Authorization" , "Basic " + base64EncodedAuthenticationString);
var response = await client . SendAsync (requestMessage);
var contents = await response . Content . ReadAsStringAsync ();
Console . WriteLine (contents);
}
}
}
Copy package org . example ;
import okhttp3 . * ;
import org . json . JSONArray ;
import org . json . JSONObject ;
import java . util . concurrent . TimeUnit ;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization" ;
public static final String USERNAME = "USERNAME" ;
public static final String PASSWORD = "PASSWORD" ;
public void run () {
JSONObject jsonObject = new JSONObject() ;
jsonObject . put ( "source" , "google_trends_explore" );
jsonObject . put ( "query" , "adidas" );
jsonObject . put ( "context" , new JSONArray()
. put ( new JSONObject() . put ( "key" , "date_from" ) . put ( "value" , "2021-01-01" ))
. put ( new JSONObject() . put ( "key" , "date_to" ) . put ( "value" , "2022-02-02" ))
. put ( new JSONObject() . put ( "key" , "category_id" ) . put ( "value" , 3 ))
);
Authenticator authenticator = (route , response) -> {
String credential = Credentials . basic (USERNAME , PASSWORD);
return response
. request ()
. newBuilder ()
. header (AUTHORIZATION_HEADER , credential)
. build ();
};
var client = new OkHttpClient . Builder ()
. authenticator (authenticator)
. readTimeout ( 180 , TimeUnit . SECONDS )
. build ();
var mediaType = MediaType . parse ( "application/json; charset=utf-8" );
var body = RequestBody . create ( jsonObject . toString () , mediaType);
var request = new Request . Builder ()
. url ( "https://realtime.oxylabs.io/v1/queries" )
. post (body)
. build ();
try ( var response = client . newCall (request) . execute ()) {
if ( response . body () != null ) {
try ( var responseBody = response . body ()) {
System . out . println ( responseBody . string ());
}
}
} catch ( Exception exception) {
System . out . println ( "Error: " + exception . getMessage ());
}
System . exit ( 0 );
}
public static void main ( String [] args) {
new Thread( new Main()) . start ();
}
}
Copy {
"source" : "google_trends_explore" ,
"query" : "adidas" ,
"context" : [
{ "key" : "date_from" , "value" : "2021-01-01" } ,
{ "key" : "date_to" , "value" : "2022-02-02" } ,
{ "key" : "category_id" , "value" : 3 }
]
}
Basic setup and customization options for scraping Google Trends results.
Advanced options for tailoring and refining the search context.
Copy ...
"context" : [
{
"key" : "filter" ,
"value" : "0"
}
]
...
Copy {
"results" : [
{
"content" : "{\"interest_over_time\": [{\"keyword\": \"adidas\", \"items\": [{\"time\": \"Jan 3\ \–\ 9, 2021\", \"value\": 75}, {\"time\": \"Jan 10\ \–\ 16, 2021\", \"value\": 79}...{\"query\": \"adidas zx\", \"value\": 10, \"formatted_value\": \"10\", \"link\": \"/trends/explore?q=adidas+zx&date=2021-01-01+2022-02-02\"}]}]}" ,
"created_at" : "2024-02-13 11:33:21" ,
"updated_at" : "2024-02-13 11:33:27" ,
"page" : 1 ,
"url" : "https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22adidas%22%2C+%22geo%22%3A+%22%22%2C+%22time%22%3A+%222021-01-01+2022-02-02%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D" ,
"job_id" : "7163133042662350849" ,
"status_code" : 200
}
]
}