Appearance
REST API - Endpoints Reference
Complete reference for all available API endpoints, including request/response formats, parameters, and examples.
📋 Table of Contents
- Overview
- Authentication
- Tickets
- Contacts
- Customers
- Users
- Organizations
- Conversations
- Settings
- Knowledge Base
- FAQs
- Posts
- Notes
- Dashboard
- Reports
- AI Features
- Media
- Notifications
Overview
All endpoints follow RESTful conventions:
- GET - Retrieve resources
- POST - Create resources
- PUT/PATCH - Update resources
- DELETE - Delete resources
Base URL
https://your-domain.com/api/v1Common Query Parameters
Most list endpoints support:
page- Page number (default: 1)per_page- Items per page (default: 15, max: 100)search- Search querysort- Sort fieldorder- Sort direction (ascordesc)
Common Response Headers
Content-Type: application/json
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45Authentication
Manage user authentication and session management.
Login
POST /api/v1/auth/loginRequest Body:
json
{
"email": "user@example.com",
"password": "your-password"
}Response:
json
{
"success": true,
"data": {
"user": {
"id": 1,
"first_name": "John",
"last_name": "Doe",
"email": "user@example.com",
"role": { ... }
},
"token": "1|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"token_type": "Bearer"
}
}Register
POST /api/v1/auth/registerRequest Body:
json
{
"first_name": "John",
"last_name": "Doe",
"email": "newuser@example.com",
"password": "secure-password",
"password_confirmation": "secure-password"
}Response:
json
{
"success": true,
"data": {
"user": { ... },
"token": "1|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"token_type": "Bearer"
}
}Get Current User
GET /api/v1/auth/meHeaders:
Authorization: Bearer {token}Response:
json
{
"success": true,
"data": {
"id": 1,
"first_name": "John",
"last_name": "Doe",
"email": "user@example.com",
"role": { ... },
...
}
}Logout
POST /api/v1/auth/logoutHeaders:
Authorization: Bearer {token}Response:
json
{
"success": true,
"message": "Logged out successfully",
"data": null
}Request Password Reset
POST /api/v1/auth/password/resetRequest Body:
json
{
"email": "user@example.com"
}Response:
json
{
"success": true,
"message": "Password reset link sent to your email",
"data": null
}Reset Password with Token
POST /api/v1/auth/password/reset/{token}Request Body:
json
{
"email": "user@example.com",
"password": "new-secure-password",
"password_confirmation": "new-secure-password"
}Response:
json
{
"success": true,
"message": "Password reset successfully",
"data": null
}📝 Note: For detailed authentication documentation, see the Authentication Guide.
Tickets
Manage support tickets - create, update, track, and resolve customer issues.
List Tickets
GET /api/v1/ticketsQuery Parameters:
search- Search in subject, UID, status, prioritypriority_id- Filter by prioritystatus_id- Filter by statustype_id- Filter by typecategory_id- Filter by categorydepartment_id- Filter by departmentuser_id- Filter by customerassigned_to- Filter by assigned agentdate_from- Filter from date (YYYY-MM-DD)date_to- Filter to date (YYYY-MM-DD)type- Special filters:un_assigned,open,newpage- Page numberper_page- Items per pagesort- Sort field (id, subject, created_at, updated_at, priority_id, status_id)order- Sort direction (asc, desc)
Response:
json
{
"success": true,
"data": [
{
"id": 1,
"uid": "100001",
"subject": "Need help with login",
"details": "I cannot log in to my account",
"status": {
"id": 1,
"name": "Open",
"slug": "open"
},
"priority": {
"id": 1,
"name": "High",
"color": "#ff0000"
},
"category": { ... },
"department": { ... },
"user": { ... },
"assignedTo": { ... },
"created_at": "2025-01-15T10:30:00.000000Z",
"updated_at": "2025-01-15T10:30:00.000000Z"
}
],
"meta": {
"pagination": {
"current_page": 1,
"per_page": 15,
"total": 100,
"last_page": 7
}
}
}Get Single Ticket
GET /api/v1/tickets/{id}Accepts either ticket id or uid.
Response:
json
{
"success": true,
"data": {
"id": 1,
"uid": "100001",
"subject": "Need help with login",
"details": "Full ticket details...",
"status": { ... },
"priority": { ... },
"category": { ... },
"subCategory": { ... },
"department": { ... },
"ticketType": { ... },
"contact": { ... },
"user": { ... },
"assignedTo": { ... },
"attachments": [ ... ],
"comments": [ ... ],
"ticketEntries": [ ... ],
"created_at": "2025-01-15T10:30:00.000000Z"
}
}Create Ticket
POST /api/v1/ticketsRequest Body:
json
{
"subject": "New Support Request",
"details": "Detailed description of the issue",
"priority_id": 1,
"category_id": 1,
"department_id": 1,
"type_id": 1,
"contact_id": 1,
"assigned_to": 2,
"due_date": "2025-01-20",
"tags": ["urgent", "billing"]
}Response (201):
json
{
"success": true,
"data": {
"id": 123,
"uid": "100123",
"subject": "New Support Request",
...
}
}Update Ticket
PUT /api/v1/tickets/{id}
PATCH /api/v1/tickets/{id}Request Body:
json
{
"subject": "Updated Subject",
"status_id": 2,
"priority_id": 2,
"assigned_to": 3
}Delete Ticket
DELETE /api/v1/tickets/{id}Response (204): No content
Restore Ticket
POST /api/v1/tickets/{id}/restoreRestore a soft-deleted ticket.
Add Comment
POST /api/v1/tickets/{id}/commentsRequest Body:
json
{
"comment": "This is a comment on the ticket",
"is_internal": false
}Response:
json
{
"success": true,
"data": {
"id": 1,
"comment": "This is a comment on the ticket",
"user": { ... },
"created_at": "2025-01-15T10:30:00.000000Z"
}
}Get Comments
GET /api/v1/tickets/{id}/commentsGet Ticket Conversations
GET /api/v1/tickets/{id}/conversationsImport Tickets
POST /api/v1/tickets/importRequest: Multipart form data with CSV file
Export Tickets
GET /api/v1/tickets/exportQuery Parameters: Same as list tickets for filtering
Response: CSV file download
Contacts
Manage customer contacts and their information.
List Contacts
GET /api/v1/contactsQuery Parameters:
search- Search in name, email, phonepage,per_page,sort,order
Get Contact
GET /api/v1/contacts/{id}Create Contact
POST /api/v1/contactsRequest Body:
json
{
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"phone": "+1234567890",
"organization_id": 1
}Update Contact
PUT /api/v1/contacts/{id}
PATCH /api/v1/contacts/{id}Delete Contact
DELETE /api/v1/contacts/{id}Restore Contact
POST /api/v1/contacts/{id}/restoreCustomers
Manage customer accounts and profiles.
List Customers
GET /api/v1/customersGet Customer
GET /api/v1/customers/{id}Create Customer
POST /api/v1/customersRequest Body:
json
{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@example.com",
"password": "secure-password",
"password_confirmation": "secure-password",
"phone": "+1234567890",
"organization_id": 1
}Update Customer
PUT /api/v1/customers/{id}
PATCH /api/v1/customers/{id}Delete Customer
DELETE /api/v1/customers/{id}Restore Customer
POST /api/v1/customers/{id}/restoreUsers
Manage system users (agents, admins, managers).
List Users
GET /api/v1/usersQuery Parameters:
search- Search in name, emailrole_id- Filter by rolepage,per_page,sort,order
Get User
GET /api/v1/users/{id}Create User
POST /api/v1/usersRequest Body:
json
{
"first_name": "Agent",
"last_name": "User",
"email": "agent@example.com",
"password": "secure-password",
"password_confirmation": "secure-password",
"role_id": 2,
"department_id": 1
}Update User
PUT /api/v1/users/{id}
PATCH /api/v1/users/{id}Delete User
DELETE /api/v1/users/{id}Restore User
POST /api/v1/users/{id}/restoreList Pending Users
GET /api/v1/users/pendingGet list of users awaiting approval.
Approve User
POST /api/v1/users/pending/{id}/approveDecline User
POST /api/v1/users/pending/{id}/declineOrganizations
Manage organizations and multi-tenant data.
List Organizations
GET /api/v1/organizationsGet Organization
GET /api/v1/organizations/{id}Create Organization
POST /api/v1/organizationsRequest Body:
json
{
"name": "Acme Corporation",
"email": "contact@acme.com",
"phone": "+1234567890",
"address": "123 Main St",
"city": "New York",
"state": "NY",
"zip": "10001",
"country": "US"
}Update Organization
PUT /api/v1/organizations/{id}
PATCH /api/v1/organizations/{id}Delete Organization
DELETE /api/v1/organizations/{id}Restore Organization
POST /api/v1/organizations/{id}/restoreConversations
Manage real-time chat conversations.
List Conversations
GET /api/v1/conversationsQuery Parameters:
search- Search in messagestype- Filter by type (customer, internal)status- Filter by statuspage,per_page
Get Conversation
GET /api/v1/conversations/{id}Create Conversation
POST /api/v1/conversationsRequest Body:
json
{
"ticket_id": 1,
"type": "customer",
"subject": "Chat about ticket"
}Update Conversation
PUT /api/v1/conversations/{id}
PATCH /api/v1/conversations/{id}Delete Conversation
DELETE /api/v1/conversations/{id}Restore Conversation
POST /api/v1/conversations/{id}/restoreSend Message
POST /api/v1/conversations/{id}/messagesRequest Body:
json
{
"message": "Hello, how can I help you?",
"is_internal": false
}Get Messages
GET /api/v1/conversations/{id}/messagesQuery Parameters:
page,per_page
Mark as Read
POST /api/v1/conversations/{id}/mark-readSettings
Manage system settings including categories, priorities, statuses, departments, types, and roles.
Categories
Manage ticket categories.
List Categories
GET /api/v1/settings/categoriesQuery Parameters:
search- Search in namepage,per_page,sort,order
Get Category
GET /api/v1/settings/categories/{id}Create Category
POST /api/v1/settings/categoriesRequest Body:
json
{
"name": "Technical Support",
"description": "Technical issues and support"
}Update Category
PUT /api/v1/settings/categories/{id}
PATCH /api/v1/settings/categories/{id}Delete Category
DELETE /api/v1/settings/categories/{id}Restore Category
POST /api/v1/settings/categories/{id}/restorePriorities
Manage ticket priorities.
List Priorities
GET /api/v1/settings/prioritiesQuery Parameters:
search- Search in namepage,per_page,sort,order
Get Priority
GET /api/v1/settings/priorities/{id}Create Priority
POST /api/v1/settings/prioritiesRequest Body:
json
{
"name": "High",
"color": "#ff0000"
}Update Priority
PUT /api/v1/settings/priorities/{id}
PATCH /api/v1/settings/priorities/{id}Delete Priority
DELETE /api/v1/settings/priorities/{id}Restore Priority
POST /api/v1/settings/priorities/{id}/restoreStatuses
Manage ticket statuses.
List Statuses
GET /api/v1/settings/statusesQuery Parameters:
search- Search in name, slugpage,per_page,sort,order
Get Status
GET /api/v1/settings/statuses/{id}Create Status
POST /api/v1/settings/statusesRequest Body:
json
{
"name": "In Progress",
"slug": "in_progress"
}Note: Slug is auto-generated from name if not provided.
Update Status
PUT /api/v1/settings/statuses/{id}
PATCH /api/v1/settings/statuses/{id}Request Body:
json
{
"name": "In Progress",
"slug": "in_progress"
}Delete Status
DELETE /api/v1/settings/statuses/{id}Restore Status
POST /api/v1/settings/statuses/{id}/restoreDepartments
Manage departments.
List Departments
GET /api/v1/settings/departmentsQuery Parameters:
search- Search in namepage,per_page,sort,order
Get Department
GET /api/v1/settings/departments/{id}Create Department
POST /api/v1/settings/departmentsRequest Body:
json
{
"name": "Customer Support",
"description": "Customer support department"
}Update Department
PUT /api/v1/settings/departments/{id}
PATCH /api/v1/settings/departments/{id}Delete Department
DELETE /api/v1/settings/departments/{id}Restore Department
POST /api/v1/settings/departments/{id}/restoreTypes
Manage ticket types.
List Types
GET /api/v1/settings/typesQuery Parameters:
search- Search in namepage,per_page,sort,order
Get Type
GET /api/v1/settings/types/{id}Create Type
POST /api/v1/settings/typesRequest Body:
json
{
"name": "Bug Report"
}Update Type
PUT /api/v1/settings/types/{id}
PATCH /api/v1/settings/types/{id}Delete Type
DELETE /api/v1/settings/types/{id}Restore Type
POST /api/v1/settings/types/{id}/restoreRoles
Manage user roles and permissions.
List Roles
GET /api/v1/settings/rolesQuery Parameters:
search- Search in namepage,per_page,sort,order
Get Role
GET /api/v1/settings/roles/{id}Create Role
POST /api/v1/settings/rolesRequest Body:
json
{
"name": "Support Agent",
"slug": "agent",
"permissions": ["view_tickets", "create_tickets"]
}Update Role
PUT /api/v1/settings/roles/{id}
PATCH /api/v1/settings/roles/{id}Delete Role
DELETE /api/v1/settings/roles/{id}Knowledge Base
Manage knowledge base articles.
List Articles
GET /api/v1/knowledge-baseQuery Parameters:
search- Search in title, detailstype_id- Filter by typepage,per_page,sort,order
Get Article
GET /api/v1/knowledge-base/{id}Create Article
POST /api/v1/knowledge-baseRequest Body:
json
{
"title": "How to Reset Password",
"type_id": 1,
"details": "Step-by-step guide to reset your password..."
}Update Article
PUT /api/v1/knowledge-base/{id}
PATCH /api/v1/knowledge-base/{id}Delete Article
DELETE /api/v1/knowledge-base/{id}FAQs
Manage frequently asked questions.
List FAQs
GET /api/v1/faqsGet FAQ
GET /api/v1/faqs/{id}Create FAQ
POST /api/v1/faqsRequest Body:
json
{
"name": "How do I contact support?",
"details": "You can contact support via email or phone...",
"status": true
}Update FAQ
PUT /api/v1/faqs/{id}
PATCH /api/v1/faqs/{id}Delete FAQ
DELETE /api/v1/faqs/{id}Restore FAQ
POST /api/v1/faqs/{id}/restorePosts
Manage blog posts and articles.
List Posts
GET /api/v1/postsGet Post
GET /api/v1/posts/{id}Create Post
POST /api/v1/postsRequest Body:
json
{
"title": "New Blog Post",
"details": "Post content...",
"excerpt": "Short excerpt",
"type_id": 1,
"is_active": true,
"image": "path/to/image.jpg"
}Update Post
PUT /api/v1/posts/{id}
PATCH /api/v1/posts/{id}Delete Post
DELETE /api/v1/posts/{id}Notes
Manage personal and shared notes.
List Notes
GET /api/v1/notesQuery Parameters:
search- Search in name, detailsuser_id- Filter by userpage,per_page
Get Note
GET /api/v1/notes/{id}Create Note
POST /api/v1/notesRequest Body:
json
{
"name": "Meeting Notes",
"details": "Notes from the meeting...",
"user_id": 1
}Update Note
PUT /api/v1/notes/{id}
PATCH /api/v1/notes/{id}Delete Note
DELETE /api/v1/notes/{id}Dashboard
Access dashboard data, metrics, and analytics.
Get Dashboard Data
GET /api/v1/dashboardReturns overview statistics and recent activity.
Get Metrics
GET /api/v1/dashboard/metricsReturns key performance metrics.
Get Analytics
GET /api/v1/dashboard/analyticsReturns detailed analytics data.
Get Performance Data
GET /api/v1/dashboard/performanceReturns performance metrics and trends.
Get Charts Data
GET /api/v1/dashboard/chartsReturns data formatted for charting.
Reports
Generate and access reports.
List Reports
GET /api/v1/reportsGenerate Report
POST /api/v1/reports/generateRequest Body:
json
{
"type": "tickets",
"date_from": "2025-01-01",
"date_to": "2025-01-31",
"format": "pdf"
}Get Report
GET /api/v1/reports/{id}AI Features
Access AI-powered features for intelligent automation.
Get AI Status
GET /api/v1/ai/statusReturns AI service status and configuration.
Get Analytics
GET /api/v1/ai/analyticsReturns AI analytics and insights.
Batch Classify Tickets
POST /api/v1/ai/batch-classifyRequest Body:
json
{
"ticket_ids": [1, 2, 3, 4, 5]
}Get Settings
GET /api/v1/ai/settingsUpdate Settings
POST /api/v1/ai/settingsResponse Suggestions
POST /api/v1/ai/response-suggestionsRequest Body:
json
{
"ticket_id": 1,
"context": "Customer is asking about refund"
}Sentiment Analysis
POST /api/v1/ai/sentiment-analysisRequest Body:
json
{
"text": "I am very frustrated with this service"
}Knowledge Base Suggestions
GET /api/v1/ai/knowledge-base/suggestionsQuery Parameters:
query- Search querylimit- Number of suggestions
Get Ticket Suggestions
GET /api/v1/ai/tickets/{id}/suggestionsClassify Ticket
POST /api/v1/ai/tickets/{id}/classifyApply Classification
POST /api/v1/ai/tickets/{id}/apply-classificationRequest Body:
json
{
"classification_id": 1
}Get Classification History
GET /api/v1/ai/tickets/{id}/classification-historyMedia
Manage file uploads and attachments.
List Media
GET /api/v1/mediaUpload Media
POST /api/v1/mediaRequest: Multipart form data
file- File to upload (required)ticket_id- Optional ticket association
Response:
json
{
"success": true,
"data": {
"id": 1,
"name": "document.pdf",
"size": 1024000,
"path": "media/document.pdf",
"ticket_id": 1,
"created_at": "2025-01-15T10:30:00.000000Z"
}
}Get Media
GET /api/v1/media/{id}Update Media
PUT /api/v1/media/{id}
PATCH /api/v1/media/{id}Request Body:
json
{
"name": "Updated Name",
"ticket_id": 2
}Delete Media
DELETE /api/v1/media/{id}Notifications
Manage user notifications.
List Notifications
GET /api/v1/notificationsQuery Parameters:
page,per_pageunread_only- Filter unread only
Mark as Read
POST /api/v1/notifications/{id}/readMark All as Read
POST /api/v1/notifications/read-allNext Steps
- Code Examples - See endpoints in action
- Error Handling - Understand API errors
- Rate Limiting - Manage API usage
For detailed request/response examples, see the Code Examples guide.