Implementation:Infiniflow Ragflow Canvas API Endpoints
Appearance
| Knowledge Sources | |
|---|---|
| Domains | RAG, Agent_Systems, API_Design |
| Last Updated | 2026-02-12 06:00 GMT |
Overview
Concrete tool for deploying and sharing agent workflows via REST API endpoints provided by RAGFlow canvas_app.
Description
The canvas_app module provides several deployment-related endpoints: POST /canvas/setting for permission/metadata updates, GET /canvas/getsse/<id> for API-token authenticated canvas retrieval, POST /canvas/<id>/completion for external agent execution with optional trace, and GET /canvas/<id>/sessions for session management.
Usage
Used for deploying agents for external access and managing deployed agent sessions.
Code Reference
Source Location
- Repository: ragflow
- File: api/apps/canvas_app.py
- Lines: L110-129 (getsse), L189-230 (exp_agent_completion), L525-548 (setting), L565-598 (sessions)
Signature
# Permission/metadata update
@manager.route('/setting', methods=['POST'])
async def setting():
"""Update canvas title, permission, description, avatar."""
# API-token authenticated access
@manager.route('/getsse/<canvas_id>', methods=['GET'])
def getsse(canvas_id):
"""Get canvas via API token (Authorization: Bearer <token>)."""
# External agent execution with trace
@manager.route('/<canvas_id>/completion', methods=['POST'])
async def exp_agent_completion(canvas_id):
"""Execute agent with optional return_trace."""
# Session management
@manager.route('/<canvas_id>/sessions', methods=['GET'])
def sessions(canvas_id):
"""List sessions with pagination and filtering."""
Import
# These are REST endpoints, not directly importable
# Access via HTTP: POST /canvas/setting, GET /canvas/getsse/<id>, etc.
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| canvas_id | str | Yes | Agent canvas ID |
| Authorization | str | Yes (for getsse) | Bearer API token |
| return_trace | bool | No | Enable execution tracing |
Outputs
| Name | Type | Description |
|---|---|---|
| setting | int | Updated row count |
| getsse | dict | Full canvas data |
| completion | SSE stream | Agent execution events with optional trace |
| sessions | dict | {total: int, sessions: list} |
Usage Examples
import requests
# Deploy with team permission
url = "http://localhost:9380/canvas/setting"
payload = {
"id": "canvas-uuid-123",
"title": "Customer Support Agent",
"permission": "team",
"description": "Handles customer inquiries"
}
requests.post(url, json=payload, headers=headers)
# External access via API token
url = f"http://localhost:9380/canvas/getsse/{canvas_id}"
headers = {"Authorization": f"Bearer {api_token}"}
response = requests.get(url, headers=headers)
Related Pages
Implements Principle
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment