REST API ยท Laravel + Sanctum

Welcome to noAuth API

Endpoint reference โ€” request format and response for every available route.

Base URL: /api

GET POST PUT / PATCH DELETE ๐Ÿ”’ = requires Bearer token (auth:sanctum)

Public Routes

No authentication required.

GET /api/ Health / welcome

Request

No parameters.

Response 200

"Welcome to noauth api"
POST /api/login throttle: 5/min

Request Body

{
  "email": "admin@example.com",
  "password": "secret"
}

Response 200

{
  "token": "1|xxxxxxxx...",
  "user": {
    "id": 1,
    "name": "Admin",
    "email": "admin@example.com"
  }
}

On wrong credentials โ†’ 401 { "message": "Wrong Information!" }

GET /api/search/{query} Search websites by name

Request

{query} โ€” matches website name starting with the given text.

Example: /api/search/git

Response 200

[
  {
    "id": 1,
    "name": "Github",
    "fontawesome_icon_name": "fa-brands fa-github",
    ...
  }
]
GET /api/websites Paginated ยท 10 per page

Request

Optional ?page= query.

Response 200

{
  "current_page": 1,
  "data": [ { "id": 1, "name": "Github", ... } ],
  "total": 25,
  ...
}
GET /api/website/{id} Accounts of a website

Request

{id} โ€” website id. Paginated 10 per page.

Response 200

{
  "current_page": 1,
  "data": [
    {
      "id": 3,
      "website_id": 1,
      "username": "john",
      "url": "https://...",
      "success": 12,
      "failed": 3,
      "success_rate": 80,
      "fail_rate": 20
    }
  ],
  ...
}
GET /api/success/{id} Increment success counter

Request

{id} โ€” account id. Adds +1 to its success.

Response 200

{ "success": 13 }
GET /api/failed/{id} Increment failed counter

Request

{id} โ€” account id. Adds +1 to its failed.

Response 200

{ "failed": 4 }
GET /api/account/{id} Single account + website

Request

{id} โ€” account id. Eager-loads its website.

Response 200

{
  "id": 3,
  "username": "john",
  "url": "https://...",
  "success": 12,
  "failed": 3,
  "success_rate": 80,
  "fail_rate": 20,
  "website": { "id": 1, "name": "Github", ... }
}

๐Ÿ”’ Authenticated Routes

Send header Authorization: Bearer <token>.

GET /api/dashboard ๐Ÿ”’ Aggregated stats

Request

Bearer token only.

Response 200

{
  "total_websites": 8,
  "total_accounts": 42,
  "total_success": 310,
  "total_failed": 55,
  "total_attempts": 365,
  "success_rate": 84.93,
  "fail_rate": 15.07,
  "top_accounts": [ ... ],
  "recent_accounts": [ ... ]
}
GET /api/me ๐Ÿ”’ Current user

Request

Bearer token only.

Response 200

{
  "id": 1,
  "name": "Admin",
  "email": "admin@example.com"
}
POST /api/change-password ๐Ÿ”’

Request Body

{
  "password": "newsecret",
  "confirm_password": "newsecret"
}

min 6 chars ยท both must match.

Response 200

{ "message": "Password Updated!" }
POST /api/logout ๐Ÿ”’ Revoke current token

Request

Bearer token only.

Response 200

{ "message": "Logged out." }

๐Ÿ”’ Admin ยท Website

Prefix /api/admin ยท resource controller (no edit).

GET /api/admin/website List ยท paginated 10

Returns paginated websites, latest first.

POST /api/admin/website Create (or update by name)

Request Body

{
  "name": "Github",
  "fontawesome_icon_name": "fa-brands fa-github"
}

Response 200

{ "message": "Github Added" }
GET /api/admin/website/{id} Show ยท cached 10 min

Returns a single website object.

PUT / PATCH /api/admin/website/{id} Update

Request Body

{
  "name": "GitLab",
  "fontawesome_icon_name": "fa-brands fa-gitlab"
}

Response 200

{ "message": "GitLab Updated" }
DELETE /api/admin/website/{id} Delete

Response 200

{ "message": "Website Deleted!" }

๐Ÿ”’ Admin ยท Account

Prefix /api/admin ยท full resource controller.

GET /api/admin/account List ยท paginated 15

Returns paginated accounts, latest first.

POST /api/admin/account Create

Request Body

{
  "website_id": 1,
  "username": "john",
  "password": "secret",
  "url": "https://github.com/login"
}

Response 200

{ "message": "Account added successfully!" }
GET /api/admin/account/{id} Show ยท cached 10 min

Returns a single account object (with success/fail rates).

PUT / PATCH /api/admin/account/{id} Update

Request Body

{
  "website_id": 1,
  "username": "john2",
  "password": "secret2",
  "url": "https://github.com/login"
}

Response 200

{ "message": "Account updated successfully!" }
DELETE /api/admin/account/{id} Delete

Response 200

{ "message": "Account deleted successfully!" }