API Endpoints Reference
Complete reference for all LaraDashboard REST API endpoints including users, posts, roles, permissions, settings, and more.
API Endpoints Reference
This document provides a complete reference for all LaraDashboard REST API endpoints.
Base URL
https://yourdomain.com/api/v1
Authentication
All endpoints require authentication unless noted. See Authentication.
Authorization: Bearer <token>
Accept: application/json
Content-Type: application/json
Users
List Users
GET /api/v1/users
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
search |
string | Search by name or email |
role |
string | Filter by role name |
status |
string | Filter: active, inactive |
per_page |
integer | Items per page (default: 15) |
page |
integer | Page number |
sort |
string | Sort field: name, email, -created_at |
Response:
{
"data": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"avatar_url": "https://...",
"roles": ["admin"],
"created_at": "2024-01-15T10:30:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 50,
"last_page": 4
},
"links": {
"first": "...",
"last": "...",
"next": "...",
"prev": null
}
}
Get User
GET /api/v1/users/{id}
Response:
{
"data": {
"id": 1,
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"avatar_url": "https://...",
"roles": ["admin"],
"permissions": ["users.view", "posts.create"],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
}
Create User
POST /api/v1/users
Request Body:
{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@example.com",
"password": "securepassword",
"password_confirmation": "securepassword",
"role": "editor"
}
Response (201 Created):
{
"data": {
"id": 2,
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@example.com",
...
}
}
Update User
PUT /api/v1/users/{id}
Request Body:
{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane.doe@example.com",
"role": "admin"
}
Delete User
DELETE /api/v1/users/{id}
Response: 204 No Content
Bulk Delete Users
POST /api/v1/users/bulk-delete
Request Body:
{
"ids": [1, 2, 3]
}
Roles
List Roles
GET /api/v1/roles
Response:
{
"data": [
{
"id": 1,
"name": "admin",
"display_name": "Administrator",
"description": "Full system access",
"users_count": 5,
"permissions_count": 25
}
]
}
Get Role
GET /api/v1/roles/{id}
Response includes permissions:
{
"data": {
"id": 1,
"name": "admin",
"permissions": [
{"id": 1, "name": "users.view"},
{"id": 2, "name": "users.create"}
]
}
}
Create Role
POST /api/v1/roles
Request Body:
{
"name": "content-manager",
"display_name": "Content Manager",
"description": "Manages content",
"permissions": [1, 2, 3, 4]
}
Update Role
PUT /api/v1/roles/{id}
Delete Role
DELETE /api/v1/roles/{id}
Permissions
List Permissions
GET /api/v1/permissions
Get Permission Groups
GET /api/v1/permissions/groups
Response:
{
"data": {
"users": [
{"id": 1, "name": "users.view"},
{"id": 2, "name": "users.create"}
],
"posts": [
{"id": 3, "name": "posts.view"},
{"id": 4, "name": "posts.create"}
]
}
}
Posts
List Posts
GET /api/v1/posts/{postType?}
Post Types: post, page, or custom types
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
search |
string | Search title and content |
status |
string | draft, published, scheduled |
category |
integer | Category ID |
author |
integer | Author user ID |
from |
date | Created after date |
to |
date | Created before date |
include |
string | Relations: author,categories |
Response:
{
"data": [
{
"id": 1,
"title": "My Post",
"slug": "my-post",
"excerpt": "Post excerpt...",
"status": "published",
"featured_image": "https://...",
"published_at": "2024-01-15T10:30:00Z",
"author": {
"id": 1,
"name": "John Doe"
},
"categories": [
{"id": 1, "name": "Technology"}
]
}
],
"meta": {...}
}
Get Post
GET /api/v1/posts/{postType}/{id}
Create Post
POST /api/v1/posts/{postType}
Request Body:
{
"title": "New Post Title",
"content": "Post content here...",
"status": "draft",
"categories": [1, 2],
"tags": [3, 4],
"published_at": "2024-02-01T10:00:00Z"
}
Update Post
PUT /api/v1/posts/{postType}/{id}
Delete Post
DELETE /api/v1/posts/{postType}/{id}
Bulk Delete Posts
POST /api/v1/posts/{postType}/bulk-delete
Terms (Categories/Tags)
List Terms
GET /api/v1/terms/{taxonomy}
Taxonomies: category, tag, or custom
Get Term
GET /api/v1/terms/{taxonomy}/{id}
Create Term
POST /api/v1/terms/{taxonomy}
Request Body:
{
"name": "Technology",
"slug": "technology",
"description": "Tech related posts",
"parent_id": null
}
Update Term
PUT /api/v1/terms/{taxonomy}/{id}
Delete Term
DELETE /api/v1/terms/{taxonomy}/{id}
Settings
Get All Settings
GET /api/v1/settings
Response:
{
"data": {
"site_name": "My Site",
"site_description": "A great site",
"admin_email": "admin@example.com",
...
}
}
Get Single Setting
GET /api/v1/settings/{key}
Update Settings
PUT /api/v1/settings
Request Body:
{
"site_name": "New Site Name",
"site_description": "Updated description"
}
Modules
List Modules
GET /api/v1/modules
Response:
{
"data": [
{
"name": "CRM",
"alias": "crm",
"description": "Customer management",
"version": "1.0.0",
"is_enabled": true
}
]
}
Get Module
GET /api/v1/modules/{name}
Toggle Module Status
PATCH /api/v1/modules/{name}/toggle-status
Delete Module
DELETE /api/v1/modules/{name}
Email Templates
List Templates
GET /api/v1/email-templates
Get Template by Type
GET /api/v1/email-templates/by-type/{type}
Get Template Content
GET /api/v1/email-templates/{id}/content
Create Template
POST /api/v1/email-templates
Request Body:
{
"name": "Welcome Email",
"slug": "welcome-email",
"type": "system",
"subject": "Welcome to {{app_name}}",
"content": "<html>...</html>"
}
Update Template
PUT /api/v1/email-templates/{id}
Delete Template
DELETE /api/v1/email-templates/{id}
Notifications
List Notifications
GET /api/v1/notifications
Get by Type
GET /api/v1/notifications/by-type/{type}
Get by Receiver Type
GET /api/v1/notifications/by-receiver-type/{type}
Create Notification
POST /api/v1/notifications
Update Notification
PUT /api/v1/notifications/{id}
Delete Notification
DELETE /api/v1/notifications/{id}
Action Logs
List Logs
GET /api/v1/action-logs
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
user_id |
integer | Filter by user |
action |
string | Filter: created, updated, deleted |
model_type |
string | Filter by model class |
from |
date | After date |
to |
date | Before date |
Get Log
GET /api/v1/action-logs/{id}
AI Content
Get Providers
GET /api/v1/ai/providers
Response:
{
"data": [
{
"name": "openai",
"display_name": "OpenAI",
"models": ["gpt-4", "gpt-3.5-turbo"],
"is_configured": true
},
{
"name": "claude",
"display_name": "Anthropic Claude",
"models": ["claude-3-opus"],
"is_configured": false
}
]
}
Generate Content
POST /api/v1/ai/generate-content
Request Body:
{
"prompt": "Write a blog post about...",
"provider": "openai",
"options": {
"max_tokens": 1000,
"temperature": 0.7
}
}
Response:
{
"content": "Generated content here...",
"usage": {
"prompt_tokens": 50,
"completion_tokens": 500,
"total_tokens": 550
}
}
Translations
Get Translations
GET /api/translations/{lang}
Response:
{
"auth.login": "Login",
"auth.logout": "Logout",
"users.title": "Users",
...
}
Common Response Codes
| Code | Description |
|---|---|
| 200 | Success |
| 201 | Created |
| 204 | No Content (successful delete) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 422 | Validation Error |
| 429 | Too Many Requests |
| 500 | Server Error |
Error Response Format
{
"message": "Human readable error message",
"error": "error_code",
"errors": {
"field_name": ["Validation error message"]
}
}
Next Steps
- Authentication - Token management
- Rate Limiting - API limits
- API Development - Building APIs