Users API Reference

List Users

Retrieve a paginated list of users.

HTTP Request

GET /api/v1/users

Query Parameters

Parameter Type Description
page integer Page number for pagination
per_page integer Number of items per page
role string Filter by user role

Example Response

{
    "data": [
        {
            "id": 1,
            "name": "John Doe",
            "email": "john.doe@example.com",
            "role": "staff",
            "created_at": "2024-01-15T08:30:00Z",
            "updated_at": "2024-01-15T08:30:00Z"
        },
        {
            "id": 2,
            "name": "Jane Smith",
            "email": "jane.smith@example.com",
            "role": "admin",
            "created_at": "2024-01-15T09:15:00Z",
            "updated_at": "2024-01-15T09:15:00Z"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 10,
        "total": 2
    }
}

Get Single User

Retrieve details of a specific user.

HTTP Request

GET /api/v1/users/{id}

URL Parameters

Parameter Type Description
id integer The ID of the user

Example Response

{
    "data": {
        "id": 1,
        "name": "John Doe",
        "email": "john.doe@example.com",
        "role": "staff",
        "created_at": "2024-01-15T08:30:00Z",
        "updated_at": "2024-01-15T08:30:00Z"
    }
}

Create User

Create a new user.

HTTP Request

POST /api/v1/users

Request Body

Parameter Type Description
email string User's email address
password string User's password
name string User's full name
role string User's role (admin, staff, client)

Example Request

{
    "email": "new.user@example.com",
    "password": "secure_password",
    "name": "New User",
    "role": "staff"
}

Example Response

{
    "data": {
        "id": 3,
        "name": "New User",
        "email": "new.user@example.com",
        "role": "staff",
        "created_at": "2024-01-15T10:00:00Z",
        "updated_at": "2024-01-15T10:00:00Z"
    }
}

Update User

Update an existing user.

HTTP Request

PUT /api/v1/users/{id}

Request Body

Parameter Type Description
email string User's email address
name string User's full name
role string User's role (admin, staff, client)

Example Request

{
    "name": "Updated Name",
    "email": "updated.email@example.com",
    "role": "admin"
}

Example Response

{
    "data": {
        "id": 1,
        "name": "Updated Name",
        "email": "updated.email@example.com",
        "role": "admin",
        "created_at": "2024-01-15T08:30:00Z",
        "updated_at": "2024-01-15T10:15:00Z"
    }
}

Delete User

Delete an existing user.

HTTP Request

DELETE /api/v1/users/{id}

URL Parameters

Parameter Type Description
id integer The ID of the user to delete

Example Response

{
    "message": "User successfully deleted"
}