*** title: Quickstart 'og:title': You.com API Quickstart | Search & Contents APIs for AI Applications 'og:description': >- Get from zero to working API requests in minutes. Covers the Search API, Contents API, live crawling, evaluation, and pricing — everything you need to evaluate You.com. ----------------- You.com gives you real-time web intelligence through two primary APIs: the Search API and the Contents API. This page gets you from zero to a working request — and tells you exactly how to evaluate us. *** ## What You.com offers Returns real-time web and news results as structured, LLM-ready JSON. Use it to ground your AI in fresh information — feed search results directly into your prompt to answer questions without hallucination. Add the `livecrawl` parameter and each result comes back with its full page content, not just a snippet. Give it a list of URLs, get back clean Markdown or HTML. No browser automation, no HTML parsing. One idea: pass your competitors' pricing page URLs to a daily job, get clean Markdown back, and feed that to an LLM to monitor what changed. *** ## Step 1: Get your API key Sign in or create an account at [https://you.com/platform/api-keys](https://you.com/platform/api-keys). You'll start with \$100 in complimentary credits — no credit card required. *** ## Step 2: Try the Search API The Search API takes a natural language query and returns structured web and news results. ```python from youdotcom import You you = You("YOUR_API_KEY") results = you.search.unified(query="global birth rate trends", count=5) for result in results.results.web: print(result.title) print(result.url) if result.snippets: print(result.snippets[0]) print() ``` ```typescript import { You } from "@youdotcom-oss/sdk"; const you = new You({ apiKeyAuth: "YOUR_API_KEY" }); const result = await you.search({ query: "global birth rate trends", count: 5 }); result.results?.web?.forEach((r) => { console.log(r.title, r.url); console.log(r.snippets?.[0]); }); ``` ```curl curl -G https://ydc-index.io/v1/search \ -H "X-API-Key: YOUR_API_KEY" \ --data-urlencode "query=global birth rate trends" \ -d count=5 ``` You'll get back structured JSON like this: ```json maxLines=20 { "results": { "web": [ { "url": "https://www.worldbank.org/en/topic/population", "title": "Population | World Bank", "description": "The World Bank tracks global birth rate and population trends.", "snippets": [ "Global fertility rates have declined significantly over the past five decades, falling from an average of 5 births per woman in 1960 to around 2.3 today." ], "page_age": "2025-10-01T00:00:00", "authors": [], "favicon_url": "https://ydc-index.io/favicon?domain=worldbank.org&size=128" } ] }, "metadata": { "query": "global birth rate trends", "search_uuid": "a1b2c3d4-0000-0000-0000-000000000000", "latency": 0.38 } } ``` Learn how to use [our SDKs](/sdks/python-sdk) to run the example code above. ### Power it up with livecrawl By default, each result includes snippets — short, query-relevant text extracts. Add `livecrawl` and each result also returns the full page content as clean Markdown or HTML. This is the difference between \~200 words of context and 2,000–10,000 words. ```python from youdotcom import You you = You("YOUR_API_KEY") results = you.search.unified( query="global birth rate trends", count=5, livecrawl="all", livecrawl_formats="markdown", ) for result in results.results.web: if result.contents: print(f"{result.title}") print(result.contents.markdown[:400]) print() ``` ```typescript import { You } from "@youdotcom-oss/sdk"; const you = new You({ apiKeyAuth: "YOUR_API_KEY" }); const result = await you.search({ query: "global birth rate trends", count: 5, livecrawl: "all", livecrawlFormats: "markdown", }); result.results?.web?.forEach((r) => { if (r.contents?.markdown) { console.log(r.title); console.log(r.contents.markdown.slice(0, 400)); } }); ``` ```curl curl -G https://ydc-index.io/v1/search \ -H "X-API-Key: YOUR_API_KEY" \ --data-urlencode "query=global birth rate trends" \ -d count=5 \ -d livecrawl=all \ -d livecrawl_formats=markdown ``` Results that support live crawling will include a `contents.markdown` field with the full page. For RAG pipelines that need deep context rather than surface-level snippets, this is the parameter to reach for. [Full Search API reference and all parameters](/search/overview) *** ## Step 3: Try the Contents API The Contents API fetches content from URLs you specify, either as raw HTML, Markdown or both. ```python import requests response = requests.post( "https://ydc-index.io/v1/contents", headers={ "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json", }, json={ "urls": [ "https://competitor-a.com/pricing", "https://competitor-b.com/pricing", ], "formats": ["markdown"], }, ) for page in response.json(): print(f"=== {page['title']} ===") print(page["markdown"][:500]) print() ``` ```typescript const response = await fetch("https://ydc-index.io/v1/contents", { method: "POST", headers: { "X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ urls: [ "https://competitor-a.com/pricing", "https://competitor-b.com/pricing", ], formats: ["markdown"], }), }); const pages = await response.json(); for (const page of pages) { console.log(`=== ${page.title} ===`); console.log(page.markdown?.slice(0, 500)); } ``` ```curl curl -X POST https://ydc-index.io/v1/contents \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "urls": ["https://competitor-a.com/pricing", "https://competitor-b.com/pricing"], "formats": ["markdown"] }' ``` Each URL comes back as a structured object: ```json [ { "url": "https://competitor-a.com/pricing", "title": "Pricing — Competitor A", "markdown": "# Pricing\n\n## Starter\n$49/month...", "metadata": { "site_name": "Competitor A", "favicon_url": "https://ydc-index.io/favicon?domain=competitor-a.com&size=128" } } ] ``` [Full Contents API reference and all parameters](/contents/overview) *** ## More ways to explore ### Explore the APIs interactively right here in the docs * [Search API playground](/api-reference/search/v1-search?explorer=true) * [Contents API playground](/api-reference/contents/contents?explorer=true) ### Use the SDKs Benefit from ergonomic API access, type safety and easy readability. * [Python SDK](/sdks/python-sdk) * [TypeScript SDK](/sdks/typescript-sdk) ### Use a coding agent to write your integration There are 2 easy ways to create context for your agent: 1. Add `/llms-full.txt` to any URL path on this site to obtain the full content of a page in plain-text. For example, `docs.you.com/llms-full.txt` contains complete documentation content including the full text of all pages. This includes the complete API reference with resolved OpenAPI specifications and SDK code examples for enabled languages. 2. Enable your agent to automatically discover and understand You.com APIs using our documentation-specific MCP server. Simply add the following wherever you store your MCP config: ``` "docs.you.com": { "name": "docs.you.com", "url": "https://docs.you.com/_mcp/server", "headers": {} } ``` Now your agent can automatically search the entirety of the You.com documentation as necessary. *** ## Evaluate You.com When you're ready to run a structured evaluation, start simple: use `count=10` with no filters, measure accuracy and latency on a representative query set, then add `livecrawl` if snippets aren't providing enough context. * [How to Evaluate the Search API](/evaluate-us) — methodology, dataset recommendations (SimpleQA, FRAMES, FreshQA), latency benchmarking, and a production checklist * [Agentic Web Search Playoffs](https://github.com/youdotcom-oss/agentic-web-search-playoffs) — open-source benchmark comparing web search providers in agentic workflows Our team can also design and run custom benchmarks for your use case. [Talk to us](https://you.com/evaluations-as-a-service) *** ## Pricing Pricing is based on API calls, with additional costs for live crawling. See the full breakdown at [you.com/platform/upgrade](https://you.com/platform/upgrade) or reach out to [api@you.com](mailto:api@you.com).