(function () { function applyHomeCopy() { if (location.pathname !== '/') return; const replacements = [ ['Privacy focused web analytics', 'App analytics built for products'], ['Track your visitors in realtime, without compromising their privacy.', 'Track app events, retention, and revenue in realtime without compromising privacy.'], ['Get to know your visitors with our advanced analytics.', 'Understand installs, sessions, retention, funnels, and revenue across your apps.'], ['See a detailed report of your website traffic in realtime.', 'See live app activity as it happens.'], ['Get a comprehensive overview of your website statistics.', 'Get a full view of app usage, growth, and engagement.'], ['Analyze what pages perform the best on your website.', 'Analyze screens, flows, and key actions inside your apps.'], ['Learn through which traffic channels you acquire your visitors.', 'Learn which channels bring users and installs to your apps.'], ['Find out where your visitors are from, down to the city level.', 'Understand where your users are located.'], ['Know the devices and software your visitors are using.', 'Know which devices, OS versions, and app platforms your users use.'], ['Create custom events and track their conversions.', 'Create custom events and track in-app conversions.'], ['Export all your website's statistics in CSV format.', 'Export app statistics in CSV format.'], ['Tracking code compatible with your favorite platforms.', 'Tracking SDK compatible with your favorite app stacks.'], ['Ready to get started?', 'Ready to start tracking?'], ['Create an account in seconds.', 'Create an app analytics account in seconds.'] ]; const walk = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT); const nodes = []; while (walk.nextNode()) nodes.push(walk.currentNode); for (const node of nodes) { let text = node.nodeValue; let changed = false; for (const [from, to] of replacements) { if (text.includes(from)) { text = text.split(from).join(to); changed = true; } } if (changed) node.nodeValue = text; } document.title = document.title.replace('Mobile KOA Analytics', 'Banxui App Analytics'); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', applyHomeCopy); } else { applyHomeCopy(); } })();

Websites

Notes
Expert level
The API key should be sent as a Bearer token in the Authorization header of the request. Get your API key.
List

API endpoint:

GET
https://phpanalitics.banxui.es/api/v1/websites

Request example:

curl --location --request GET 'https://phpanalitics.banxui.es/api/v1/websites' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'
Parameter
Type
Description
search
optional string
Search query.
search_by
optional string
Search by. Possible values are: domain for Domain. Defaults to: domain.
favorite
optional boolean
Filter by favorite.
sort_by
optional string
Sort by. Possible values are: id for Date created, domain for Domain. Defaults to: id.
sort
optional string
Sort. Possible values are: desc for Descending, asc for Ascending. Defaults to: desc.
per_page
optional integer
Results per page. Possible values are: 10, 25, 50, 100. Defaults to: 10.
Show

API endpoint:

GET
https://phpanalitics.banxui.es/api/v1/websites/{id}

Request example:

curl --location --request GET 'https://phpanalitics.banxui.es/api/v1/websites/{id}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'
Store

API endpoint:

POST
https://phpanalitics.banxui.es/api/v1/websites

Request example:

curl --location --request POST 'https://phpanalitics.banxui.es/api/v1/websites' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'domain={domain}'
Parameter
Type
Description
domain
required string
Domain name
privacy
optional integer
Privacy. Possible values are: 0 for Public, 1 for Private, 2 for Password. Defaults to: 0.
password
optional string
Password. Only works with privacy field set to 2.
email
optional integer
Periodic email reports. Possible values are: 0 for Disabled, 1 for Enabled. Defaults to: 0.
exclude_bots
optional integer
Exclude common bots from being tracked. Possible values are: 0 for Disabled, 1 for Enabled. Defaults to: 1.
exclude_params
optional string
Exclude URL query parameters from being tracked. One per line.
exclude_ips
optional string
Exclude IPs from being tracked. One per line..
Update

API endpoint:

PUT PATCH
https://phpanalitics.banxui.es/api/v1/websites/{id}

Request example:

curl --location --request PUT 'https://phpanalitics.banxui.es/api/v1/websites/{id}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}'
Parameter
Type
Description
privacy
optional integer
Privacy. Possible values are: 0 for Public, 1 for Private, 2 for Password.
password
optional string
Password. Only works with privacy field set to 2.
email
optional integer
Periodic email reports. Possible values are: 0 for Disabled, 1 for Enabled.
exclude_bots
optional integer
Exclude common bots from being tracked. Possible values are: 0 for Disabled, 1 for Enabled.
exclude_params
optional string
Exclude URL query parameters from being tracked. One per line.
exclude_ips
optional string
Exclude IPs from being tracked. One per line..
favorite
optional boolean
Favorite.
Delete

API endpoint:

DELETE
https://phpanalitics.banxui.es/api/v1/websites/{id}

Request example:

curl --location --request DELETE 'https://phpanalitics.banxui.es/api/v1/websites/{id}' \
--header 'Authorization: Bearer {api_key}'