rocketQuick start

Audience: End users

Quick Start Guide

This guide gets you started with the GL Open DeepResearch service using the GL Open DeepResearch Language Binding (gl-odr). You create tasks or task groups with the SDK, then stream events or poll for status and the final result.

Prerequisites

  • Python >=3.11,<3.13

  • API Key from GL Open DeepResearch Team

  • Base URL (default): https://open-deepresearch.glair.ai/

Install the library

pip install gl-odr

Or with uv:

uv add gl-odr

Profile-based usage

GL Open DeepResearch is profile-based: every research request (task or taskgroup) must include a profile name. The profile defines which provider runs (e.g. Tongyi or GPT-Researcher) and with which settings (model, depth, timeouts). You only send the profile name and your query—no provider or model config in the request.

In the steps below we use the ESSENTIAL profile. Available profiles are documented in the API Contract — Profiles. To use a different model (e.g. Claude) or create your own configuration, create a new profile via the Profiles API and then use its name in your SDK calls. For details and an example (create a new profile and use it with Claude), see Research Profiles — Examples.

Step 1: Get Your API Key

Contact the GL Open DeepResearch Team to obtain your API key. Configure it via the api_key argument or the GLODR_API_KEY environment variable.

Step 2: Create a Client and a Task (or Task Group)

Initialize the client and create a single task or a task group with one or more queries.

Task group with one or more queries:

Note: Save the taskgroup_id and tasks list—you'll need them to track and stream research.

Step 3: Stream Events (optional)

Monitor progress in real time by streaming events for a task or a whole task group.

Stream from a specific task:

Stream from all tasks in a group:

Stream one task within a group:

Event types: THINKING_START, THINKING, THINKING_END, ACTIVITY, RESPONSE. See Structured outputs for details. Events are retained for 24 hours.

Step 4: Get Task Status

Check status without fetching the full result:

Task status values: PENDING, RECEIVED, STARTED, SUCCESS, FAILURE, REVOKED, RETRY.

Task group status values: EMPTY, PENDING, STARTED, SUCCESS, FAILURE, PARTIAL_FAILURE.

Step 5: Get the Final Result

When a task has completed (SUCCESS), retrieve the result:

From a task group:

Available Profiles

Profile management is described in the API Contract — Profiles. To list or create profiles, use the HTTP API (see api-profiles.md); the SDK focuses on tasks and taskgroups.

Next Steps

Last updated