Source-backed web research

Move from a research question to pages you can inspect. Save the sources behind an observation instead of only the final summary.

curl -X POST https://api.luni.gg/v1/search \
  -H "Authorization: Bearer $LUNI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: example-search-da1c50539d72" \
  -d '{
  "query": "public documentation content pipelines",
  "limit": 5,
  "scrapeOptions": {
    "formats": [
      "markdown"
    ]
  }
}'

Separate discovery from evidence

Write a bounded question and use search to find candidate pages. Alternatively, start from a list of sources you already trust and scrape them directly. A ranked result helps you choose a source; its position does not establish the truth of a claim.

Keep the query, returned URL and the time you retrieved the source. Inspect the document before relying on it, especially when a result points to a short page, an error or content that has changed.

Read the pages that matter

Fetch full content only for sources that are relevant to the question. Use Markdown for reading and retrieval, or retain raw HTML when you need to inspect the fetched markup. Keep notes or generated summaries separate from the original extracted content.

The search contract supports up to 25 results per query. A completed query costs two credits, with one additional credit for each successfully fetched result page. Broad research should be split into deliberate queries with a known budget.

Make review possible

When you export a research note, include the source URL for each observation and distinguish quoted evidence from interpretation. If you run a model over the documents, build the summarization and citation checks in your own application.

Luni supplies web content rather than a verdict about its authority, freshness or completeness. Corroborate important findings, and preserve enough source context that another person can reproduce your reasoning.