Skip to main content
Starts a Deep Research run: Windy plans the research, sends researchers to gather evidence across your company’s connected tools, and writes a report. The call returns as soon as the run is queued. Read the run with Get a run and the returned runId until its status is COMPLETED or FAILED, then open the report from the run’s output.
Runs take minutes, not seconds.

Authorization

This endpoint works with any valid API key. The run belongs to the member who created the key, and only that member can read it back.
The key’s creator must be in the org chart. Deep Research researches on behalf of a person, so the member who created the API key must have an employee record in your company. A key created by a member without one returns 404 Not Found.

Path parameters

string
required
Your company’s slug. Find it in your Dashboard URL, right after /s/:https://app.gowindmill.com/s/{companySlug}/home

Body parameters

string
required
The research question or task, 1 to 4,000 characters. State the outcome you want from the report. Windy infers the people and the period from the prompt when you don’t pass employeeFilter or timeRange.
object
The employees the research is about. When you pass it, every researcher stays inside this set. When you omit it, Windy picks people from the prompt, and the scope can end up wider than you intended.This filter is a subset of the employee filter the other endpoints accept. It has only the fields below; any other field fails validation with a 400.
object
The period the research covers, as whole days in the key creator’s timezone. When you pass it, every researcher stays inside it. When you omit it, Windy infers the period from the prompt.

Response

A 201 means the run exists. Check status: it is RUNNING in the normal case.
string
required
The run’s id. Pass it to Get a run.
string
required
RUNNING once the run is under way. FAILED when Windmill created the run but could not start it. Get the run for the reason, then start a new one.
string
required
ISO 8601 time the run was started.

Errors

Validation errors carry the field path so you can fix the request: