Deepsearch API for AI.
Project description
Valyu Python SDK
Search and research APIs built for AI agents. Access web and proprietary data sources through Search, extract content from URLs, generate grounded answers, and run multi-step research with DeepResearch - all through a single SDK.
Documentation | API Reference | Platform
Installation
pip install valyu
Quick Start
from valyu import Valyu
valyu = Valyu() # uses VALYU_API_KEY env var
response = valyu.search(
"latest advances in transformer architectures",
max_num_results=5,
search_type="all",
)
for result in response.results:
print(result.title, result.url)
Get $10 free credits when you sign up at platform.valyu.ai. No credit card required.
APIs
Search
Search across web and proprietary data sources with a single query.
response = valyu.search(
"CRISPR gene therapy clinical trials 2026",
search_type="proprietary", # "all", "web", or "proprietary"
max_num_results=10, # 1-20 results
included_sources=["valyu/valyu-pubmed"], # filter to specific sources
start_date="2026-01-01", # date filtering
end_date="2026-12-31",
)
All search parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
str |
required | Search query |
search_type |
str |
"all" |
"all", "web", or "proprietary" |
max_num_results |
int |
10 |
Results to return (1-20) |
max_price |
int |
30 |
Max price per thousand queries (CPM) |
relevance_threshold |
float |
0.5 |
Min relevance score (0-1) |
included_sources |
List[str] |
None |
Sources to search |
excluded_sources |
List[str] |
None |
Sources to exclude |
start_date |
str |
None |
Start date (YYYY-MM-DD) |
end_date |
str |
None |
End date (YYYY-MM-DD) |
country_code |
str |
None |
Country filter (e.g. "US", "GB") |
response_length |
str | int |
None |
"short", "medium", "large", "max", or character count |
category |
str |
None |
Category filter |
fast_mode |
bool |
False |
Faster results, shorter content |
Contents
Extract clean, structured content from URLs. Supports sync (1-10 URLs) and async (up to 50 URLs) modes.
# Basic extraction
response = valyu.contents(["https://arxiv.org/abs/2301.00001"])
# With AI summarization
response = valyu.contents(
["https://example.com/article"],
summary=True,
response_length="medium",
)
# Structured data extraction with JSON schema
response = valyu.contents(
["https://en.wikipedia.org/wiki/OpenAI"],
summary={
"type": "object",
"properties": {
"company_name": {"type": "string"},
"founded_year": {"type": "integer"},
},
},
)
Answer
AI-generated answers grounded by Valyu's search. Supports streaming.
response = valyu.answer(
"What are the side effects of metformin?",
search_type="proprietary",
included_sources=["valyu/valyu-pubmed"],
)
print(response.contents) # AI-generated answer
print(response.search_results) # Source citations
DeepResearch
Multi-step research agent that produces comprehensive reports with citations.
# Start a research task
task = valyu.deepresearch.create(
input="Compare CRISPR and base editing approaches for sickle cell disease",
model="heavy",
output_formats=["markdown", "pdf"],
)
# Wait for completion with progress
def on_progress(status):
print(f"Step {status.progress.current_step}/{status.progress.total_steps}")
result = valyu.deepresearch.wait(task.deepresearch_id, on_progress=on_progress)
print(result.output) # Markdown report
print(result.pdf_url) # PDF download link
All DeepResearch methods
| Method | Description |
|---|---|
create(...) |
Start a new research task |
status(task_id) |
Get task status |
wait(task_id, ...) |
Poll until completion |
stream(task_id, ...) |
Stream real-time updates |
list(api_key_id, limit) |
List research tasks |
update(task_id, instruction) |
Add follow-up instruction |
cancel(task_id) |
Cancel a running task |
delete(task_id) |
Delete a task |
toggle_public(task_id, is_public) |
Toggle public access |
Batch
Run multiple DeepResearch tasks in parallel.
batch = valyu.batch.create(
name="Q1 Analysis",
mode="fast",
output_formats=["markdown"],
)
valyu.batch.add_tasks(batch.batch_id, tasks=[
{"query": "Analyze recent SPAC performance"},
{"query": "Review semiconductor supply chain trends"},
])
result = valyu.batch.wait_for_completion(
batch.batch_id,
on_progress=lambda b: print(f"{b.counts.completed}/{b.counts.total}"),
)
Data Sources
List available data sources programmatically.
sources = valyu.datasources.list()
categories = valyu.datasources.categories()
Authentication
export VALYU_API_KEY="your-api-key"
Or pass directly:
valyu = Valyu(api_key="your-api-key")
Type Safety
All request and response models use Pydantic v2:
from valyu.types.response import SearchResult, SearchResponse
from valyu.types.contents import ContentsResponse
from valyu.types.answer import AnswerSuccessResponse
Error Handling
response = valyu.search("test")
if not response.success:
print(f"Error: {response.error}")
print(f"tx_id: {response.tx_id}")
Integrations
Valyu works with LangChain, OpenAI, Anthropic, MCP, and more. See docs.valyu.ai for integration guides.
Links
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file valyu-2.8.8.tar.gz.
File metadata
- Download URL: valyu-2.8.8.tar.gz
- Upload date:
- Size: 38.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
322a09313a93a8d32c5ac2753a91c04a69559cf3b41a783349dfbc2b7e1606f7
|
|
| MD5 |
ab00aefe932bfc40fb4554d064869cd6
|
|
| BLAKE2b-256 |
79ec0d5b93c4339638dddf2f4118a37f051620d7a094ef8965ab0d32fed3e1a3
|
Provenance
The following attestation bundles were made for valyu-2.8.8.tar.gz:
Publisher:
publish.yml on valyuAI/valyu-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
valyu-2.8.8.tar.gz -
Subject digest:
322a09313a93a8d32c5ac2753a91c04a69559cf3b41a783349dfbc2b7e1606f7 - Sigstore transparency entry: 1205790123
- Sigstore integration time:
-
Permalink:
valyuAI/valyu-py@e43e49b6688a145c41fdcb4a8fa39db110ab55aa -
Branch / Tag:
refs/tags/v2.8.8 - Owner: https://github.com/valyuAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e43e49b6688a145c41fdcb4a8fa39db110ab55aa -
Trigger Event:
push
-
Statement type:
File details
Details for the file valyu-2.8.8-py3-none-any.whl.
File metadata
- Download URL: valyu-2.8.8-py3-none-any.whl
- Upload date:
- Size: 43.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8382b0d068c477a5f0712dd7631c59fab3b018d027ed8c0a39b60ed5af40dbf0
|
|
| MD5 |
6afcb74410f245228b25fc8392a9ec3c
|
|
| BLAKE2b-256 |
6c04cca5a3c1f20fd26562f163c4c474ef213223a46ac2120fbf0c3b852bcb4f
|
Provenance
The following attestation bundles were made for valyu-2.8.8-py3-none-any.whl:
Publisher:
publish.yml on valyuAI/valyu-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
valyu-2.8.8-py3-none-any.whl -
Subject digest:
8382b0d068c477a5f0712dd7631c59fab3b018d027ed8c0a39b60ed5af40dbf0 - Sigstore transparency entry: 1205790141
- Sigstore integration time:
-
Permalink:
valyuAI/valyu-py@e43e49b6688a145c41fdcb4a8fa39db110ab55aa -
Branch / Tag:
refs/tags/v2.8.8 - Owner: https://github.com/valyuAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e43e49b6688a145c41fdcb4a8fa39db110ab55aa -
Trigger Event:
push
-
Statement type: