Deep Research
SkillDev toolsThis deep research skill runs long-form web research through DeepAPI and saves a cited report.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Deep Research skill
About this skill
Run deep research through DeepAPI and save a report with sources. Use when asked for deep research, DeepAPI research, or Perplexity deep research.
What this skill tells your AI
The instructions your AI receives, as published by davidondrej/skills in skills/research-and-web/deep-research/SKILL.md and read by ahel’s review.
Use DeepAPI (POST /v1/research/deep) for all deep research.
API key
Read the API key from the environment or your configured secret store. Never source ~/.zshrc; it breaks the shell (exit 126).
KEY=${API_KEY:?Set API_KEY in the environment}
BASE=${DEEPAPI_API_BASE_URL:-https://deepapi.co}
If the key is missing, stop and ask the user. Never print or log it. Get a key at deepapi.co.
1. Build the prompt
Follow the research-prompt skill. Write one self-contained paragraph:
- Lead with the main question and the decision it informs.
- Include all context and 3-6 numbered sub-questions. Keep one mission per prompt.
- State what to include or avoid. Prefer primary sources; separate fact from inference.
Field limits: query ≤ 4000 characters (the prompt), optional context ≤ 8000, optional instructions ≤ 2000. Do not send model or provider; the API rejects them.
2. Run it
One call returns a cited answer, targeting 700-1,120 words. The server allows up to ~5 minutes.
IDK=$(uuidgen) # keep this; retries must reuse the SAME Idempotency-Key
jq -n --rawfile p /tmp/dr_prompt.txt '{query:$p, maxCostUsd:"0.70"}' > /tmp/dr_body.json
curl -s --max-time 320 "$BASE/v1/research/deep" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $IDK" \
-d @/tmp/dr_body.json > /tmp/dr_result.json
Minimum maxCostUsd is "0.35". Default to "0.70"; ask the user before raising it.
3. Save the report
jq -r '.status' /tmp/dr_result.json # succeeded | failed
jq -r '.output.answer' /tmp/dr_result.json # the report
jq -r '.output.sources[]?.url' /tmp/dr_result.json # source URLs
Save a Markdown report with citation URLs beneath it. Only report costs if the user asks. If the answer has [n] citations but output.sources is empty, deliver it and tell the user.
For longer reports, run each numbered sub-question separately with its own Idempotency-Key, then combine the answers and sources into one Markdown file.
Failures and retries
- HTTP 402
insufficient_credits: stop for a top-up at deepapi.co/credits, then retry with the same Idempotency-Key. - HTTP 429
rate_limit_exceeded: waitRetry-Afterseconds, then retry once. status: failed/ HTTP 502: reportrequestIdanderror.message. Do not retry in a loop.- Reusing an Idempotency-Key returns HTTP 200 with
replayed: trueand no new charge. - See the
deepapiskill for envelope/auth details and other endpoints.
Signals
- GitHub stars
- 4k
- Forks
- 598
- Last commit
- Sep 2026
- Hacker News mentions
- 1
Advanced
- Item type
- skill
- Key
deep-research-davidondrej- Source
- github.com/davidondrej/skills