Skip to main content
The Workflows API enables templated, reproducible research designed for automation. Unlike the conversational Research Agent, Workflows uses parameterized templates that produce consistent outputs across executions.

Workflows vs Research Agent

Core Concepts

Templates

Templates are reusable research specifications that define:
  • Prompt: The research question with Jinja2 placeholders (e.g., {{ company_id }})
  • Expected inputs: Typed parameters the template requires
  • Content filters: Optional restrictions on which sources to search
  • Research plan: Optional predefined steps for structured execution
  • Expected output: Optional report template describing the final answer’s structure, tone, and format

Research Plan Behavior

The Workflows API behavior is controlled by the presence of a research_plan:
  • Without a plan: The agent dynamically determines research steps based on your prompt.
  • With a plan: The agent follows your predefined steps for structured, predictable output.

Input Types

Templates support two input types:
  • rp_entity_id: A Bigdata entity ID (e.g., company identifier like D8442A)
  • string: Free-form text input

Quickstart Guide

Get started with your first workflow execution

Creating Templates

Learn how to build effective templates

Research Plans

Learn how research plans affect execution

Community Templates

Discover and clone shared templates

API Endpoints

The Workflows API provides the following endpoints:

Available Models

Select the model that best fits your use case:

Time Range Options

Control the time range of research data: Rolling time ranges:
  • last_24_hours
  • last_7_days
  • last_30_days
  • last_60_days
  • last_90_days
  • last_180_days
  • last_365_days
Custom date range:

Streaming Response

The Workflows API returns responses via Server-Sent Events (SSE). Each event wraps a typed payload in a delta field. The most common message types:
This list is abbreviated. For the full set of 11 public message types — including LLM_RETRY, TOOL_ERROR, and STRUCTURED_OUTPUT — their field schemas, when each fires, and a copy-paste Python handler, see Streaming responses.