Skip to main content

Overview

The Research API allows you to submit research tasks that run asynchronously in the background. You can research a topic, analyze specific sources, or both. Each task returns a task ID that you can use to track progress and retrieve results.

Submit Research Task

POST /research

Submit a new research task for topic or sources analysis

Request

notebook_id
string
required
The notebook ID to store the research results
topic
string
The research topic to investigate (minimum 3 characters). Either topic or sources must be provided.
sources
array
Array of sources to research. Either topic or sources must be provided.

Response

task_id
string
Unique identifier for the submitted task
notebook_id
string
The notebook ID where results will be stored
status
string
Current task status: IN_QUEUE
message
string
Human-readable status message

Example Request

curl -X POST https://api.decipherit.com/research \
  -H "Content-Type: application/json" \
  -d '{
    "notebook_id": "nb_123456",
    "topic": "quantum computing applications"
  }'

Example Response

{
  "task_id": "task_abc123",
  "notebook_id": "nb_123456",
  "status": "IN_QUEUE",
  "message": "Research task submitted and will be processed."
}

Error Responses

400 Bad Request
object

Get Task Status

GET /research/{task_id}

Retrieve status and results of a research task

Request

task_id
string
required
The unique task identifier returned when submitting the research task

Response

task_id
string
Unique identifier for the task
notebook_id
string
The notebook ID where results are stored
topic
string
The research topic (if provided)
sources
array
Array of research sources (if provided)
status
string
Current task status: IN_QUEUE, IN_PROGRESS, COMPLETED, or FAILED
created_at
datetime
ISO 8601 timestamp when the task was created
result
object
Task results (available when status is COMPLETED)
error
string
Error message (available when status is FAILED)
completed_at
datetime
ISO 8601 timestamp when the task completed (if applicable)
failed_at
datetime
ISO 8601 timestamp when the task failed (if applicable)

Example Request

curl -X GET https://api.decipherit.com/research/task_abc123

Example Response (In Progress)

{
  "task_id": "task_abc123",
  "notebook_id": "nb_123456",
  "topic": "quantum computing applications",
  "sources": null,
  "status": "IN_PROGRESS",
  "created_at": "2026-03-03T10:30:00Z",
  "result": null,
  "error": null,
  "completed_at": null,
  "failed_at": null
}

Example Response (Completed)

{
  "task_id": "task_abc123",
  "notebook_id": "nb_123456",
  "topic": "quantum computing applications",
  "sources": null,
  "status": "COMPLETED",
  "created_at": "2026-03-03T10:30:00Z",
  "result": {
    "content": "Research findings...",
    "sources": [...]
  },
  "error": null,
  "completed_at": "2026-03-03T10:32:15Z",
  "failed_at": null
}

Error Responses

404 Not Found
object

Submit Research with Sources

Example: Research URLs

curl -X POST https://api.decipherit.com/research \
  -H "Content-Type: application/json" \
  -d '{
    "notebook_id": "nb_123456",
    "sources": [
      {
        "source_type": "URL",
        "source_url": "https://example.com/article1"
      },
      {
        "source_type": "URL",
        "source_url": "https://example.com/article2"
      }
    ]
  }'

Example: Research Manual Content

curl -X POST https://api.decipherit.com/research \
  -H "Content-Type: application/json" \
  -d '{
    "notebook_id": "nb_123456",
    "sources": [
      {
        "source_type": "MANUAL",
        "source_content": "Your custom research content here..."
      }
    ]
  }'

Example: Combined Topic and Sources

{
  "notebook_id": "nb_123456",
  "topic": "renewable energy trends",
  "sources": [
    {
      "source_type": "URL",
      "source_url": "https://example.com/solar-power-report"
    }
  ]
}

Build docs developers (and LLMs) love