{
  "info": {
    "name": "Tyro API",
    "version": "2.2.0",
    "description": "Collection covering every Tyro package endpoint with sample payloads and scripts to capture the Sanctum token for subsequent requests. Includes Audit Logs with filtering capabilities.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Public",
      "item": [
        {
          "name": "Tyro Info",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/tyro",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "tyro"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Tyro Version",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/api/tyro/version",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "tyro",
                "version"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Login (captures token)",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 200) {",
                  "  const body = pm.response.json();",
                  "  if (body.token) {",
                  "    pm.collectionVariables.set('token', body.token);",
                  "  }",
                  "}",
                  "pm.test('Login succeeded', function () {",
                  "  pm.response.to.have.status(200);",
                  "});"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{admin_email}}\",\n  \"password\": \"{{admin_password}}\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/api/login",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "login"
              ]
            }
          },
          "response": []
        },
        {
          "name": "Register User",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Test User\",\n  \"email\": \"tester+{{timestamp}}@tyro.project\",\n  \"password\": \"password\",\n  \"password_confirmation\": \"password\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/api/users",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "users"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Authenticated",
      "description": "All requests in this folder read the Bearer token that the login request stores in the collection variables.",
      "item": [
        {
          "name": "Profile",
          "item": [
            {
              "name": "Me",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/me",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "me"
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "Users",
          "item": [
            {
              "name": "List Users",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/users",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Show User",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Update User",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Updated User\",\n  \"email\": \"updated+{{timestamp}}@tyro.project\",\n  \"password\": \"tyro\",\n  \"password_confirmation\": \"tyro\"\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Delete User",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Suspend User",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Manual review\"\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}/suspend",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}",
                    "suspend"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Unsuspend User",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}/suspend",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}",
                    "suspend"
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "Roles",
          "item": [
            {
              "name": "List Roles",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/roles",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Create Role",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Support\",\n  \"slug\": \"support\"\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/roles",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Show Role",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/roles/{{role_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles",
                    "{{role_id}}"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Update Role",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Support Team\"\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/roles/{{role_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles",
                    "{{role_id}}"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Delete Role",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/roles/{{role_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles",
                    "{{role_id}}"
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "Privileges",
          "item": [
            {
              "name": "List Privileges",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/privileges",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "privileges"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Create Privilege",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Generate Reports\",\n  \"slug\": \"report.generate\",\n  \"description\": \"Allows generating executive reports\"\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/privileges",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "privileges"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Show Privilege",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/privileges/{{privilege_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "privileges",
                    "{{privilege_id}}"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Update Privilege",
              "request": {
                "method": "PUT",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Updated Privilege Name\"\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/privileges/{{privilege_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "privileges",
                    "{{privilege_id}}"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Delete Privilege",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/privileges/{{privilege_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "privileges",
                    "{{privilege_id}}"
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "Role Privileges",
          "item": [
            {
              "name": "List Privileges for Role",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/roles/{{role_id}}/privileges",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles",
                    "{{role_id}}",
                    "privileges"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Attach Privilege to Role",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"privilege_id\": {{privilege_id}}\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/roles/{{role_id}}/privileges",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles",
                    "{{role_id}}",
                    "privileges"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Detach Privilege from Role",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/roles/{{role_id}}/privileges/{{privilege_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "roles",
                    "{{role_id}}",
                    "privileges",
                    "{{privilege_id}}"
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "User Roles",
          "item": [
            {
              "name": "List Roles for User",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}/roles",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}",
                    "roles"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Assign Role to User",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"role_id\": {{role_id}}\n}"
                },
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}/roles",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}",
                    "roles"
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Remove Role from User",
              "request": {
                "method": "DELETE",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/users/{{user_id}}/roles/{{role_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "users",
                    "{{user_id}}",
                    "roles",
                    "{{role_id}}"
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "Audit Logs",
          "item": [
            {
              "name": "List Audit Logs",
              "description": "Retrieve audit logs with optional filtering by event, user, and date range",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/audit-logs?per_page=20",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "audit-logs"
                  ],
                  "query": [
                    {
                      "key": "per_page",
                      "value": "20",
                      "description": "Number of results per page (default: 20)"
                    },
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": true,
                      "description": "Page number for pagination"
                    },
                    {
                      "key": "event",
                      "value": "",
                      "disabled": true,
                      "description": "Filter by event name (e.g., 'created', 'updated', 'deleted')"
                    },
                    {
                      "key": "user_id",
                      "value": "",
                      "disabled": true,
                      "description": "Filter by user ID"
                    },
                    {
                      "key": "from",
                      "value": "",
                      "disabled": true,
                      "description": "Filter from date (YYYY-MM-DD)"
                    },
                    {
                      "key": "to",
                      "value": "",
                      "disabled": true,
                      "description": "Filter to date (YYYY-MM-DD)"
                    }
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Filter Audit Logs by Event",
              "description": "List audit logs filtered by event type",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/audit-logs?event=created&per_page=20",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "audit-logs"
                  ],
                  "query": [
                    {
                      "key": "event",
                      "value": "created"
                    },
                    {
                      "key": "per_page",
                      "value": "20"
                    }
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Filter Audit Logs by User",
              "description": "List audit logs filtered by user ID",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/audit-logs?user_id={{user_id}}&per_page=20",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "audit-logs"
                  ],
                  "query": [
                    {
                      "key": "user_id",
                      "value": "{{user_id}}"
                    },
                    {
                      "key": "per_page",
                      "value": "20"
                    }
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Filter Audit Logs by Date Range",
              "description": "List audit logs filtered by date range",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{base_url}}/api/audit-logs?from=2026-02-01&to=2026-02-17&per_page=20",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "audit-logs"
                  ],
                  "query": [
                    {
                      "key": "from",
                      "value": "2026-02-01"
                    },
                    {
                      "key": "to",
                      "value": "2026-02-17"
                    },
                    {
                      "key": "per_page",
                      "value": "20"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "base_url",
      "value": "http://localhost"
    },
    {
      "key": "admin_email",
      "value": "admin@tyro.project"
    },
    {
      "key": "admin_password",
      "value": "tyro"
    },
    {
      "key": "token",
      "value": ""
    },
    {
      "key": "user_id",
      "value": "1"
    },
    {
      "key": "role_id",
      "value": "1"
    },
    {
      "key": "privilege_id",
      "value": "1"
    },
    {
      "key": "timestamp",
      "value": "{{$timestamp}}"
    }
  ]
}