---
title: "Perform deep research on a given query"
method: POST
path: "/deep-research/research"
tags: ["Deep Research"]
---

# Perform deep research on a given query

`POST /deep-research/research`

Conducts advanced research on the provided text query and returns results in the specified output format

## Request body

- object
  - `text` string, required — The research query text
  - `outputType` 'text' | 'json', required — The format of the output result. When set to json, the response is serialized JSON.
  - `jsonFormat` string — Optional instructions or template describing the JSON structure to generate.
  - `provider` 'gemini' | 'openai' — The AI provider to use for research (defaults to gemini)
  - `projectIds` string[] — Optional array of project IDs to add context from their descriptions
  - `files` string[] — Optional array of file URLs or uploaded file IDs (from /files) to attach to the research request
  - `callbackData` string — Optional callback data to be returned with the response
  - `isScheduled` boolean — If true, creates a recurring schedule instead of a one-time request
  - `dailyCount` integer — Number of times per day to execute the research (default 1, only used when isScheduled is true)
  - `scheduleEndDate` string, date-time — Optional end date for the schedule (only used when isScheduled is true). If not provided, schedule runs indefinitely.

## Response `200`

Research request or schedule submitted successfully

- union
  - object — Response for a one-time research request
    - `request_id` string — The unique ID of the created research request
  - object — Response for a scheduled research request
    - `schedule_id` string — The unique ID of the created schedule
    - `message` string — Confirmation message for the schedule
    - `dailyCount` integer — Number of times per day the research will execute
    - `endDate` string, date-time — End date for the schedule, or null if no end date

## Other responses

- `400` — Bad request - validation error or unauthorized access
- `401` — Unauthorized - invalid or missing token
- `500` — Internal server error

---

[API](https://skmtc.net/autocontentapi/apis/content-api.md) · [All operations](https://skmtc.net/autocontentapi/apis/content-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/autocontentapi/content-api/revisions/355890b6b4cc/schema)
