{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "http:\/\/127.0.0.1:8000"
        }
    ],
    "info": {
        "name": "INCIDENsly \ud835\udc98ebApp API Documentation",
        "_postman_id": "da5e12d1-ac60-479b-8a20-51e46748567e",
        "description": "    \nDocumentation for the INCIDENsly \ud835\udc98ebApp API.\n\nThis API provides endpoints for managing incidents, comments, tags, and user administration.\nAuthentication is handled via OAuth2 (Bearer token). Use the \/login endpoint to obtain your token.\nAll responses are returned in JSON format.\n\n## Quick Start\n\n1. Register a new user via the \/register endpoint to create an account and obtain an API token.\n2. Use the \/login endpoint to authenticate and receive an access token.\n3. Include the token in the Authorization header (e.g. `Authorization: Bearer {YOUR_TOKEN}`) for all subsequent requests to protected endpoints.\n4. Explore the available endpoints for managing incidences, comments, tags, and users.\n5. Refer to the endpoint documentation for details on request parameters, response formats, and example requests and responses.\n\n## Roles\n\n- `user` \u2014 Can manage their own incidents, comments, and tags.\n- `admin` \u2014 has additional access to user management.",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Authentication",
            "description": "Endpoints for user registration, login, logout and profile view.",
            "item": [
                {
                    "name": "Register a new user.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/register",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/register"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"New User\",\"email\":\"newuser@example.com\",\"password\":\"password123\",\"password_confirmation\":\"password123\"}"
                        },
                        "description": "Create a new user account and returns an OAuth token.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"New User\",\n    \"email\": \"newuser@example.com\"\n  },\n  \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...\"\n}",
                            "name": "User created successfully"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"email\": [\"The email has already been taken.\"]\n  }\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Login user.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/login",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/login"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"gbailey@example.net\",\"password\":\"|]|{+-\"}"
                        },
                        "description": "Authenticate user with email and password, returns an OAuth token on success.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...\"\n}",
                            "name": "Login successful"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Invalid credentials\"\n}",
                            "name": "Invalid credentials"
                        }
                    ]
                },
                {
                    "name": "Logout user.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/logout",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/logout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Invalidate the user's current access token, effectively logging them out."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n \"message\": \"Logged out successfully\"\n}",
                            "name": "Log out succesful"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        }
                    ]
                },
                {
                    "name": "Get current user profile.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/me",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/me"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the authenticated user's profile information."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"New User\",\n    \"email\": \"newuser@example.com\"\n  }\n}",
                            "name": "User profile retrieved successfully"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Comments",
            "description": "Endpoints for managing comments on incidences, including listing, creating, viewing, updating, and deleting comments.\nReturns only root comments (parent_id = null) with their nested children.",
            "item": [
                {
                    "name": "List comments.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidences\/:incidenceId\/comments",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidences\/:incidenceId\/comments",
                            "variable": [
                                {
                                    "id": "incidenceId",
                                    "key": "incidenceId",
                                    "value": "1",
                                    "description": "The ID of the incidence."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve all root comments for a specific incidence, including their nested children.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"body\": \"This is a comment\",\n      \"user_id\": 1,\n      \"incidence_id\": 1,\n      \"parent_id\": null,\n      \"created_at\": \"2026-01-01T00:00:00Z\",\n      \"updated_at\": \"2026-01-01T00:00:00Z\",\n      \"user\": {...},\n      \"children\": [\n        {\n          \"id\": 2,\n          \"body\": \"This is a reply\",\n          \"user_id\": 2,\n          \"incidence_id\": 1,\n          \"parent_id\": 1,\n          \"created_at\": \"2026-01-01T00:00:00Z\",\n          \"updated_at\": \"2026-01-01T00:00:00Z\",\n          \"user\": {...},\n          \"children\": [...]\n        }\n      ]\n    }\n  ]\n}",
                            "name": "Comments retrieved"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No query results for model [App\\\\Models\\\\Incidence]\"\n}",
                            "name": "Incidence not found"
                        }
                    ]
                },
                {
                    "name": "Create a new comment.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidences\/:incidenceId\/comments",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidences\/:incidenceId\/comments",
                            "variable": [
                                {
                                    "id": "incidenceId",
                                    "key": "incidenceId",
                                    "value": "1",
                                    "description": "The ID of the incidence to comment on."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"body\":\"\\\"This is a comment.\\\"\",\"parent_id\":1}"
                        },
                        "description": "Add a new comment to a specific incidence.\nThe authenticated user will be set as the creator of the comment (user_id)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"body\": \"This is a comment\",\n    \"user_id\": 1,\n    \"incidence_id\": 1,\n    \"parent_id\": null,\n    \"created_at\": \"2026-01-01T00:00:00Z\",\n    \"updated_at\": \"2026-01-01T00:00:00Z\",\n    \"user\": {...}\n  }\n}",
                            "name": "Comment created"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"body\": [\"The body field is required.\"],\n    \"parent_id\": [\"The parent_id must be a valid comment ID.\"]\n  }\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "View a single comment.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/comments\/:comment_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/comments\/:comment_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the comment."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get detailed information about a specific comment by its ID, including parent and children.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"body\": \"This is a comment\",\n    \"user_id\": 1,\n    \"incidence_id\": 1,\n    \"parent_id\": null,\n    \"created_at\": \"2026-01-01T00:00:00Z\",\n    \"updated_at\": \"2026-01-01T00:00:00Z\",\n    \"user\": {...},\n    \"children\": [\n      {\n        \"id\": 2,\n        \"body\": \"This is a reply\",\n        \"user_id\": 2,\n        \"incidence_id\": 1,\n        \"parent_id\": 1,\n        \"created_at\": \"2026-01-01T00:00:00Z\",\n        \"updated_at\": \"2026-01-01T00:00:00Z\",\n        \"user\": {...},\n        \"children\": [...]\n      }\n    ]",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No query results for model [App\\\\Models\\\\Comment]\"\n}",
                            "name": "Comment not found"
                        }
                    ]
                },
                {
                    "name": "Update a comment.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/comments\/:comment_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/comments\/:comment_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the comment to update."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"body\":\"\\\"This is an updated comment.\\\"\"}"
                        },
                        "description": "Update an existing comment by its ID.\nOnly the creator of the comment can update it."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"body\": \"This is an updated comment\",\n    \"user_id\": 1,\n    \"incidence_id\": 1,\n    \"parent_id\": null,\n    \"created_at\": \"2026-01-01T00:00:00Z\",\n    \"updated_at\": \"2026-01-01T00:00:00Z\",\n    \"user\": {...}\n  }\n}",
                            "name": "Comment updated"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Unauthorized\"\n}",
                            "name": "Unauthorized"
                        }
                    ]
                },
                {
                    "name": "Delete a comment.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/comments\/:comment_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/comments\/:comment_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the comment to delete."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Delete an existing comment by its ID.\nOnly the creator of the comment or an admin can delete it."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Comment deleted successfully\"\n}",
                            "name": "Comment deleted"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Unauthorized\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No query results for model [App\\\\Models\\\\Comment]\"\n}",
                            "name": "Not Found"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Incidences",
            "description": "Endpoints for managing incidences, including listing, creating, viewing, updating, and deleting incidences.",
            "item": [
                {
                    "name": "Create a new incidence.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidences",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidences"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"title\":\"\\\"Server Down\\\"\",\"description\":\"\\\"The main server is not responding since 3 PM.\\\"\",\"status\":\"architecto\",\"priority\":\"architecto\",\"assigned_to\":2,\"tags\":\"\\\"server, urgent, backend\\\"\"}"
                        },
                        "description": "Create a new incidence with the provided details.\nThe authenticated user will be set as the creator of the incidence (user_id)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"title\": \"Server Down\",\n      \"description\": \"Main server not responding\",\n      \"status\": \"open\",\n      \"priority\": \"critical\",\n      \"user_id\": 1,\n      \"assigned_to\": 2,\n      \"created_at\": \"2026-01-01T00:00:00Z\",\n      \"updated_at\": \"2026-01-01T00:00:00Z\",\n      \"user\": {...},\n      \"assigned_user\": {...},\n      \"tags\": [...]\n    }\n  ]\n}",
                            "name": "Incidence created"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "[\n {\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"title\": [\"The title field is required.\"],\n    \"description\": [\"The description field is required.\"]\n  }\n }\n]",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "Update an incidence.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidences\/:incidence_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidences\/:incidence_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the incidence to update."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"title\":\"\\\"Server Down - Updated\\\"\",\"description\":\"\\\"Main server not responding - Updated\\\"\",\"status\":\"\\\"in_progress\\\"\",\"priority\":\"\\\"high\\\"\",\"assigned_to\":2,\"tags\":\"\\\"server, urgent, backend\\\"\"}"
                        },
                        "description": "Update an existing incidence by its ID.\nOnly the creator of the incidence or an admin can update it."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n \"data\": [\n     {\n       \"id\": 1,\n       \"title\": \"Server Down - Updated\",\n       \"description\": \"Main server not responding - Updated\",\n       \"status\": \"in_progress\",\n       \"priority\": \"high\",\n       \"user_id\": 1,\n       \"assigned_to\": 2,\n       \"created_at\": \"2026-01-01T00:00:00Z\",\n       \"updated_at\": \"2026-01-01T01:00:00Z\"\n     }\n ]\n}",
                            "name": "Incidence updated"
                        },
                        {
                            "header": [],
                            "code": 400,
                            "body": "{\n \"message\": \"Invalid request data. No query results for model [App\\\\Models\\\\Incidence].\"\n}",
                            "name": "Invalid request data"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n \"message\": \"Unauthorized\"\n}",
                            "name": "Unauthorized"
                        }
                    ]
                },
                {
                    "name": "Delete an incidence.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidences\/:incidence_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidences\/:incidence_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the incidence to delete."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Delete an existing incidence by its ID.\nOnly the creator of the incidence or an admin can delete it."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n \"message\": \"Incidence deleted successfully\"\n}",
                            "name": "Incidence deleted"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n \"message\": \"Unauthorized\"\n}",
                            "name": "Unauthorized"
                        }
                    ]
                },
                {
                    "name": "List my incidences.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/my-incidences",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "architecto",
                                    "description": "Filter by status (open, in_progress, closed).",
                                    "disabled": false
                                },
                                {
                                    "key": "priority",
                                    "value": "architecto",
                                    "description": "Filter by priority (low, medium, high).",
                                    "disabled": false
                                },
                                {
                                    "key": "search",
                                    "value": "architecto",
                                    "description": "Search by title or description.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/my-incidences?status=architecto&priority=architecto&search=architecto"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve incidences created by the authenticated user."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [...],\n  \"meta\": {...}\n}",
                            "name": "Incidences retrieved"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthenticated"
                        }
                    ]
                },
                {
                    "name": "List all incidences.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidences",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "architecto",
                                    "description": "Filter by status (open, in_progress, closed).",
                                    "disabled": false
                                },
                                {
                                    "key": "priority",
                                    "value": "architecto",
                                    "description": "Filter by priority (low, medium, high).",
                                    "disabled": false
                                },
                                {
                                    "key": "tags",
                                    "value": "1%2C+2%2C+3",
                                    "description": "Filter by comma-separated list of tag IDs.",
                                    "disabled": false
                                },
                                {
                                    "key": "search",
                                    "value": "architecto",
                                    "description": "Search by title or description. Examplo: server",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/incidences?status=architecto&priority=architecto&tags=1%2C+2%2C+3&search=architecto"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve all incidences with optional filters.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"title\": \"Server Down\",\n      \"description\": \"Main server not responding\",\n      \"status\": \"open\",\n      \"priority\": \"critical\",\n      \"user_id\": 1,\n      \"assigned_to\": 2,\n      \"created_at\": \"2026-01-01T00:00:00Z\",\n      \"updated_at\": \"2026-01-01T00:00:00Z\",\n      \"user\": {...},\n      \"assigned_user\": {...},\n      \"tags\": [...]\n    }\n  ]\n}",
                            "name": "Incidences retrieved"
                        }
                    ]
                },
                {
                    "name": "View a single incidence.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/incidences\/:incidence_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/incidences\/:incidence_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the incidence."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get detailed information about a specific incidence by its ID.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"title\": \"Server Down\",\n      \"description\": \"Main server not responding\",\n      \"status\": \"open\",\n      \"priority\": \"critical\",\n      \"user_id\": 1,\n      \"assigned_to\": 2,\n      \"created_at\": \"2026-01-01T00:00:00Z\",\n      \"updated_at\": \"2026-01-01T00:00:00Z\"\n    }\n  ]\n}",
                            "name": "Incidence retrieved"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Metrics",
            "description": "Endpoints for retrieving aggregated metrics and statistics about incidences, such as counts by status and priority.",
            "item": [
                {
                    "name": "List Metrics.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/metrics",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/metrics"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve aggregated metrics and statistics about incidences."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"by_status\": {\n      \"open\": [\n        {\"id\": 1, \"title\": \"Server Down\", \"status\": \"open\", \"priority\": \"critical\", ...}\n      ],\n      \"in_progress\": [],\n      \"closed\": []\n    },\n    \"by_priority\": {\n      \"low\": [],\n      \"medium\": [],\n      \"high\": [...],\n      \"critical\": [...]\n    }\n  }\n}",
                            "name": "Metrics retrieved"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Tags",
            "description": "Endpoints for managing tags, including listing, creating, viewing, updating, and deleting tags.",
            "item": [
                {
                    "name": "List all tags.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/tags",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/tags"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve all tags with their associated users and incidences.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"tag1\",\n      \"user_id\": 1,\n      \"created_at\": \"2026-01-01T00:00:00Z\",\n      \"updated_at\": \"2026-01-01T00:00:00Z\",\n      \"user\": {...},\n      \"incidences\": [...]\n    }\n  ]\n}",
                            "name": "Tags retrieved"
                        }
                    ]
                },
                {
                    "name": "Create a new tag.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/tags",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/tags"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Server\"}"
                        },
                        "description": "Create a new tag or reuse an existing one with the same name (case-insensitive).\nUses firstOrCreate to ensure atomicity and prevent duplicates.\nTag names are stored in lowercase to enforce case-insensitivity."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"server\",\n    \"user_id\": 1,\n    \"created_at\": \"2026-01-01T00:00:00Z\",\n    \"updated_at\": \"2026-01-01T00:00:00Z\",\n    \"user\": {...},\n    \"incidences\": [...]\n  }\n}",
                            "name": "Tag created"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"name\": [\"The name field is required.\"]\n  }\n}",
                            "name": "Validation error"
                        }
                    ]
                },
                {
                    "name": "View a single tag.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/tags\/:tag_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/tags\/:tag_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the tag."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get detailed information about a specific tag by its ID, including the user who created it and the incidences associated with it.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"server\",\n    \"user_id\": 1,\n    \"created_at\": \"2026-01-01T00:00:00Z\",\n    \"updated_at\": \"2026-01-01T00:00:00Z\",\n    \"user\": {...},\n    \"incidences\": [...]\n  }\n}",
                            "name": "Tag retrieved"
                        }
                    ]
                },
                {
                    "name": "Update a tag.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/tags\/:tag_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/tags\/:tag_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the tag."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Server\"}"
                        },
                        "description": "Update the details of an existing tag.\nOnly the creator of the tag or an admin can update it."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"server\",\n    \"user_id\": 1,\n    \"created_at\": \"2026-01-01T00:00:00Z\",\n    \"updated_at\": \"2026-01-01T00:00:00Z\",\n    \"user\": {...},\n    \"incidences\": [...]\n  }\n}",
                            "name": "Tag updated"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Unauthorized\"\n}",
                            "name": "Forbidden"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No query results for model [App\\\\Models\\\\Tag]\"\n}",
                            "name": "Not found"
                        }
                    ]
                },
                {
                    "name": "Delete a tag.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/tags\/:tag_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/tags\/:tag_id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the tag."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Delete an existing tag.\nOnly the creator of the tag or an admin can delete it.\nNote: This removes the tag from all associated incidences (pivot table)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"Tag deleted successfully\"\n}",
                            "name": "Tag deleted"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Unauthorized\"\n}",
                            "name": "Forbidden"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No query results for model [App\\\\Models\\\\Tag]\"\n}",
                            "name": "Not found"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Users",
            "description": "Endpoints for managing users, including listing all users, viewing a single user, retrieving a user's incidences, and deleting a user.",
            "item": [
                {
                    "name": "List all users.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/users",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/users"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve a list of all users."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"User Admin\",\n      \"email\": \"admin@telsur.cl\",\n      \"is_admin\": true,\n      \"created_at\": \"2026-01-01T00:00:00Z\",\n      \"updated_at\": \"2026-01-01T00:00:00Z\"\n    },\n    {\n      \"id\": 2,\n      \"name\": \"User no Admin\",\n      \"email\": \"noadmin@telsur.cl\",\n      \"is_admin\": false,\n      ...\n    }\n  ]\n}",
                            "name": "Users retrieved"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Forbidden. Admin access required.\"\n}",
                            "name": "Forbidden"
                        }
                    ]
                },
                {
                    "name": "View a single user.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/users\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/users\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Get detailed information about a specific user by their ID."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"User Admin\",\n    \"email\": \"admin@telsur.cl\",\n    \"is_admin\": true,\n    \"created_at\": \"2026-01-01T00:00:00Z\",\n    \"updated_at\": \"2026-01-01T00:00:00Z\"\n  }\n}",
                            "name": "User retrieved"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Forbidden. Admin access required.\"\n}",
                            "name": "Forbidden"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"User not found.\"\n}",
                            "name": "User not found"
                        }
                    ]
                },
                {
                    "name": "Get user's incidences.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/users\/:id\/incidences",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/users\/:id\/incidences",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "2",
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve all incidences created by or assigned to a specific user by their ID.\n- The creartor of the incidence is determined by the `user_id` field.\n- The assigned user is determined by the `assigned_to` field."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"title\": \"Server Down\",\n      \"user_id\": 2,\n      \"assigned_to\": 2,\n      ...\n    },\n    {\n      \"id\": 3,\n      \"title\": \"Database issue\",\n      \"user_id\": 1,\n      \"assigned_to\": 2,\n      ...\n    }\n  ]\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Forbidden. Admin access required.\"\n}",
                            "name": "Forbidden"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"No query results for model [App\\\\Models\\\\User].\"\n}",
                            "name": "User not found"
                        }
                    ]
                },
                {
                    "name": "Delete a user.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/users\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/users\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "1",
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Remove a specific user from the system.\nOnly an admin can delete a user, and users cannot delete themselves."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"message\": \"User deleted successfully.\"\n}",
                            "name": "User deleted"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\n  \"message\": \"Unauthenticated.\"\n}",
                            "name": "Unauthorized"
                        },
                        {
                            "header": [],
                            "code": 403,
                            "body": "{\n  \"message\": \"Forbidden. Admin access required.\"\n}",
                            "name": "Forbidden"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"message\": \"User not found.\"}",
                            "name": "User not found"
                        }
                    ]
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "Authorization",
                "type": "string"
            }
        ]
    }
}