List the domains your account submitted
curl --request GET \
--url 'https://api.zenrows.com/v1/extract/prepared-domains?apikey='import requests
url = "https://api.zenrows.com/v1/extract/prepared-domains?apikey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.zenrows.com/v1/extract/prepared-domains?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.zenrows.com/v1/extract/prepared-domains?apikey=';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zenrows.com/v1/extract/prepared-domains?apikey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zenrows.com/v1/extract/prepared-domains?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.zenrows.com/v1/extract/prepared-domains?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.zenrows.com/v1/extract/prepared-domains?apikey=")
.asString();{
"allowance": {
"used": 123,
"limit": 123,
"remaining": 123,
"month": "2026-09"
},
"domains": [
{
"domain": "<string>",
"status": "preparing",
"state": "received",
"roles": [
{
"role": "<string>",
"status": "<string>",
"url": "<string>",
"detail": "<string>"
}
],
"failure": {
"code": "interrupted",
"detail": "<string>",
"slot_consumed": true
},
"submitted_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}{
"code": "AUTH002",
"detail": "Invalid API key.",
"instance": "/v1",
"status": 401,
"title": "Invalid apikey provided (AUTH002)",
"type": "https://docs.zenrows.com/api-error-codes#AUTH002"
}Extract
List the domains your account submitted
Every domain this account has submitted for preparation, with the monthly allowance alongside it. This lists what you submitted, not every domain Extract serves (see listExtractDomains). Costs no credits. Documented at https://docs.zenrows.com/extract/endpoints.
GET
/
extract
/
prepared-domains
List the domains your account submitted
curl --request GET \
--url 'https://api.zenrows.com/v1/extract/prepared-domains?apikey='import requests
url = "https://api.zenrows.com/v1/extract/prepared-domains?apikey="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.zenrows.com/v1/extract/prepared-domains?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const url = 'https://api.zenrows.com/v1/extract/prepared-domains?apikey=';
const options = {method: 'GET'};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zenrows.com/v1/extract/prepared-domains?apikey="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zenrows.com/v1/extract/prepared-domains?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.zenrows.com/v1/extract/prepared-domains?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.zenrows.com/v1/extract/prepared-domains?apikey=")
.asString();{
"allowance": {
"used": 123,
"limit": 123,
"remaining": 123,
"month": "2026-09"
},
"domains": [
{
"domain": "<string>",
"status": "preparing",
"state": "received",
"roles": [
{
"role": "<string>",
"status": "<string>",
"url": "<string>",
"detail": "<string>"
}
],
"failure": {
"code": "interrupted",
"detail": "<string>",
"slot_consumed": true
},
"submitted_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
]
}{
"code": "AUTH002",
"detail": "Invalid API key.",
"instance": "/v1",
"status": 401,
"title": "Invalid apikey provided (AUTH002)",
"type": "https://docs.zenrows.com/api-error-codes#AUTH002"
}Authorizations
apiKeyQueryapiKeyHeader
Fetch, Extract, Crawl and the account endpoint accept the key as the apikey query parameter. Keys are per account and self-serve: create one in the Zenrows dashboard (app.zenrows.com), or, for an agent with no human present, POST https://app.zenrows.com/api/agent/signup.
Was this page helpful?