How the pipeline works
Each research job progresses through five stages. You can watch them in real time by streaming the events endpoint.The judge stage scores retrieval quality but never blocks a run. Even if it fails, the pipeline continues and you still receive full results.
Starting a research job
Send aPOST /research request with your idea. The endpoint returns immediately with a job ID — research runs in the background.
string
required
Your product idea, up to 5,000 characters. Write it as you would describe it to a colleague.
string
UUID of an existing project to attach this research to. Pass
null to keep it unattached.string
default:"market"
Research mode. Use
market for standard competitive analysis. Use feature to automatically chain into Feature Deep Research on the top 5 features once market research completes.Streaming progress events
Once you have ajob_id, connect to the events endpoint to receive real-time updates. The stream uses newline-delimited JSON (NDJSON) and supports cursor-based resume — if you disconnect, reconnect with cursor=<last_seq> to replay missed events.
curl
Event types
stream_start
stream_start
Emitted immediately on connection. Confirms the stream is live.
stage
stage
Emitted when each pipeline stage starts, completes, is skipped, or fails. Includes timing and counts when available.
progress
progress
Free-text progress messages within a stage.
result
result
Emitted once when the job completes. Contains the full research artifact.
done
done
Signals the stream is finished. Always the final event.
Checking job status
Poll the status endpoint if you prefer not to stream:completed when the research-side DAG terminates at the pick-priorities stage. At that point pipeline_stage is set to priorities_picked in the same update that flips status to completed. Until then, polling clients see status: "running" with an earlier pipeline_stage. Auto-plan-build runs as the build phase after this point and does not delay the completed transition.
Research result shape
Once completed, the result contains the following top-level fields:string
required
UUID of this research job.
string
required
The original idea text you submitted.
string
required
Final status:
completed or failed.object
Structured parse of your idea: problem statement, target user, product type, and market category.
array
Established competitors in the space, each with name, description, key features, and positioning.
array
Newer or smaller players that are gaining traction but haven’t reached scale.
array
Features that matter in this market, ranked by prevalence and strategic importance.
array
Recent market signals: funding rounds, product launches, hiring trends, press coverage.
array
Gaps and underserved opportunities identified from the competitive landscape.
object
Quality scores and a go/no-go recommendation based on market characteristics.
Additional actions
Compare with a previous version
curl
Get remix suggestions
curl
Set reuse scope
Control whether your research can be used as a cache source for other users:curl