Admin

Operations around admin management.

These endpoints are only available for self-hosted instances for admin users and not Umami Cloud.

Endpoints


GET /api/admin/users
GET /api/admin/websites
GET /api/admin/teams

GET /api/admin/users

Returns all users.

Parameters

  • search: (string | optional) Search text.

  • page: (number | optional, default 1) Determines page.

  • pageSize: (number | optional, default 20) Determines how many results to return.

    Sample response

{
  "data": [
    {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "username": "member",
      "role": "user",
      "logoUrl": null,
      "displayName": null,
      "createdAt": "2025-10-10T23:09:16.524Z",
      "updatedAt": "2025-10-10T23:09:16.524Z",
      "deletedAt": null,
      "_count": {
        "websites": 0
      }
    },
    {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "username": "admin",
      "role": "admin",
      "logoUrl": null,
      "displayName": null,
      "createdAt": "2025-09-15T17:47:16.421Z",
      "updatedAt": null,
      "deletedAt": null,
      "_count": {
        "websites": 1
      }
    }
  ],
  "count": 2,
  "page": 1,
  "pageSize": 20,
  "orderBy": "createdAt"
}

GET /api/admin/websites

Returns all websites.

Parameters

  • search: (string | optional) Search text.

  • page: (number | optional, default 1) Determines page.

  • pageSize: (number | optional, default 20) Determines how many results to return.

    Sample response

{
  "data": [
    {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name": "My Website",
      "domain": "mywebsite.com",
      "shareId": null,
      "resetAt": null,
      "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "teamId": null,
      "createdBy": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "createdAt": "2025-09-16T19:59:32.957Z",
      "updatedAt": "2025-09-16T19:59:32.957Z",
      "deletedAt": null,
      "user": {
        "username": "admin",
        "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      },
      "team": null
    }
  ],
  "count": 1,
  "page": 1,
  "pageSize": 20
}

GET /api/admin/teams

Returns all teams.

Parameters

  • search: (string | optional) Search text.

  • page: (optional number, default 1) Determines page.

  • pageSize: (number | optional, default 20) Determines how many results to return.

    Sample response

{
  "data": [
    {
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name": "Umami Software, Inc",
      "accessCode": "xxxxxxxxxxxxxx",
      "logoUrl": null,
      "createdAt": "2025-09-24T22:08:35.259Z",
      "updatedAt": "2025-09-24T22:08:35.259Z",
      "deletedAt": null,
      "members": [
        {
          "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "role": "team-owner",
          "createdAt": "2025-09-24T22:08:35.302Z",
          "updatedAt": "2025-09-24T22:08:35.302Z",
          "user": {
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "username": "admin"
          }
        },
        {
          "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "teamId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "role": "team-member",
          "createdAt": "2025-10-10T23:41:09.030Z",
          "updatedAt": "2025-10-10T23:41:09.030Z",
          "user": {
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            "username": "member"
          }
        }
      ],
      "_count": {
        "websites": 1,
        "members": 2
      }
    }
  ],
  "count": 1,
  "page": 1,
  "pageSize": 20
}