First steps with GOTRS - installation, initial setup, and your first ticket.
Production deployment guides for Docker, Kubernetes, and air-gapped environments.
Configure queues, users, groups, automation, and system settings.
REST API documentation for integrations and custom development.
Moving from OTRS to GOTRS - import your existing data and configuration.
Frequently asked questions and common troubleshooting tips.
GOTRS API Reference
RESTful API documentation for integrating with GOTRS.
Note: The complete OpenAPI specification is maintained in the gotrs-ce repository.
Overview
GOTRS provides two API layers:
- v1 API (
/api/v1/*) - RESTful JSON API for programmatic access - Internal API (
/api/*) - Used by the HTMX web interface
Base URL
https://your-gotrs-instance.com/api/v1
Authentication
# Login and get JWT token
curl -X POST https://your-instance.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"your-password"}'
# Use token in subsequent requests
curl -X GET https://your-instance.com/api/v1/tickets \
-H "Authorization: Bearer $JWT_TOKEN"
{
"success": true,
"data": {...},
"pagination": {
"page": 1,
"per_page": 20,
"total": 100,
"total_pages": 5
}
}
{
"success": false,
"error": "Error message description"
}
Core Endpoints
Authentication
| Method | Endpoint | Description |
|---|
| POST | /api/v1/auth/login | Authenticate and get JWT tokens |
| POST | /api/auth/logout | End session |
| POST | /api/auth/refresh | Refresh token |
Tickets
| Method | Endpoint | Description |
|---|
| GET | /api/v1/tickets | List tickets with filtering |
| POST | /api/v1/tickets | Create ticket |
| GET | /api/v1/tickets/:id | Get ticket details |
| PUT | /api/v1/tickets/:id | Update ticket |
| DELETE | /api/v1/tickets/:id | Delete ticket |
| POST | /api/v1/tickets/:id/assign | Assign to agent |
| POST | /api/v1/tickets/:id/close | Close ticket |
| POST | /api/v1/tickets/:id/reopen | Reopen ticket |
| POST | /api/v1/tickets/:id/priority | Update priority |
| POST | /api/v1/tickets/:id/queue | Move to queue |
Articles
| Method | Endpoint | Description |
|---|
| GET | /api/v1/tickets/:id/articles | Get ticket articles |
| POST | /api/v1/tickets/:id/articles | Add article/reply |
| GET | /api/v1/tickets/:id/articles/:article_id | Get specific article |
Bulk Operations
| Method | Endpoint | Description |
|---|
| POST | /api/v1/tickets/bulk/assign | Bulk assign tickets |
| POST | /api/v1/tickets/bulk/close | Bulk close tickets |
| POST | /api/v1/tickets/bulk/priority | Bulk update priority |
| POST | /api/v1/tickets/bulk/queue | Bulk move to queue |
Queues
| Method | Endpoint | Description |
|---|
| GET | /api/v1/queues | List queues |
| POST | /api/v1/queues | Create queue (Admin) |
| GET | /api/v1/queues/:id | Get queue |
| GET | /api/v1/queues/:id/tickets | Get queue tickets |
| GET | /api/v1/queues/:id/stats | Queue statistics |
Users
| Method | Endpoint | Description |
|---|
| GET | /api/v1/users/me | Get current user |
| PUT | /api/v1/users/me | Update profile |
| GET | /api/v1/users/me/preferences | Get preferences |
| PUT | /api/v1/users/me/preferences | Update preferences |
| POST | /api/v1/users/me/password | Change password |
Search
| Method | Endpoint | Description |
|---|
| GET | /api/v1/search | Global search |
| GET | /api/v1/search/tickets | Search tickets |
| GET | /api/v1/search/suggestions | Autocomplete |
| GET | /api/v1/search/saved | Saved searches |
| POST | /api/v1/search/saved | Create saved search |
Dashboard
| Method | Endpoint | Description |
|---|
| GET | /api/v1/dashboard/stats | Dashboard statistics |
| GET | /api/v1/dashboard/activity | Recent activity |
| GET | /api/v1/dashboard/my-tickets | My assigned tickets |
| GET | /api/v1/dashboard/notifications | Notifications |
Admin Endpoints
Requires admin role.
| Method | Endpoint | Description |
|---|
| GET | /api/v1/admin/users | List all users |
| POST | /api/v1/admin/users | Create user |
| GET | /api/v1/admin/users/:id | Get user |
| PUT | /api/v1/admin/users/:id | Update user |
| DELETE | /api/v1/admin/users/:id | Delete user |
| GET | /api/v1/admin/system/config | System config |
| GET | /api/v1/admin/audit/logs | Audit logs |
LDAP Integration
Admin only.
| Method | Endpoint | Description |
|---|
| POST | /api/v1/admin/ldap/configure | Configure LDAP |
| POST | /api/v1/admin/ldap/test | Test connection |
| GET | /api/v1/admin/ldap/config | Get configuration |
| POST | /api/v1/admin/ldap/sync/users | Sync users |
| GET | /api/v1/admin/ldap/sync/status | Sync status |
Health Checks
| Method | Endpoint | Description |
|---|
| GET | /health | Basic health check |
| GET | /health/detailed | Detailed component status |
| GET | /healthz | Kubernetes liveness probe |
| GET | /metrics | Prometheus metrics |
Status Codes
| Code | Description |
|---|
200 | Success |
201 | Created |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
429 | Rate Limited |
500 | Internal Server Error |
Rate Limiting
| Endpoint Type | Limit |
|---|
| Login attempts | 10/minute |
| Password reset | 3/hour |
| Ticket creation (customer) | 10/hour |
| General API | 100/minute |
OpenAPI Specification
The complete OpenAPI 3.0 specification is available in the gotrs-ce repository:
You can use these with tools like Swagger UI, Postman, or code generators.
SDKs
Coming soon:
- TypeScript SDK
- Python SDK
- Go SDK
For the complete API specification, see the gotrs-ce repository.