The mobile app currently fetches websites from Umami using:
GET /api/websites?pageSize=20
This only returns websites directly accessible to the authenticated user and does not request team-owned websites.
According to the Umami API documentation, the endpoint supports an includeTeams query parameter:
GET /api/websites?includeTeams=true
When enabled, websites associated with teams the user belongs to are included in the response.
Problem
Users who have access to websites through Umami Teams do not see those websites in the application.
Current implementation:
Requests.get(
endpoint: '${Endpoints.websites}?pageSize=20',
);
As a result:
Team websites may be missing from the list.
Users see an incomplete set of available websites.
Multi-team Umami installations are not fully supported.
Required Changes
- Enable Team Website Retrieval
Update the request to include:
includeTeams=true
Example:
Requests.get(
endpoint: '${Endpoints.websites}?includeTeams=true&pageSize=100',
);
- Review Pagination Strategy
Current implementation uses:
pageSize=20
This may truncate results for installations with more than 20 websites.
Options:
Short-term
Increase:
pageSize=100
Long-term
Implement proper pagination using:
page
pageSize
API response metadata (count)
and fetch all pages when necessary.
- Verify Model Compatibility
Confirm that existing parsing logic:
Website.toList(res['data'])
works correctly when team websites are returned.
Review whether additional fields such as:
teamId
teamName
team ownership metadata
should be stored or exposed in the UI.
Acceptance Criteria
[ ] Website list includes personal websites.
[ ] Website list includes websites accessible through Umami Teams.
[ ] Users with team-only access can see those websites.
[ ] No regression for existing personal websites.
[ ] Pagination does not silently hide websites when count > 20.
[ ] Tested against a multi-team Umami instance.
References
Umami Websites API Documentation
Priority
Medium–High
This affects visibility of analytics properties and can make the application appear incomplete for organizations using Umami Teams.
The mobile app currently fetches websites from Umami using:
GET /api/websites?pageSize=20
This only returns websites directly accessible to the authenticated user and does not request team-owned websites.
According to the Umami API documentation, the endpoint supports an includeTeams query parameter:
GET /api/websites?includeTeams=true
When enabled, websites associated with teams the user belongs to are included in the response.
Problem
Users who have access to websites through Umami Teams do not see those websites in the application.
Current implementation:
Requests.get(
endpoint: '${Endpoints.websites}?pageSize=20',
);
As a result:
Team websites may be missing from the list.
Users see an incomplete set of available websites.
Multi-team Umami installations are not fully supported.
Required Changes
Update the request to include:
includeTeams=true
Example:
Requests.get(
endpoint: '${Endpoints.websites}?includeTeams=true&pageSize=100',
);
Current implementation uses:
pageSize=20
This may truncate results for installations with more than 20 websites.
Options:
Short-term
Increase:
pageSize=100
Long-term
Implement proper pagination using:
page
pageSize
API response metadata (count)
and fetch all pages when necessary.
Confirm that existing parsing logic:
Website.toList(res['data'])
works correctly when team websites are returned.
Review whether additional fields such as:
teamId
teamName
team ownership metadata
should be stored or exposed in the UI.
Acceptance Criteria
[ ] Website list includes personal websites.
[ ] Website list includes websites accessible through Umami Teams.
[ ] Users with team-only access can see those websites.
[ ] No regression for existing personal websites.
[ ] Pagination does not silently hide websites when count > 20.
[ ] Tested against a multi-team Umami instance.
References
Umami Websites API Documentation
Priority
Medium–High
This affects visibility of analytics properties and can make the application appear incomplete for organizations using Umami Teams.