You are viewing the documentation of the new API versions. We would love to hear from you. You can write to use at support@crustdata.co for feedback and clarifications.
Reference for Web Search: request parameters, response body, error handling, common gotchas, and API summary.
Reference material for Web Search: request parameters,
response body, error handling, common gotchas, and the API summary.For walk-through examples, see Web Search and
Examples. For result shapes and field presence
by source, see Sources.
Search query text. Max 5,000 characters. Supports search operators like site: and filetype:.
location
string
No
—
ISO 3166-1 alpha-2 country code for region-specific results (e.g., "US", "GB", "JP").
sources
string[]
No
—
Sources to query: web, news, scholar-articles, scholar-articles-enriched, scholar-author, ai, social. Current platform behavior: omitting this field searches all sources.
site
string
No
—
Restrict results to a domain (e.g., "linkedin.com/company", "github.com"). Max 500 characters.
start_date
integer
No
—
Unix timestamp (seconds). Only results after this date.
end_date
integer
No
—
Unix timestamp (seconds). Only results before this date. Must be > start_date.
human_mode
boolean
No
false
Attempt a browser-like retrieval path when standard search access is blocked by bot protection.
page
integer
No
1
Number of result pages to aggregate into the response. Minimum: 1.
The results[] array shape depends on the source field of each result.
Use this reference when parsing multi-source responses.
web / news
scholar-articles
scholar-author
ai
social
Standard web and news results share the same shape.
Field
Type
Description
source
string
"web" or "news".
title
string
Page title.
url
string
Page URL.
snippet
string
Text excerpt.
position
integer
Result position (1-based).
{ "source": "web", "title": "Crustdata: Real-Time B2B Data Broker via API or Data Feed", "url": "https://crustdata.com/", "snippet": "Crustdata is a B2B data provider offering real-time company & people datasets.", "position": 1}
Academic article results include citation data, author information, and optional PDF links.
Field
Type
Description
source
string
"scholar-articles" or "scholar-articles-enriched".
title
string
Article title.
url
string
Link to the article.
snippet
string
Abstract excerpt.
metadata
string
Citation string: "Author - Year - Publisher".
pdf_url
string?
Direct PDF link, if available.
position
integer
Result position (1-based).
authors
array
[{ name, profile_url, profile_id }].
citations
integer
Total citation count.
{ "source": "scholar-articles", "title": "Understanding deep learning", "url": "https://books.google.com/books?hl=en&lr=lang_en&id=rvyxEAAAQBAJ", "snippet": "...to this field understand the principles behind deep learning.", "metadata": "SJD Prince - 2023 - books.google.com", "pdf_url": null, "position": 1, "authors": [ { "name": "SJD Prince", "profile_url": "https://scholar.google.com/citations?user=fjm67xYAAAAJ&hl=en&oi=sra", "profile_id": "fjm67xYAAAAJ" } ], "citations": 618}
Use scholar-articles-enriched instead of scholar-articles to get richer author profile data. The result shape is the same, with more author fields populated.
Author profile results have a completely different shape — no snippet, position, or title. Instead, you get a full researcher profile.
Field
Type
Description
source
string
"scholar-author".
url
string
Academic profile URL.
name
string
Author full name.
affiliation
string
Institutional affiliation.
website
string?
Personal or institutional website.
interests
array
[{ title, link }] — research interests.
thumbnail
string?
Profile photo URL.
citations
object
{ all, since_2020 } — total and recent counts.
h_index
object
{ all, since_2020 }.
i10_index
object
{ all, since_2020 }.
articles
array
Top publications: [{ title, url, year, citations, authors, publication }].
{ "source": "scholar-author", "url": "https://scholar.google.com/citations?user=NMS69lQAAAAJ&hl=en&oi=ao", "name": "Jeff Dean", "affiliation": "Google Chief Scientist, Google Research and Google DeepMind", "website": "http://research.google.com/people/jeff", "interests": [ { "title": "Distributed systems", "link": "https://scholar.google.com/..." } ], "citations": { "all": 401624, "since_2020": 231008 }, "h_index": { "all": 114, "since_2020": 78 }, "i10_index": { "all": 319, "since_2020": 203 }, "articles": [ { "title": "MapReduce: simplified data processing on large clusters", "url": "https://scholar.google.com/...", "year": "2008", "citations": "37255", "authors": "J Dean, S Ghemawat", "publication": "Communications of the ACM 51 (1), 107-113, 2008" } ]}
Deep research mode returns a single AI-generated overview with source references. No snippet, position, or standard search fields.
Field
Type
Description
source
string
"ai".
title
string
Always "AI Overview".
content
string
AI-generated overview text.
references
array
Source articles: [{ title, url, snippet }].
images
array
Embedded images: [{ url, alt, width, height }].
{ "source": "ai", "title": "AI Overview", "content": "The primary difference between uv and pip is speed and scope...", "references": [ { "title": "uv vs pip: Managing Python Packages and Dependencies", "url": "https://realpython.com/uv-vs-pip/", "snippet": "When it comes to Python package managers..." } ], "images": []}
Social media results use the same shape as web/news results.
Field
Type
Description
source
string
"social".
title
string
Post or page title.
url
string
Post URL.
snippet
string
Post excerpt.
position
integer
Result position (1-based).
Current platform behavior: Social search results may return empty
for some queries depending on availability. Always check results.length
before processing.
Current platform behavior: When querying a single source, position
reflects the source’s natural ranking order. When querying multiple sources,
results from different sources are interleaved and position may reflect a
per-source rank rather than a global rank. metadata.total_results is the
total count across all requested sources and pages.
When you query multiple sources at once (or omit sources), the results[]
array can contain items with different shapes. Always check the source
field of each result to determine which fields are available:
for (const result of response.results) { switch (result.source) { case "web": case "news": case "social": // Standard: title, url, snippet, position console.log(result.title, result.url); break; case "scholar-articles": case "scholar-articles-enriched": // Academic: standard fields + authors, citations, pdf_url, metadata console.log(result.title, result.citations, result.authors); break; case "scholar-author": // Author profile: name, affiliation, h_index, articles[] console.log(result.name, result.affiliation, result.h_index); break; case "ai": // AI overview: content, references[] console.log(result.content, result.references); break; }}
Use this reference to determine which fields are present for each source type.
Naming note: The API uses metadata in two different contexts. The
response-levelmetadata is an object with total_results,
failed_pages, and empty_pages. The per-resultmetadata field
(scholar-articles only) is a citation string like "Author - Year - Publisher". Always use the full path (response.metadata vs
result.metadata) to avoid confusion.
Standard fields — present in web, news, social, and
scholar-articles / scholar-articles-enriched: