Research
Execute AI-powered research queries that search the web, analyze sources, and synthesize comprehensive answers. This endpoint always streams responses using Server-Sent Events (SSE).
Streaming Response:
- All responses are streamed using Server-Sent Events (
text/event-stream) - Real-time progress updates as research progresses through phases
Research Modes:
fast- Quick answers with minimal web searches (default)balanced- Standard research with multiple iterations
Use Cases:
- Answering complex questions with cited sources
- Synthesizing information from multiple web sources
- Research reports on specific topics
- Fact-checking and verification tasks
Body ParametersJSONExpand Collapse
ReturnsExpand Collapse
ResearchEvent = object { data, event } or object { data, event } or object { data, event } or 20 moreA Server-Sent Event from /v1/research. Typed discriminated union keyed on event.
A Server-Sent Event from /v1/research. Typed discriminated union keyed on event.
AnalyzingEnd object { data, event } Envelope for the “analyzing:end” event from /v1/research.
Envelope for the “analyzing:end” event from /v1/research.
Complete object { data, event } Envelope for the “complete” event from /v1/research.
Envelope for the “complete” event from /v1/research.
data: object { message, metadata, report, timestamp } complete - Research finished successfully
complete - Research finished successfully
metadata: object { executedQueries, mode, prompt, 11 more } Research metadata
Note: citedPages, gapEvaluations, outline, and judgments are optional to support fast mode, which skips these phases for maximum speed.
Research metadata
Note: citedPages, gapEvaluations, outline, and judgments are optional to support fast mode, which skips these phases for maximum speed.
mode: "fast" or "balanced" or "deep" or 2 moreResearch mode determines depth, thinking budget, and quality controls
Modes (in order of cost/thoroughness):
- fast: Quick answers with minimal validation (~$2, 1 iteration, no judge)
- balanced: Standard research with moderate depth (~$8, 3 iterations, Flash models, no judge)
- deep: Thorough research with judge review (~$15, 5 iterations, Flash models, with judge)
- max: Maximum quality with Pro models (~$40, 5 iterations, Pro models, with judge)
- ultra: Ultimate tier - all Pro models, 10 iterations (expensive, for when accuracy is paramount)
Research mode determines depth, thinking budget, and quality controls
Modes (in order of cost/thoroughness):
- fast: Quick answers with minimal validation (~$2, 1 iteration, no judge)
- balanced: Standard research with moderate depth (~$8, 3 iterations, Flash models, no judge)
- deep: Thorough research with judge review (~$15, 5 iterations, Flash models, with judge)
- max: Maximum quality with Pro models (~$40, 5 iterations, Pro models, with judge)
- ultra: Ultimate tier - all Pro models, 10 iterations (expensive, for when accuracy is paramount)
citedPages: optional array of object { id, claims, sourceQueries, 9 more } Pages cited in the report, ordered by first citation appearance
Pages cited in the report, ordered by first citation appearance
gapEvaluations: optional array of object { gapDescription, questionAssessments, researchCoverage, 3 more }
Based on unanswered/partial questions, what specific information is still needed?
questionAssessments: array of object { findings, question, status } Assessment of each research question’s status and findings
Assessment of each research question’s status and findings
researchCoverage: "Light" or "Moderate" or "Solid" or "Comprehensive"Research coverage level - assesses quality across all questions.
Hierarchy: Light < Moderate < Solid < Comprehensive
- Light: Basic info on some questions, most need more depth → Continue
- Moderate: Multiple questions answered, some remain partial → Continue
- Solid: Most questions well-answered with validated sources → Sufficient to stop
- Comprehensive: All questions thoroughly answered, exceptional depth → Definitely stop
Research coverage level - assesses quality across all questions.
Hierarchy: Light < Moderate < Solid < Comprehensive
- Light: Basic info on some questions, most need more depth → Continue
- Moderate: Multiple questions answered, some remain partial → Continue
- Solid: Most questions well-answered with validated sources → Sufficient to stop
- Comprehensive: All questions thoroughly answered, exceptional depth → Definitely stop
Explicit decision: should research continue with another iteration?
- Considers: how many questions unanswered/partial, coverage for mode, remaining iterations
- Drives query generation: true → generate queries, false → stop researching
New research questions to add (optional, use sparingly)
- Only if original decomposition missed something critical
- Maximum 2-3 new questions total across all iterations
- Most iterations should return empty array or omit this field
Search queries to address identified gaps (only when shouldContinueResearch is true)
- Target unanswered questions first, then partial questions
- 3-10 targeted queries if shouldContinueResearch is true
- Omit or provide empty array if shouldContinueResearch is false
metrics: optional object { cachedFetches, cachedSearches, fetches, 7 more } Complete research metrics
Complete research metrics
Error object { data, event } Envelope for the “error” event from /v1/research.
Envelope for the “error” event from /v1/research.
EvaluatingEnd object { data, event } Envelope for the “evaluating:end” event from /v1/research.
Envelope for the “evaluating:end” event from /v1/research.
FollowingEnd object { data, event } Envelope for the “following:end” event from /v1/research.
Envelope for the “following:end” event from /v1/research.
IterationEnd object { data, event } Envelope for the “iteration:end” event from /v1/research.
Envelope for the “iteration:end” event from /v1/research.
PrefetchingStart object { data, event } Envelope for the “prefetching:start” event from /v1/research.
Envelope for the “prefetching:start” event from /v1/research.
ResearchEvent = object { data, event } or object { data, event } or object { data, event } or 20 moreA Server-Sent Event from /v1/research. Typed discriminated union keyed on event.
A Server-Sent Event from /v1/research. Typed discriminated union keyed on event.
AnalyzingEnd object { data, event } Envelope for the “analyzing:end” event from /v1/research.
Envelope for the “analyzing:end” event from /v1/research.
Complete object { data, event } Envelope for the “complete” event from /v1/research.
Envelope for the “complete” event from /v1/research.
data: object { message, metadata, report, timestamp } complete - Research finished successfully
complete - Research finished successfully
metadata: object { executedQueries, mode, prompt, 11 more } Research metadata
Note: citedPages, gapEvaluations, outline, and judgments are optional to support fast mode, which skips these phases for maximum speed.
Research metadata
Note: citedPages, gapEvaluations, outline, and judgments are optional to support fast mode, which skips these phases for maximum speed.
mode: "fast" or "balanced" or "deep" or 2 moreResearch mode determines depth, thinking budget, and quality controls
Modes (in order of cost/thoroughness):
- fast: Quick answers with minimal validation (~$2, 1 iteration, no judge)
- balanced: Standard research with moderate depth (~$8, 3 iterations, Flash models, no judge)
- deep: Thorough research with judge review (~$15, 5 iterations, Flash models, with judge)
- max: Maximum quality with Pro models (~$40, 5 iterations, Pro models, with judge)
- ultra: Ultimate tier - all Pro models, 10 iterations (expensive, for when accuracy is paramount)
Research mode determines depth, thinking budget, and quality controls
Modes (in order of cost/thoroughness):
- fast: Quick answers with minimal validation (~$2, 1 iteration, no judge)
- balanced: Standard research with moderate depth (~$8, 3 iterations, Flash models, no judge)
- deep: Thorough research with judge review (~$15, 5 iterations, Flash models, with judge)
- max: Maximum quality with Pro models (~$40, 5 iterations, Pro models, with judge)
- ultra: Ultimate tier - all Pro models, 10 iterations (expensive, for when accuracy is paramount)
citedPages: optional array of object { id, claims, sourceQueries, 9 more } Pages cited in the report, ordered by first citation appearance
Pages cited in the report, ordered by first citation appearance
gapEvaluations: optional array of object { gapDescription, questionAssessments, researchCoverage, 3 more }
Based on unanswered/partial questions, what specific information is still needed?
questionAssessments: array of object { findings, question, status } Assessment of each research question’s status and findings
Assessment of each research question’s status and findings
researchCoverage: "Light" or "Moderate" or "Solid" or "Comprehensive"Research coverage level - assesses quality across all questions.
Hierarchy: Light < Moderate < Solid < Comprehensive
- Light: Basic info on some questions, most need more depth → Continue
- Moderate: Multiple questions answered, some remain partial → Continue
- Solid: Most questions well-answered with validated sources → Sufficient to stop
- Comprehensive: All questions thoroughly answered, exceptional depth → Definitely stop
Research coverage level - assesses quality across all questions.
Hierarchy: Light < Moderate < Solid < Comprehensive
- Light: Basic info on some questions, most need more depth → Continue
- Moderate: Multiple questions answered, some remain partial → Continue
- Solid: Most questions well-answered with validated sources → Sufficient to stop
- Comprehensive: All questions thoroughly answered, exceptional depth → Definitely stop
Explicit decision: should research continue with another iteration?
- Considers: how many questions unanswered/partial, coverage for mode, remaining iterations
- Drives query generation: true → generate queries, false → stop researching
New research questions to add (optional, use sparingly)
- Only if original decomposition missed something critical
- Maximum 2-3 new questions total across all iterations
- Most iterations should return empty array or omit this field
Search queries to address identified gaps (only when shouldContinueResearch is true)
- Target unanswered questions first, then partial questions
- 3-10 targeted queries if shouldContinueResearch is true
- Omit or provide empty array if shouldContinueResearch is false
metrics: optional object { cachedFetches, cachedSearches, fetches, 7 more } Complete research metrics
Complete research metrics
Error object { data, event } Envelope for the “error” event from /v1/research.
Envelope for the “error” event from /v1/research.
EvaluatingEnd object { data, event } Envelope for the “evaluating:end” event from /v1/research.
Envelope for the “evaluating:end” event from /v1/research.
FollowingEnd object { data, event } Envelope for the “following:end” event from /v1/research.
Envelope for the “following:end” event from /v1/research.
IterationEnd object { data, event } Envelope for the “iteration:end” event from /v1/research.
Envelope for the “iteration:end” event from /v1/research.
PrefetchingStart object { data, event } Envelope for the “prefetching:start” event from /v1/research.
Envelope for the “prefetching:start” event from /v1/research.
Research
curl https://api.tabstack.ai/v1/research \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $TABSTACK_API_KEY" \
-d '{
"query": "What are the latest developments in quantum computing?",
"fetch_timeout": 30,
"mode": "fast"
}'