Skip to main content
Use the official fetch-hive-sdk package when you want to send a message to an agent from Python. The SDK wraps the public POST /v1/agent/invoke endpoint, handles authentication, supports streaming and multimodal inputs, and exposes both synchronous and asyncio variants.

Installation

The SDK requires Python 3.9+ and uses httpx under the hood.

Authentication

Set the FETCH_HIVE_API_KEY environment variable to your workspace API key (the SDK reads it automatically):
Or pass the key explicitly:
See API Keys for how to create and rotate keys.

Basic example

Send a message to an agent and read the final response:
See the non-streaming response shape.

Method reference

The SDK injects streaming: false for invoke_agent. To stream, use invoke_agent_stream (below).

Handling the response

Streaming

Use invoke_agent_stream to receive Server-Sent Events as they arrive. The method returns a generator that yields parsed event dicts:
The stream yields the same event types documented in Invoke Agent → Response: summary (when auto-summarization fires), reasoning, response, tool, a final usage event, or an error event if the provider fails mid-stream.

Async streaming

For asyncio applications, use ainvoke_agent_stream. It has the same arguments but returns an async iterator:

Multi-turn conversations

Persistent threads

Pass any string as thread_id and Fetch Hive will create the thread on the first call and resume it on subsequent calls with the same value:

Stateless history

Manage state yourself by passing the previous turns in messages. Fetch Hive uses the supplied history for context but does not persist it:

Multimodal inputs

Attach images to the current message with attachments:
URLs must start with https://.

Configuration

Errors

Non-2xx responses raise an httpx.HTTPStatusError with the status code and response body:
See Errors and Rate Limits for status code meanings.

Next steps

Tool approvals

When a tool needs approval, the invoke response has status: "awaiting_approval" and pending_tool_approvals. Decide with decide_tool_action_approval. decision is "allow_once" or "deny". List pending approvals with list_tool_action_approvals, or fetch one with get_tool_action_approval. always_allow is only available in the dashboard. An API key call resumes on the server after the decision. Poll the run or use the webhook. Do not send decided_tool_approvals. A workspace owner or admin can allow this API key to auto-approve actions in Settings → API keys. Pass tool_approval as "auto_approve" on invoke_agent, invoke_agent_stream, or invoke_workflow. That applies to this call only. Omit the field, or pass "policy", to follow workspace rules and any saved auto-approve switch. Destructive actions still ask. Deny rules still block the action. See Tool approvals.