Open WebUI API Skill
Complete API integration for Open WebUI - a unified interface for LLMs including Ollama, OpenAI, and other providers.
When to Use
Activate this skill when the user wants to:
- •List available models from their Open WebUI instance
- •Send chat completions to models through Open WebUI
- •Upload files for RAG (Retrieval Augmented Generation)
- •Manage knowledge collections and add files to them
- •Use Ollama proxy endpoints (generate, embed, pull models)
- •Generate images or process audio through Open WebUI
- •Check Ollama status or manage models (load, unload, delete)
- •Create or manage pipelines
Do NOT activate for:
- •Installing or configuring Open WebUI server itself (use system admin skills)
- •General questions about what Open WebUI is (use general knowledge)
- •Troubleshooting Open WebUI server issues (use troubleshooting guides)
- •Local file operations unrelated to Open WebUI API
Prerequisites
Environment Variables (Recommended)
export OPENWEBUI_URL="http://localhost:3000" # Your Open WebUI instance URL export OPENWEBUI_TOKEN="your-api-key-here" # From Settings > Account in Open WebUI
Authentication
- •Bearer Token authentication required
- •Token obtained from Open WebUI: Settings > Account
- •Alternative: JWT token for advanced use cases
Activation Triggers
Example requests that SHOULD activate this skill:
- •"List all models available in my Open WebUI"
- •"Send a chat completion to llama3.2 via Open WebUI with prompt 'Explain quantum computing'"
- •"Upload /path/to/document.pdf to Open WebUI knowledge base"
- •"Create a new knowledge collection called 'Research Papers' in Open WebUI"
- •"Generate an embedding for 'Open WebUI is great' using the nomic-embed-text model"
- •"Pull the llama3.2 model through Open WebUI Ollama proxy"
- •"Get Ollama status from my Open WebUI instance"
- •"Chat with gpt-4 using my Open WebUI with RAG enabled on collection 'docs'"
- •"Generate an image using Open WebUI with prompt 'A futuristic city'"
- •"Delete the old-model from Open WebUI Ollama"
Example requests that should NOT activate this skill:
- •"How do I install Open WebUI?" (Installation/Admin)
- •"What is Open WebUI?" (General knowledge)
- •"Configure the Open WebUI environment variables" (Server config)
- •"Troubleshoot why Open WebUI won't start" (Server troubleshooting)
- •"Compare Open WebUI to other UIs" (General comparison)
Workflow
1. Configuration Check
- •Verify
OPENWEBUI_URLandOPENWEBUI_TOKENare set - •Validate URL format (http/https)
- •Test connection with GET /api/models or /ollama/api/tags
2. Operation Execution
Use the CLI tool or direct API calls:
# Using the CLI tool (recommended) python3 scripts/openwebui-cli.py --help python3 scripts/openwebui-cli.py models list python3 scripts/openwebui-cli.py chat --model llama3.2 --message "Hello" # Using curl (alternative) curl -H "Authorization: Bearer $OPENWEBUI_TOKEN" \ "$OPENWEBUI_URL/api/models"
3. Response Handling
- •HTTP 200: Success - parse and present JSON
- •HTTP 401: Authentication failed - check token
- •HTTP 404: Endpoint/model not found
- •HTTP 422: Validation error - check request parameters
Core API Endpoints
Chat & Completions
| Endpoint | Method | Description |
|---|---|---|
/api/chat/completions | POST | OpenAI-compatible chat completions |
/api/models | GET | List all available models |
/ollama/api/chat | POST | Native Ollama chat completion |
/ollama/api/generate | POST | Ollama text generation |
Ollama Proxy
| Endpoint | Method | Description |
|---|---|---|
/ollama/api/tags | GET | List Ollama models |
/ollama/api/pull | POST | Pull/download a model |
/ollama/api/delete | DELETE | Delete a model |
/ollama/api/embed | POST | Generate embeddings |
/ollama/api/ps | GET | List loaded models |
RAG & Knowledge
| Endpoint | Method | Description |
|---|---|---|
/api/v1/files/ | POST | Upload file for RAG |
/api/v1/files/{id}/process/status | GET | Check file processing status |
/api/v1/knowledge/ | GET/POST | List/create knowledge collections |
/api/v1/knowledge/{id}/file/add | POST | Add file to knowledge base |
Images & Audio
| Endpoint | Method | Description |
|---|---|---|
/api/v1/images/generations | POST | Generate images |
/api/v1/audio/speech | POST | Text-to-speech |
/api/v1/audio/transcriptions | POST | Speech-to-text |
Safety & Boundaries
Confirmation Required
Always confirm before:
- •Deleting models (
DELETE /ollama/api/delete) - Irreversible - •Pulling large models - May take significant time/bandwidth
- •Deleting knowledge collections - Data loss risk
- •Uploading sensitive files - Privacy consideration
Redaction & Security
- •Never log the full API token - Redact to
sk-...XXXXformat - •Sanitize file paths - Verify files exist before upload
- •Validate URLs - Ensure HTTPS for external instances
- •Handle errors gracefully - Don't expose stack traces with tokens
Workspace Safety
- •File uploads default to workspace directory
- •Confirm before accessing files outside workspace
- •No sudo/root operations required (pure API client)
Examples
List Models
python3 scripts/openwebui-cli.py models list
Chat Completion
python3 scripts/openwebui-cli.py chat \ --model llama3.2 \ --message "Explain the benefits of RAG" \ --stream
Upload File for RAG
python3 scripts/openwebui-cli.py files upload \ --file /path/to/document.pdf \ --process
Add File to Knowledge Base
python3 scripts/openwebui-cli.py knowledge add-file \ --collection-id "research-papers" \ --file-id "doc-123-uuid"
Generate Embeddings (Ollama)
python3 scripts/openwebui-cli.py ollama embed \ --model nomic-embed-text \ --input "Open WebUI is great for LLM management"
Pull Model (Confirmation Required)
python3 scripts/openwebui-cli.py ollama pull \ --model llama3.2:70b # Agent must confirm: "This will download ~40GB. Proceed? [y/N]"
Check Ollama Status
python3 scripts/openwebui-cli.py ollama status
Error Handling
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid or missing token | Verify OPENWEBUI_TOKEN |
| 404 Not Found | Model/endpoint doesn't exist | Check model name spelling |
| 422 Validation Error | Invalid parameters | Check request body format |
| 400 Bad Request | File still processing | Wait for processing completion |
| Connection refused | Wrong URL | Verify OPENWEBUI_URL |
Edge Cases
File Processing Race Condition
Files uploaded for RAG are processed asynchronously. Before adding to knowledge:
- •Upload file → get file_id
- •Poll
/api/v1/files/{id}/process/statusuntilstatus: "completed" - •Then add to knowledge collection
Large Model Downloads
Pulling models (e.g., 70B parameters) can take hours. Always:
- •Confirm with user before starting
- •Show progress if possible
- •Allow cancellation
Streaming Responses
Chat completions support streaming. Use --stream flag for real-time output or collect full response for non-streaming.
CLI Tool Reference
The included CLI tool (scripts/openwebui-cli.py) provides:
- •Automatic authentication from environment variables
- •Structured JSON output with optional formatting
- •Built-in help for all commands
- •Error handling with user-friendly messages
- •Progress indicators for long operations
Run python3 scripts/openwebui-cli.py --help for full usage.