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
httpx under the hood.
Authentication
Set theFETCH_HIVE_API_KEY environment variable to your workspace API key (the SDK reads it automatically):
Basic example
Send a message to an agent and read the final response:Method reference
| Argument | Type | Required | Description |
|---|---|---|---|
agent | str | Yes | The agent ID |
message | str | Yes | The message you want to send |
thread_id | str | No | An arbitrary string identifying a persistent conversation thread. Fetch Hive creates the thread on first use and resumes it on subsequent calls. |
messages | list[dict] | No | Caller-managed conversation history. Each item: {"role": "user" | "assistant" | "system", "content": str}. |
image_urls | list[str] | No | HTTPS image URLs attached to the current message for multimodal inputs |
user | str | No | Opaque caller identifier surfaced in User Tracking |
metadata | dict[str, str | int | float | bool | None] | No | Flat caller-defined metadata for audit and log filtering. See Invoke metadata |
streaming: false for invoke_agent. To stream, use invoke_agent_stream (below).
Handling the response
Streaming
Useinvoke_agent_stream to receive Server-Sent Events as they arrive. The method returns a generator that yields parsed event dicts:
summary (when auto-summarization fires), reasoning, response, tool, a final usage event, or an error event if the provider fails mid-stream.
Async streaming
Forasyncio applications, use ainvoke_agent_stream. It has the same arguments but returns an async iterator:
Multi-turn conversations
Persistent threads
Pass any string asthread_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 inmessages. Fetch Hive uses the supplied history for context but does not persist it:
Multimodal inputs
Attach images to the current message withimage_urls:
https://.
Configuration
| Option | Default | Description |
|---|---|---|
api_key | FETCH_HIVE_API_KEY env var | Bearer token from the dashboard |
base_url | https://api.fetchhive.com/v1 | Override the API base URL |
timeout | 120 | Request timeout in seconds |
Errors
Non-2xx responses raise anhttpx.HTTPStatusError with the status code and response body:
Links
Next steps
- Run with API - The same flow with cURL
- Run with Node.js SDK
- Run with Ruby SDK
- Run with PHP SDK
- Invoke Agent - Full endpoint reference

