Skip to main content
Control exactly which sources your search uses. Focus on trusted domains, target specific datasets, exclude unreliable sources, or soft-rank toward preferred domains.

Three controls

If both included_sources and excluded_sources are set, included_sources wins. Use hard filters for strict control; use source_biases to nudge ranking while still letting any source appear if highly relevant.

What you can pass

Every source field accepts any mix of these formats:
Paths are exact: "valyu.ai/blog" affects only that path. To include a whole domain, use just the domain name.

Presets

Presets are curated bundles of vetted sources. Pass a preset name and it expands to the right datasets and domains for you - no need to remember individual ids.
Presets are disjoint - a dataset lives in exactly one. academic is papers and preprints only: clinical trials, drug labels, WHO and NIH grants are in health, and ChEMBL, Open Targets and PubChem are in chemistry. medical is the one deliberate cross-domain bundle. Some presets resolve to datasets that are DeepResearch-only and return no results on /search - check the access_modes field on GET /v1/datasources before relying on one.
Premium presets (finance, patent, genomics, chemistry, and others that resolve to proprietary datasets) require a subscription. academic and web work on any plan, and a plan also lowers your cost per credit.
Reuse the same source combinations often? Save them as a Collection and reference by name.

Source biases

source_biases influences ranking without hard filtering. Biased sources can still appear (or drop) based on relevance - values just nudge the order. Range: -5 (strong demotion) to +5 (strong boost); 0 has no effect.
You can combine source_biases with included_sources / excluded_sources in the same request for fine-grained control.

More examples

Python
Python
Python
Python
Python

Collections

Save reusable source bundles

Data sources

Every dataset id and preset