Base URL
All API requests should be made to your Frappe Helpdesk instance URL:API Architecture
Frappe Helpdesk uses the Frappe Framework’s API conventions:- Custom Methods: Whitelisted Python functions in
helpdesk/api/modules - Standard CRUD: Built-in endpoints for DocTypes (
frappe.client.*) - Real-time: WebSocket support via Socket.IO for live updates
Custom API Methods
Custom API endpoints are Python functions decorated with@frappe.whitelist():
Standard CRUD Operations
For any DocType (HD Ticket, HD Agent, HD Article, etc.), you can use Frappe’s built-in client methods:Request Format
HTTP Methods
GET- Retrieve dataPOST- Create or execute custom methodsPUT- Update dataDELETE- Delete data
Content Type
All POST/PUT requests should use:Request Body
For custom methods, pass parameters as JSON:Response Format
Success Response
Successful API calls return JSON with this structure:Error Response
Errors return HTTP status codes with error details:HTTP Status Codes
200- Success201- Created400- Bad Request401- Unauthorized403- Forbidden404- Not Found500- Internal Server Error
Available Resources
Frappe Helpdesk provides APIs for the following resources:Tickets
Create, update, and manage support tickets
Agents
Manage agents and send invitations
Contacts
Search and manage customer contacts
Articles
Create and manage knowledge base articles
Saved Replies
Template responses with Jinja2 rendering
Assignment Rules
Automated ticket routing and assignment
API Endpoints by Module
The Frappe Helpdesk API is organized by module:| Module | Location | Purpose |
|---|---|---|
| Tickets | helpdesk.api.ticket | Ticket management and assignment |
| Agents | helpdesk.api.agent | Agent invitations and management |
| Contacts | helpdesk.api.contact | Contact search |
| Articles | helpdesk.api.article | Knowledge base operations |
| Knowledge Base | helpdesk.api.knowledge_base | Article retrieval and search |
| Assignment Rules | helpdesk.api.assignment_rule | Rule management |
| Saved Replies | helpdesk.api.saved_replies | Template rendering |
| Dashboard | helpdesk.api.dashboard | Analytics and metrics |
| Search | helpdesk.api.search | Global search |
Rate Limiting
Frappe includes built-in rate limiting. Some endpoints use the@rate_limit decorator:
Pagination
For list queries, uselimit_start and limit_page_length:
Filtering and Sorting
Use Frappe’s filter syntax:Real-time Updates
Frappe Helpdesk uses Socket.IO for real-time notifications. Connect to:- New ticket assignments
- Status changes
- New comments
- Mentions
Testing the API
You can test API methods from the Frappe console:Next Steps
Authentication
Learn about API authentication methods
Ticket API
Start with the most commonly used API