Website Domain Research
The Website Domain Research API enables you to automate structured data extraction across multiple domains. Submit a list of domains and specify the data fields you want to extract (such as company name, industry, or custom fields). The API will process each domain, extract the requested data using advanced AI, and provide status and downloadable reports.
This feature is ideal for lead enrichment, market research, competitive analysis, and more. Each domain analyzed consumes one credit. Free accounts receive 25 free credits per month. Paid screenshot members receive 125 free credits per month. You can also purchase additional credits any time.
The Website Domain Research API allows you to:
- Submit a batch of domains for research and data extraction
- Define custom structured data fields for extraction (up to 100 fields)
- Track the status of your domain research job
- Download results as JSON or CSV
All requests require authentication with your Private API Key as a Bearer token in the Authorization header.
The base URL for all API requests is: https://api.pagepixels.com
Create Website Domain Research Request
/api/domain_research_requests
Use the post /api/domain_research_requests endpoint to submit a new domain research job. Provide a name for your report, optional notes, an array of domains, and an array of structures (the data you would like to extract).
| Parameter | Type | Required? | Description |
|---|---|---|---|
| name | string | no | Name for this research job |
| additional_notes | string | No | Any extra notes for your reference |
| domains | array[string] | Yes | List of domains to analyze |
| structures | array[object] | Yes | The data you want to extract from each domain (see below for structure details) |
Each structured object must include:
| Field | Type | Required? | Description |
|---|---|---|---|
| data_type | string | Yes | Data type ("string", "array", "boolean", or "number") |
| data_field_name | string | Yes | Name of the data (max 100 chars). In CSV format, this becomes the column header; in JSON, it becomes the data key. |
| data_field_prompt_description | string | Yes | Description of what to extract (max 2000 chars) |
Example
/api/domain_research_requests
bash
curl -X POST "https://api.pagepixels.com/api/domain_research_requests" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"name": "API Example Research",
"additional_notes": "Please analyze these domains for the default example fields.",
"domains": ["example.com", "sampledomain.com"],
"structures": [
{ "data_type": "string", "data_field_name": "primary_contact_email", "data_field_prompt_description": "The main email address listed for sales or partnership inquiries." },
{ "data_type": "string", "data_field_name": "primary_phone_number", "data_field_prompt_description": "The primary phone number listed on the website for business contact." },
{ "data_type": "number", "data_field_name": "compatibility_rating", "data_field_prompt_description": "A score between 1 and 100 indicating how well this company aligns with the following requirements: target industry, team size over 50, and offering a cloud-based SaaS solution." },
{ "data_type": "boolean", "data_field_name": "has_investor_relations_page", "data_field_prompt_description": "Indicates whether the company has a dedicated investor relations page on their website." },
{ "data_type": "array", "data_field_name": "social_profiles", "data_field_prompt_description": "List of public-facing social media profile URLs linked from the site (e.g., LinkedIn, Twitter, Facebook)." }
]
}'
{
"job_id": "drq_1234567890abcdef",
"status": "pending"
}
Response Breakdown
| Key | Description |
|---|---|
| job_id | Unique identifier for the research job |
| status | Current status of the job (e.g., pending, processing, completed, failed) |
Get the Website Domain Research Job Status
/api/domain_research_requests/:job_id/status
Retrieve the status of a domain research job. Returns progress and completion details.
| Parameter | Type | Required? | Description |
|---|---|---|---|
| job_id | string | Yes (in URL) | The job ID returned from the create request |
Example
/api/domain_research_requests/:job_id/status
bash
curl -X GET "https://api.pagepixels.com/api/domain_research_requests/:job_id/status" \
-d access_token="your-api-key"
{
"job_id": "drq_1234567890abcdef",
"name": "API Example Research",
"status": "processing",
"total_domains": 2,
"completed_domains": 1,
"failed_domains": 0,
"percent_complete": 50
}
Response Breakdown
| Key | Description |
|---|---|
| job_id | Unique identifier for the research job |
| name | Name of the research job |
| status | Current status of the job (pending, processing, completed, failed) |
| total_domains | Total number of domains in the job |
| completed_domains | Number of domains successfully processed |
| failed_domains | Number of domains that failed processing |
| percent_complete | Percentage of job completion (integer) |
Get a Website Domain Research Report
/api/domain_research_requests/:job_id/report
Download the results of a completed domain research job. You can specify ?format=csv to get a CSV file; omit to receive JSON.
| Parameter | Type | Required? | Description |
|---|---|---|---|
| job_id | string | Yes (in URL) | The job ID returned from the create request |
| format | string | No | "csv" for CSV download, otherwise JSON |
Example: Get report as JSON
/api/domain_research_requests/:job_id/report
bash
curl -X GET "https://api.pagepixels.com/api/domain_research_requests/:job_id/report" \
-d access_token="your-api-key"
Example: Get report as CSV
/api/domain_research_requests/:job_id/report
bash
curl -X GET "https://api.pagepixels.com/api/domain_research_requests/:job_id/report" \
-d access_token="your-api-key" \
-d format="csv"
{
"job_id": "drq_1234567890abcdef",
"name": "API Example Research",
"status": "completed",
"results": [
{
"domain": "example.com",
"primary_contact_email": "info@example.com",
"primary_phone_number": "+1-555-123-4567",
"compatibility_rating": 92,
"has_investor_relations_page": true,
"social_profiles": [
"https://linkedin.com/company/example",
"https://twitter.com/example"
]
},
{
"domain": "sampledomain.com",
"primary_contact_email": "contact@sampledomain.com",
"primary_phone_number": "+1-555-987-6543",
"compatibility_rating": 78,
"has_investor_relations_page": false,
"social_profiles": [
"https://linkedin.com/company/sampledomain"
]
}
]
}
Response Breakdown
| Key | Description |
|---|---|
| job_id | Unique identifier for the research job. |
| name | Name of the research job. |
| status | Final status of the job. Reports can be retrieved before full completion, if needed. |
| results | Array of domain result objects, each containing the requested fields and data. |
List All Website Domain Research Reports
/api/domain_research_requests
This endpoint provides a JSON object of all Domain Research reports found in your account.
By default, the API will return 1000 records per request.
Paging Parameters
| Key | Description |
|---|---|
| page | The page you would like to retrieve. Default: 1. |
| limit | The total number of records you would like to retrieve. Minimum: 1, Maximum: 1000, Default: 1000 |
| after | A unix timestamp (with or without milliseconds). Only records created after this time will be returned in the request. Default: none |
| before | A unix timestamp (with or without milliseconds). Only records created before this time will be returned in the request. Default: none |
| order | Can be either 'ASC' or 'DESC'. Default: 'DESC'. Records returned in DESC (descending) order will return the most recent records first to the oldest records. Records returned in ASC (ascending) order will return the oldest records first to the newest records. |
/api/domain_research_requests
http
https://api.pagepixels.com/api/domain_research_requests?access_token=your-api-key&page=1
{
"page": 1,
"limit": 1000,
"total": 2,
"domain_research_requests": [
{
"job_id":"job-report-uuid",
"name":"Marketing Channels Research",
"status":"Download Report",
"created_at":"2025-07-05T19:57:49.410Z",
"total_domains":100,
"completed_domains":100,
"failed_domains":0
},
{
"job_id":"job-report-uuid",
"name":"Sales Prospects",
"status":"Download Report",
"created_at":"2025-07-05T19:30:46.012Z",
"total_domains":50,
"completed_domains":50,
"failed_domains":0
}
]
}
Response Breakdown
| Key | Description |
|---|---|
| page | The page retrieved. Defaults to 1. |
| limit | The maximum number of items to return. Defaults to 1000. |
| total | Total number of domain research requests returned. |
| domain_research_requests | An array containing the details of each domain research request, including the job_id, name, status, created_at, total_domains, completed_domains, and failed_domains for each request. |
Support
Questions? Contact us anytime by email:
support-tickets@pagepixels.com
Or send us a message through our Support page.