API Documentation
RESTful API reference for your Laravel application
Introduction
This API follows REST principles and returns JSON responses. All requests require authentication via API tokens.
Base URL:
https://yourdomain.com/api/v1
Request Headers
Content-Type: application/json
Accept: application/json
Authorization: Bearer YOUR_API_TOKEN
Authentication
Login
Obtain an API token by providing valid credentials.
POST /api/v1/auth/login
Request Body:
{
"email": "user@example.com",
"password": "password"
}
Response (200 OK):
{
"success": true,
"data": {
"token": "1|abcdefghijklmnopqrstuvwxyz",
"user": {
"id": 1,
"name": "John Doe",
"email": "user@example.com"
}
}
}
Logout
POST /api/v1/auth/logout
Headers:
Authorization: Bearer YOUR_TOKEN
Response (200 OK):
{
"success": true,
"message": "Logged out successfully"
}
Users
Get All Users
GET /api/v1/users
Query Parameters:
page |
Page number (default: 1) |
per_page |
Items per page (default: 15) |
Response (200 OK):
{
"success": true,
"data": {
"users": [
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"created_at": "2024-01-01T00:00:00.000000Z"
}
],
"pagination": {
"total": 100,
"per_page": 15,
"current_page": 1,
"last_page": 7
}
}
}
Get Single User
GET /api/v1/users/{id}
Response (200 OK):
{
"success": true,
"data": {
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"created_at": "2024-01-01T00:00:00.000000Z"
}
}
Create User
POST /api/v1/users
Request Body:
{
"name": "Jane Doe",
"email": "jane@example.com",
"password": "password123",
"password_confirmation": "password123"
}
Response (201 Created):
{
"success": true,
"data": {
"id": 2,
"name": "Jane Doe",
"email": "jane@example.com"
},
"message": "User created successfully"
}
Update User
PUT/PATCH /api/v1/users/{id}
Request Body:
{
"name": "Jane Updated",
"email": "jane.updated@example.com"
}
Delete User
DELETE /api/v1/users/{id}
Response (200 OK):
{
"success": true,
"message": "User deleted successfully"
}
Posts
Get All Posts
GET /api/v1/posts
Response (200 OK):
{
"success": true,
"data": [
{
"id": 1,
"title": "First Post",
"content": "Post content here...",
"author": {
"id": 1,
"name": "John Doe"
},
"created_at": "2024-01-01T00:00:00.000000Z"
}
]
}
Error Handling
The API uses standard HTTP status codes and returns errors in JSON format.
HTTP Status Codes
| Code | Meaning |
|---|---|
200 |
OK - Request successful |
201 |
Created - Resource created successfully |
400 |
Bad Request - Invalid request data |
401 |
Unauthorized - Authentication required |
403 |
Forbidden - Access denied |
404 |
Not Found - Resource not found |
422 |
Unprocessable Entity - Validation failed |
500 |
Internal Server Error |
Error Response Format
{
"success": false,
"message": "Validation failed",
"errors": {
"email": [
"The email field is required."
],
"password": [
"The password must be at least 8 characters."
]
}
}
Rate Limiting
API requests are limited to 60 requests per minute per user.