goosed) runs as a backend service that handles agent lifecycle, conversation management, and extension coordination.
Base URL
By default, the Goose server runs on:Authentication
Most endpoints require authentication via an API key passed in the request headers:API Categories
The Goose server API is organized into several main categories:Agent Management
Control the agent lifecycle and capabilities:- Start, stop, and restart agents
- Update AI providers and models
- Manage extensions (MCP servers)
- Call tools and read resources
- Handle working directory changes
Session Management
Manage conversation sessions and history:- List and search sessions
- Create, fork, and delete sessions
- Import/export session data
- Update session metadata
- Manage session extensions
Real-time Communication
Stream agent responses and events:- Server-Sent Events (SSE) for message streaming
- Real-time token usage updates
- Tool execution notifications
- Model change events
Configuration Management
- Provider setup and configuration
- Extension management
- Prompt customization
- Permission settings
- Model catalog access
Additional Features
- Recipes: Automated task workflows
- Scheduling: Cron-based recipe execution
- Dictation: Audio transcription
- Local Inference: Download and manage local LLM models
- Telemetry: Usage analytics and diagnostics
Response Format
All API responses use JSON format:HTTP Status Codes
The API uses standard HTTP status codes:| Code | Meaning |
|---|---|
200 | Success |
201 | Created |
204 | No Content (success with no response body) |
400 | Bad Request |
401 | Unauthorized |
404 | Not Found |
424 | Failed Dependency (agent not initialized) |
500 | Internal Server Error |
OpenAPI Specification
The complete OpenAPI specification is available at:ui/desktop/openapi.json.
Common Patterns
Starting a New Chat
- Start an agent with
/agent/start- creates a new session - Resume the agent with
/agent/resume- loads model and extensions - Send a message with
/reply- streams back the agent’s response
Managing Extensions
- List available tools with
/agent/tools?session_id=... - Add an extension with
/agent/add_extension - Remove an extension with
/agent/remove_extension
Session Lifecycle
- Create session via
/agent/start - Get session details with
/sessions/{session_id} - Fork session with
/sessions/{session_id}/forkto branch conversations - Export session with
/sessions/{session_id}/exportfor backup - Delete session with
/sessions/{session_id}
Next Steps
- Agent API Reference - Agent lifecycle and control
- Session API Reference - Session management
- WebSocket & Streaming - Real-time communication