Skip to main content
POST
/
v1
/
research
curl --request POST \
  --url https://api.octen.ai/v1/research \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "model": "minimax/minimax-m2.5",
  "messages": [
    {
      "role": "user",
      "content": "Progress and key milestones of the Artemis program"
    }
  ],
  "max_tokens": 20000,
  "reasoning": {
    "effort": "medium"
  },
  "web_search_options": {
    "count": 10,
    "highlight": {
      "enable": true,
      "max_tokens": 300
    }
  }
}
'
{
  "type": "status",
  "request_id": "20260403120000003ABCDE12345",
  "object": "research.chunk",
  "created": 1775361600,
  "model": "minimax/minimax-m2.5",
  "status": "Analyzing your question..."
}

Documentation Index

Fetch the complete documentation index at: https://docs.octen.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-api-key
string
header
required

API key used for request authentication. Obtain an API key before using the API. Note: A payment method is required to use the API.

Body

application/json

Request body for the Deep Research API.

messages
object[]
required

Conversation messages. Only the last role=user message is used as the research question; other messages are ignored and do not enter plan generation, search, analysis, or report writing.

model
enum<string>
default:minimax/minimax-m2.5

The model used for plan generation, analysis, brief construction, and the final report.

Available options:
anthropic/claude-sonnet-4.6,
anthropic/claude-opus-4.6,
anthropic/claude-haiku-4.5,
google/gemini-3-flash-preview,
google/gemini-3.1-pro-preview,
google/gemini-3.1-flash-lite-preview,
openai/gpt-5.4,
openai/gpt-oss-120b,
moonshotai/kimi-k2.5,
minimax/minimax-m2.5
extra_context
string

Additional research background, constraints, or preferences, used as extra context for query rewriting and research direction supplementation.

max_tokens
integer

Maximum output tokens for the final report. When unset or 0, the selected model uses its own default.

max_rounds
integer
default:5

Upper bound on the number of research rounds.

Required range: 1 <= x <= 10
reasoning
object

Controls reasoning effort. Only applied to reasoning-capable models.

skip_brief
boolean
default:false

Skip the Research Brief stage and write the final report directly from raw search and analysis results.

Note: when enabled, no brief event is emitted. Clients can rebuild the citation index by accumulating search_results events in the order they arrive (round-by-round / query-by-query / result-by-result) into a global index, then look up the corresponding url/title by the N in [^N].

skip_plan
boolean
default:false

Phase 1 only. Skip the Research Plan stage and proceed straight to the search loop. With skip_plan=true, the call never enters the Phase 2 pause mechanism.

skip_plan_confirm
boolean
default:false

Phase 1 only. When true, the run continues with all angles even if the plan is ambiguous, instead of pausing and waiting for the user to confirm a selection.

plan_id
string

Phase 2 only. The plan ID returned by a Phase 1 plan event with requires_selection=true. When provided, the server skips plan generation and applies the supplied selections against the stored plan. Each plan_id is retained for 30 minutes; after expiry the plan is regenerated.

selections
object[]

Phase 2 only. The user's corrections and angle filtering against the Phase 1 plan.

web_search_options
object

Search-related options. Queries are generated by the plan / adaptive stage. highlight.max_tokens defaults to 256.

Response

Successful Deep Research response. Always streamed as Server-Sent Events.

A streaming chunk of a Deep Research response.

request_id
string
required

The unique identifier for this request.

created
number
required

Unix timestamp (in seconds) of when the chunk was created.

model
string
required

The model used for this completion.

type
enum<string>

The type of this streaming chunk.

Available options:
status,
plan,
queries,
search_done,
analysis,
brief,
content,
finish,
usage,
error
object
enum<string>

The object type, always research.chunk.

Available options:
research.chunk
round
integer

Current research round. Present only in queries, search_done, and analysis chunks.

latency
integer

Latency in milliseconds for the stage represented by this chunk.

status
string

Pipeline progress copy. Present only in status chunks.

plan
object

Research plan generated in Phase 1. Carried by plan chunks.

plan_id
string

Plan ID carried by plan chunks. The client must echo this back as plan_id when entering Phase 2.

queries
string[]

Sub-queries generated for this round. Present only in queries chunks.

search_result_count
integer

Total number of search results returned this round. Present only in search_done chunks.

search_results
object[]

Search results for this round, one group per sub-query. Present only in search_done chunks.

analysis
object

Analysis output for one research round. Carried by analysis chunks.

brief
object

Report outline and evidence set. Carried by brief chunks.

choices
object[]

Incremental choices for the final report. Present in content and finish chunks.

meta
object

Usage and latency metadata for the Deep Research call. Carried by usage chunks.