| name | venice-augment |
| description | Venice augmentation endpoints for agent pipelines. Covers POST /augment/text-parser (extract text from PDF/DOCX/XLSX/plain text, multipart, up to 25MB, JSON or plain text response), POST /augment/scrape (fetch a URL and return markdown; blocks X/Reddit), and POST /augment/search (Brave ZDR or anonymized Google; structured title/url/content/date results, up to 20 per query). Privacy (zero data retention), rate limits, and error shapes. |
Venice Augment (text parse / scrape / search)
Three lightweight helpers for agent pipelines that need document text, web pages, or search results without spinning up your own crawler.
| Endpoint | Input | Output | Privacy |
|---|
POST /augment/text-parser | multipart/form-data file (PDF / DOCX / XLSX / plain text, ≤ 25 MB) | { text, tokens } JSON or plain text | In-memory only, zero retention |
POST /augment/scrape | { url } | { url, content (markdown), format: "markdown" } | Zero retention |
POST /augment/search | { query, limit?, search_provider? } | { query, results: [{ title, url, content, date }] } | Brave ZDR / Google anonymized; zero retention |
All three accept Bearer API key or SIWE (x402 wallet). All three are priced dynamically ($0.001–$10.00).
POST /augment/text-parser — extract text from documents
Request
Always multipart/form-data:
| Field | Notes |
|---|
file | Required. PDF, DOCX, XLSX, or plain text. Max 25 MB. |
response_format | json (default) or text. |
curl -X POST https://api.venice.ai/api/v1/augment/text-parser \
-H "Authorization: Bearer $VENICE_API_KEY" \
-F "file=@./contract.pdf" \
-F "response_format=json"
Response
response_format=json:
{
"text": "…extracted plaintext…",
"tokens": 3821
}
response_format=text — raw plaintext body (Content-Type: text/plain).
Tips
tokens is the count of the extracted text — use it to pre-budget a downstream chat request.
- Scanned image PDFs are not OCR'd. Run images through a vision model via
/chat/completions instead.
- Documents are processed in memory only and content is not retained after the response. (Operational metadata like request IDs and error traces may still be logged for debugging — this is a no-content-retention guarantee, not a zero-log guarantee.)
POST /augment/scrape — URL → markdown
Request
{ "url": "https://example.com/article" }
curl -X POST https://api.venice.ai/api/v1/augment/scrape \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
Response
{
"url": "https://example.com",
"content": "# Example Domain\n\nThis domain is for use in …",
"format": "markdown"
}
Tips
- Blocked sites — X/Twitter and Reddit reject automated access and return
400 immediately. Use enable_x_search or enable_web_search on /chat/completions for those.
- Some sites may return a partial body. Verify with the returned
content length before piping into a model.
- Use together with
/chat/completions: scrape → feed markdown into messages → summarize.
- For bulk scraping, issue requests in parallel; each is billed independently.
POST /augment/search — web search
Request
| Field | Notes |
|---|
query | 1–400 chars. Required. |
limit | 1–20. Default 10. |
search_provider | "brave" (default, ZDR) or "google" (anonymized). |
curl -X POST https://api.venice.ai/api/v1/augment/search \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "venice ai api pricing",
"limit": 5,
"search_provider": "brave"
}'
Response
{
"query": "venice ai api pricing",
"results": [
{
"title": "Pricing — Venice.ai",
"url": "https://venice.ai/pricing",
"content": "Venice offers per-token pricing …",
"date": "2026-04-10"
}
]
}
Providers
| Provider | Retention | Bias / filter |
|---|
brave (default) | Zero Data Retention — Brave never stores queries. | Safesearch defaults, Brave Index. |
google | Anonymized — proxied through Venice so Google doesn't see you; Venice doesn't log queries. | Google ranking. |
Tips
- Pair with
/chat/completions + venice_parameters.enable_web_citations to generate cited answers. See venice-chat.
- For "search + read" pipelines, feed
results[*].url into /augment/scrape in parallel.
query is validated as 1–400 chars. Anything longer is rejected (400 INVALID_REQUEST), not truncated.
Errors
| Status | Cause |
|---|
400 | Missing/oversized file, unsupported format, URL on a blocklist (X, Reddit), empty query, query > 400 chars. |
401 | Missing/invalid Bearer or SIWE. |
402 | Insufficient balance. x402 wallets receive the PAYMENT-REQUIRED header with base64 top-up instructions; Bearer users get INSUFFICIENT_BALANCE. |
403 | Unauthorized access. |
429 | Rate limit tripped. Back off with jitter. |
500 | Upstream fetch / parse failure. Safe to retry. |
Response headers
X-Balance-Remaining — remaining x402 credit (x402 auth only).
Content-Encoding — present when Accept-Encoding: gzip, br is sent (text-parser + scrape outputs compress well).
Patterns
- Document QA — Upload PDF via
/augment/text-parser, pass text into a /chat/completions system message, ask questions.
- Research agent —
/augment/search → parallel /augment/scrape → /chat/completions with all markdown bodies.
- Data extraction — XLSX via text-parser surfaces tab-delimited cell data you can then pipe to a model with
response_format: { type: "json_schema", ... }.
- Citation pipeline — Use
/augment/search to pick sources, then give the chat model venice_parameters.enable_web_citations: true for inline [n] marks.