Quick Start

1. Get your API key

Sign in to the dashboard, click + New key, and copy the value shown. You'll see the raw key once — store it somewhere safe.

2. Submit a job

Send type: "research" and a payload with your topic and budget. Optionally supply seed_sources to anchor the research to known URLs or editor text. You get back a job_id and a status of queued.

curl -X POST https://api.research2llm.com/jobs \
  -H "X-API-Key: r2l_..." \
  -H "Content-Type: application/json" \
  -d '{
    "type": "research",
    "payload": {
      "topic": "LLM context window limits",
      "budget": "low",
      "seed_sources": [{"url": "https://example.com/my-notes"}]
    }
  }'
# {"job_id":"abc-123","status":"queued"}

3. Poll for the result

Fetch the job by id. When status reaches done the result_ref contains verified findings with citations and source metadata; on failed the error_message explains why.

curl https://api.research2llm.com/jobs/abc-123 \
  -H "X-API-Key: r2l_..."
# {
#   "job_id":"abc-123","type":"research","status":"done",
#   "result_ref":{
#     "plan":{"sub_questions":["What is the max context window per model?"]},
#     "findings":[{"id":"f0","text":"...","kind":"fact","citations":["src_1","src_4"],
#                  "status":"established","confidence":1.0,
#                  "context":"As stated by ... on 2026-06-18"}],
#     "sources":[{"id":"src_1","url":"...","title":"...","kind":"web",
#                 "channel":"web","trust_score":0.6,"opt_out_tier":2,"fetched":true}],
#     "stats":{"rounds":1,"sources_scraped":3,"tokens":12345,
#              "cost_usd":0.07,"serper_calls":4,"stop_reason":"complete"},
#     "artifacts":{"raw_learnings_file_id":"..."}
#   },
#   "error_message":null,"created_at":"...","finished_at":"..."
# }

4. Or receive it via webhook

Pass callback_url when submitting and we POST that URL on completion (success or failure) instead of making you poll. The URL is validated against SSRF before the job runs.

curl -X POST https://api.research2llm.com/jobs \
  -H "X-API-Key: r2l_..." \
  -d '{"type":"research","payload":{"topic":"LLM context window limits","budget":"low"},"callback_url":"https://you.com/hook"}'

5. Check your usage

The dashboard's Usage panel shows your research jobs aggregated over time. Every result also reports its own tokens, serper_calls and cost_usd in stats, so you can track spend per run. Billing is free during beta.