The Glassdoor Job Scraper API allows you to retrieve detailed information about a specific job listing based on the provided vacancy URL.
HasData is an independent service and is not affiliated with, endorsed by, or sponsored by Glassdoor. Glassdoor is a trademark of its respective owner. This API works with publicly available data only.
Get Your API Key
Sign in at hasdata.com , go to your account settings, and copy your API key.
All requests must include your key in the x-api-key header.
Request Cost and API Credits
Each request to the Glassdoor Job Scraper API consumes API Credits from your account balance.
Cost per request: 5 API Credits
Credits are deducted only for successful requests.
Your total available credits depend on your active plan.
You can use your credits across all HasData APIs. The same credit balance is shared platform-wide.
Unused credits do not roll over. Any remaining credits expire at the end of the current billing period.
To monitor your credit usage and remaining balance, sign in to your account dashboard at app.hasdata.com .
Make Your First Request
cURL
HasData CLI
Node.js
Python
PHP
Java
C#
Ruby
Rust
Go
curl --request GET -G \
--url 'https://api.hasdata.com/scrape/glassdoor/job' \
--data-urlencode 'url=https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <your-api-key>'
hasdata glassdoor-job \
--url 'https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500'
const axios = require ( 'axios' ). default ;
const options = {
method: 'GET' ,
url: 'https://api.hasdata.com/scrape/glassdoor/job' ,
params: {
url: 'https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500'
},
headers: { 'Content-Type' : 'application/json' , 'x-api-key' : '<your-api-key>' }
};
try {
const { data } = await axios . request ( options );
console . log ( data );
} catch ( error ) {
console . error ( error );
}
import requests
url = "https://api.hasdata.com/scrape/glassdoor/job"
querystring = { "url" : "https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500" }
headers = {
"Content-Type" : "application/json" ,
"x-api-key" : "<your-api-key>"
}
response = requests.get(url, headers = headers, params = querystring)
print (response.json())
<? php
$params = [
"url" => "https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500" ,
];
$curl = curl_init ();
curl_setopt_array ( $curl , [
CURLOPT_URL => "https://api.hasdata.com/scrape/glassdoor/job?" . http_build_query ( $params ),
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_CUSTOMREQUEST => "GET" ,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json" ,
"x-api-key: <your-api-key>" ,
],
]);
$response = curl_exec ( $curl );
curl_close ( $curl );
echo $response ;
OkHttpClient client = new OkHttpClient ();
HttpUrl url = HttpUrl . parse ( "https://api.hasdata.com/scrape/glassdoor/job" )
. newBuilder ()
. addQueryParameter ( "url" , "https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500" )
. build ();
Request request = new Request. Builder ()
. url (url)
. get ()
. addHeader ( "Content-Type" , "application/json" )
. addHeader ( "x-api-key" , "<your-api-key>" )
. build ();
Response response = client . newCall (request). execute ();
using System . Net . Http ;
using System . Web ;
var client = new HttpClient ();
var query = HttpUtility . ParseQueryString ( string . Empty );
query [ "url" ] = "https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500" ;
var url = $"https://api.hasdata.com/scrape/glassdoor/job? { query } " ;
var request = new HttpRequestMessage ( new HttpMethod ( "GET" ), url );
request . Headers . Add ( "x-api-key" , "<your-api-key>" );
using var response = await client . SendAsync ( request );
response . EnsureSuccessStatusCode ();
var content = await response . Content . ReadAsStringAsync ();
Console . WriteLine ( content );
require 'net/http'
require 'uri'
uri = URI ( "https://api.hasdata.com/scrape/glassdoor/job" )
params = {
"url" => "https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500" ,
}
uri. query = URI . encode_www_form (params)
http = Net :: HTTP . new (uri. host , uri. port )
http. use_ssl = true
request = Net :: HTTP :: Get . new (uri)
request[ "Content-Type" ] = 'application/json'
request[ "x-api-key" ] = '<your-api-key>'
response = http. request (request)
puts response. read_body
use reqwest :: blocking :: Client ;
fn main () -> Result <(), Box < dyn std :: error :: Error >> {
let client = Client :: new ();
let res = client
. get ( "https://api.hasdata.com/scrape/glassdoor/job" )
. query ( & [( "url" , "https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500" )])
. header ( "Content-Type" , "application/json" )
. header ( "x-api-key" , "<your-api-key>" )
. send () ?
. text () ? ;
println! ( "{}" , res );
Ok (())
}
package main
import (
" fmt "
" io "
" net/http "
" net/url "
)
func main () {
params := url . Values {}
params . Set ( "url" , "https://www.glassdoor.com/job-listing/engineering-analyst-anti-scraper-search-google-JV_IC1147431_KO0,39_KE40,46.htm?jl=1009846893500" )
u := "https://api.hasdata.com/scrape/glassdoor/job?" + params . Encode ()
req , _ := http . NewRequest ( "GET" , u , nil )
req . Header . Add ( "Content-Type" , "application/json" )
req . Header . Add ( "x-api-key" , "<your-api-key>" )
res , _ := http . DefaultClient . Do ( req )
defer res . Body . Close ()
body , _ := io . ReadAll ( res . Body )
fmt . Println ( string ( body ))
}
API Parameters