# Altostrat SDX Documentation

## Docs

- [Asynchronous job execution](https://docs.sdx.altostrat.io/api-reference/developers/asynchronous-api/asynchronous-job-execution.md): Queues a job to run scripts or config changes on the router without waiting for real-time response.
- [Retrieve a list of jobs for a router](https://docs.sdx.altostrat.io/api-reference/developers/asynchronous-api/retrieve-a-list-of-jobs-for-a-router.md): Fetch asynchronous job history or status for a specified router.
- [Retrieve router faults](https://docs.sdx.altostrat.io/api-reference/developers/health/retrieve-router-faults.md): Gets the last 100 faults for the specified router, newest first.
- [Retrieve router metrics](https://docs.sdx.altostrat.io/api-reference/developers/health/retrieve-router-metrics.md): Provides uptime/downtime metrics for the past 24 hours based on heartbeats.
- [Create a transient port forward](https://docs.sdx.altostrat.io/api-reference/developers/port-forwards/create-a-transient-port-forward.md): Establish a temporary TCP forward over the management tunnel for behind-NAT access.
- [Delete a transient port forward](https://docs.sdx.altostrat.io/api-reference/developers/port-forwards/delete-a-transient-port-forward.md): Revokes a port forward before it naturally expires.
- [Retrieve a specific port forward](https://docs.sdx.altostrat.io/api-reference/developers/port-forwards/retrieve-a-specific-port-forward.md): Returns the details for one transient port forward by ID.
- [Retrieve active transient port forwards](https://docs.sdx.altostrat.io/api-reference/developers/port-forwards/retrieve-active-transient-port-forwards.md): List all active port forwards for a given router.
- [Retrieve a list of routers](https://docs.sdx.altostrat.io/api-reference/developers/sites/retrieve-a-list-of-routers.md): Returns a list of MikroTik routers belonging to the team associated with the bearer token.
- [Retrieve OEM information](https://docs.sdx.altostrat.io/api-reference/developers/sites/retrieve-oem-information.md): Provides manufacturer data (model, CPU, OS license, etc.) for a given router.
- [Retrieve router metadata](https://docs.sdx.altostrat.io/api-reference/developers/sites/retrieve-router-metadata.md): Gets freeform metadata (like name, timezone, banner, etc.) for a specific router.
- [Synchronous MikroTik command execution](https://docs.sdx.altostrat.io/api-reference/developers/synchronous-api/synchronous-mikrotik-command-execution.md): Real-time RouterOS commands for read or quick ops (not recommended for major config changes).
- [Adopt a site via runbook token (RouterOS device handshake)](https://docs.sdx.altostrat.io/api-reference/spa/async/device-adoption/adopt-a-site-via-runbook-token-routeros-device-handshake.md): Used by new devices to adopt themselves into the system, returning a script that installs scheduler, backups, etc. Uses `heartbeat` + `runbook` middleware. The {id} is a base62-encoded UUID token for the runbook/policy.
- [Retrieve the initial bootstrap script](https://docs.sdx.altostrat.io/api-reference/spa/async/device-adoption/retrieve-the-initial-bootstrap-script.md): Displays the main bootstrap code for a new device. Typically includes logic for installing a future poll route, etc. Uses `bootstrap` + `runbook` middleware. The {id} is a base62-encoded runbook token.
- [Send heartbeat from device](https://docs.sdx.altostrat.io/api-reference/spa/async/heartbeat/send-heartbeat-from-device.md): Devices post heartbeat (status) data here. Subject to the `site-auth` middleware, which authenticates via Bearer token that decrypts to a Site model. This route is heavily used by MikroTik scripts.
- [Count sites for multiple customers (internal)](https://docs.sdx.altostrat.io/api-reference/spa/async/internal/count-sites-for-multiple-customers-internal.md): Accepts an array of customer UUIDs and returns a site count grouping. For internal usage only.
- [Fetch all sites (detailed) for a given customer (internal)](https://docs.sdx.altostrat.io/api-reference/spa/async/internal/fetch-all-sites-detailed-for-a-given-customer-internal.md): Internal route to return all site data for a given customer in a non-minimal format. Protected by `internal` middleware.
- [Fetch minimal site data for a given customer (internal)](https://docs.sdx.altostrat.io/api-reference/spa/async/internal/fetch-minimal-site-data-for-a-given-customer-internal.md): Returns only site IDs (and maybe minimal fields) for a given customer. Protected by `internal` middleware.
- [List online sites (internal route)](https://docs.sdx.altostrat.io/api-reference/spa/async/internal/list-online-sites-internal-route.md): Returns a list of site IDs that have `has_pulse = 1`. For internal use, no customer scoping enforced here except the 'internal' usage may be missing or implied.
- [Create a new job for a site](https://docs.sdx.altostrat.io/api-reference/spa/async/job-management/create-a-new-job-for-a-site.md): Queues up a job (script) to run on the device. Requires `job:create` scope. The job is triggered whenever the device polls next.
- [Delete a pending job](https://docs.sdx.altostrat.io/api-reference/spa/async/job-management/delete-a-pending-job.md): Removes a job if it has not started yet. Requires `job:delete` scope. If job has started, returns error 429 or similar.
- [List jobs for a given site](https://docs.sdx.altostrat.io/api-reference/spa/async/job-management/list-jobs-for-a-given-site.md): Returns a site’s job queue. Excludes certain ephemeral jobs. Requires `job:view` scope.
- [Show a job on a specific site](https://docs.sdx.altostrat.io/api-reference/spa/async/job-management/show-a-job-on-a-specific-site.md): View a single job’s details. Requires `job:view` scope.
- [Update a job status (done/fail/busy)](https://docs.sdx.altostrat.io/api-reference/spa/async/job-management/update-a-job-status-donefailbusy.md): Typically called by devices to mark a job as started (busy), completed (done), or failed (fail). Only available via `notify` middleware for polling scripts.
- [Get runbook details (bootstrap script info)](https://docs.sdx.altostrat.io/api-reference/spa/async/runbook/get-runbook-details-bootstrap-script-info.md): Fetch details about a runbook/policy. Part of an internal or authenticated route. The ID is a simple UUID, not base62.
- [Notify about scheduler deletion](https://docs.sdx.altostrat.io/api-reference/spa/async/scheduler/notify-about-scheduler-deletion.md): A GET route that the MikroTik device calls to notify that the bootstrap scheduler is being removed from the device. Under `delete` middleware. If a site was pending delete, this might finalize it.
- [SFTP config fetch route](https://docs.sdx.altostrat.io/api-reference/spa/async/sftpbackup/sftp-config-fetch-route.md): Used to handle SFTP credentials for backups. The `username` is typically the site’s ID; the `Password` header is checked by the controller.
- [Delete a site](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/delete-a-site.md): Triggers site deletion flow, which may queue jobs to remove from system, remove scheduler, etc. Requires `site:delete` scope.
- [Get minimal version info for a single site](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/get-minimal-version-info-for-a-single-site.md): Returns basic data about the site’s board model, software version, etc. Uses the model binding for {site}.
- [List all sites](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/list-all-sites.md): Authenticated route returning a full site listing. Filters out sites with `delete_completed_at`. Requires scope `site:view`.
- [List minimal site data for authenticated user](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/list-minimal-site-data-for-authenticated-user.md): Returns site ID, name, and `has_pulse`. Possibly cached for 60 minutes. Requires `site:view` scope.
- [List recently accessed sites](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/list-recently-accessed-sites.md): Returns up to 5 recent sites for the authenticated user. Filtered by ownership. Also uses heartbeat cache to determine last-seen info.
- [Manually create a site](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/manually-create-a-site.md): Bypasses the adopt flow, simply creating a site with the given ID, name, runbook, etc.  Used for manual input.  Possibly restricted or internal use only.
- [Returns past 24h missed heartbeat data for a site](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/returns-past-24h-missed-heartbeat-data-for-a-site.md): Computes how many checkins were expected vs. actual in the last 24h, grouping by hour. Returns % missed and total downtime. Requires `site:view` scope.
- [Show one site’s detail](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/show-one-site’s-detail.md): Returns extended site details with siteInfo, may also store the site in user’s recent sites. Requires `site:view`.
- [Update site fields (name, lat/lng, address, etc.)](https://docs.sdx.altostrat.io/api-reference/spa/async/site-management/update-site-fields-name-latlng-address-etc.md): Allows partial updates to a site’s metadata. Requires `site:update`.
- [List backups for a site](https://docs.sdx.altostrat.io/api-reference/spa/backups/site-backups/list-backups-for-a-site.md): Retrieves an array of available RouterOS backups for the specified site. Requires `backup:view` scope.
- [Request a new backup for a site](https://docs.sdx.altostrat.io/api-reference/spa/backups/site-backups/request-a-new-backup-for-a-site.md): Enqueues a backup request for the specified site. Requires `backup:create` scope.
- [Retrieve a specific backup file](https://docs.sdx.altostrat.io/api-reference/spa/backups/site-backups/retrieve-a-specific-backup-file.md): Shows the contents of the specified backup file. By default returns JSON with parsed metadata. If header `X-Download` is set, it downloads raw data. If `x-highlight` is set, highlights syntax. If `x-view` is set, returns raw text in `text/plain`. Requires `backup:view` scope.
- [Retrieve subnets from latest backup](https://docs.sdx.altostrat.io/api-reference/spa/backups/site-backups/retrieve-subnets-from-latest-backup.md): Parses the most recent backup for the specified site, returning discovered local subnets. Requires `backup:view` scope.
- [Show diff between two backup files](https://docs.sdx.altostrat.io/api-reference/spa/backups/site-backups/show-diff-between-two-backup-files.md): Returns a unified diff between two backup files. By default returns the diff as `text/plain`. If `X-Download` header is set, you can download it as a file. If `x-highlight` is set, it highlights the diff in a textual format. Requires `backup:view` scope.
- [Attach a BGP Policy to a Site](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/attach-a-bgp-policy-to-a-site.md)
- [Create a new BGP feed policy](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/create-a-new-bgp-feed-policy.md)
- [Delete a BGP feed policy](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/delete-a-bgp-feed-policy.md)
- [Detach BGP Policy from a Site](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/detach-bgp-policy-from-a-site.md)
- [Get BGP-based service counts](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/get-bgp-based-service-counts.md)
- [List all BGP feed policies](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/list-all-bgp-feed-policies.md)
- [List available IP lists for BGP feed](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/list-available-ip-lists-for-bgp-feed.md)
- [Retrieve a BGP feed policy](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/retrieve-a-bgp-feed-policy.md)
- [Update a BGP feed policy](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/bgp/update-a-bgp-feed-policy.md)
- [List all safe-search configuration entries](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/categories/list-all-safe-search-configuration-entries.md)
- [List categories (and top applications)](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/categories/list-categories-and-top-applications.md)
- [Get aggregated service usage for all customers](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/misc/get-aggregated-service-usage-for-all-customers.md)
- [Get service usage for a single customer](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/misc/get-service-usage-for-a-single-customer.md)
- [Retrieve all blackhole IP addresses for BGP blackholes](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/misc/retrieve-all-blackhole-ip-addresses-for-bgp-blackholes.md)
- [Retrieve all blackhole IP addresses for known applications](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/misc/retrieve-all-blackhole-ip-addresses-for-known-applications.md)
- [Create a new DNS policy](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/policies/create-a-new-dns-policy.md)
- [Delete an existing DNS policy](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/policies/delete-an-existing-dns-policy.md)
- [List all DNS content-filtering policies](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/policies/list-all-dns-content-filtering-policies.md)
- [Retrieve a specific DNS policy by ID](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/policies/retrieve-a-specific-dns-policy-by-id.md)
- [Update an existing DNS policy](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/policies/update-an-existing-dns-policy.md)
- [Attach a DNS Policy to a Site](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/tunnels/attach-a-dns-policy-to-a-site.md)
- [Detach DNS Policy from a Site](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/tunnels/detach-dns-policy-from-a-site.md)
- [Get DNS-based service counts](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/tunnels/get-dns-based-service-counts.md)
- [List all tunnels](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/tunnels/list-all-tunnels.md)
- [Retrieve a specific tunnel by ID](https://docs.sdx.altostrat.io/api-reference/spa/bgp-dns-filter/tunnels/retrieve-a-specific-tunnel-by-id.md)
- [Create a new Auth Integration](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/idp-integrations/create-a-new-auth-integration.md)
- [Delete a specific Auth Integration](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/idp-integrations/delete-a-specific-auth-integration.md)
- [List all IDP Integrations](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/idp-integrations/list-all-idp-integrations.md)
- [Partially update a specific Auth Integration](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/idp-integrations/partially-update-a-specific-auth-integration.md)
- [Replace a specific Auth Integration](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/idp-integrations/replace-a-specific-auth-integration.md)
- [Retrieve a specific Auth Integration](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/idp-integrations/retrieve-a-specific-auth-integration.md)
- [Create a new captive portal Instance](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/instances/create-a-new-captive-portal-instance.md)
- [Delete a specific captive portal Instance](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/instances/delete-a-specific-captive-portal-instance.md)
- [List all captive portal Instances](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/instances/list-all-captive-portal-instances.md)
- [Partially update a specific captive portal Instance](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/instances/partially-update-a-specific-captive-portal-instance.md)
- [Replace a specific captive portal Instance](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/instances/replace-a-specific-captive-portal-instance.md)
- [Retrieve a specific captive portal Instance](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/instances/retrieve-a-specific-captive-portal-instance.md)
- [Upload an image (logo or icon) for a specific Instance](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/instances/upload-an-image-logo-or-icon-for-a-specific-instance.md)
- [Create a new walled garden entry for a site](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/walled-garden/create-a-new-walled-garden-entry-for-a-site.md)
- [Delete a specific walled garden entry under a site](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/walled-garden/delete-a-specific-walled-garden-entry-under-a-site.md)
- [List all walled garden entries for a specific site](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/walled-garden/list-all-walled-garden-entries-for-a-specific-site.md)
- [Partially update a specific walled garden entry under a site](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/walled-garden/partially-update-a-specific-walled-garden-entry-under-a-site.md)
- [Replace a specific walled garden entry under a site](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/walled-garden/replace-a-specific-walled-garden-entry-under-a-site.md)
- [Retrieve a specific walled garden entry under a site](https://docs.sdx.altostrat.io/api-reference/spa/captive-portal/walled-garden/retrieve-a-specific-walled-garden-entry-under-a-site.md)
- [Server check-in for a site](https://docs.sdx.altostrat.io/api-reference/spa/cpf/checkin/server-check-in-for-a-site.md): Called by a server to claim or update itself as the active server for a particular site (via the tunnel username).
- [Create (rotate) new credentials](https://docs.sdx.altostrat.io/api-reference/spa/cpf/credentials/create-rotate-new-credentials.md): Generates a new username/password pair for the site, deletes any older credentials. Requires `apicredentials:create` scope.
- [List site API credentials](https://docs.sdx.altostrat.io/api-reference/spa/cpf/credentials/list-site-api-credentials.md): Returns the API credentials used to connect to a site. Requires `apicredentials:view` scope.
- [(Internal) Fetch management IPs for multiple sites](https://docs.sdx.altostrat.io/api-reference/spa/cpf/internal/internal-fetch-management-ips-for-multiple-sites.md): Given an array of site IDs, returns a map of site_id => management IP (tunnel IP).
- [(Internal) Get site credentials](https://docs.sdx.altostrat.io/api-reference/spa/cpf/internal/internal-get-site-credentials.md): Returns the latest credentials for the specified site, typically used by internal services. Not user-facing.
- [Assign sites to a policy](https://docs.sdx.altostrat.io/api-reference/spa/cpf/policies/assign-sites-to-a-policy.md): Sets or moves multiple site IDs onto the given policy. Requires `cpf:create` or `cpf:update` scope.
- [Create a policy](https://docs.sdx.altostrat.io/api-reference/spa/cpf/policies/create-a-policy.md): Creates a new policy for the authenticated user. Requires `cpf:create` scope.
- [Delete a policy](https://docs.sdx.altostrat.io/api-reference/spa/cpf/policies/delete-a-policy.md): Removes a policy if it is not the default policy. Sites that used this policy get moved to the default policy. Requires `cpf:delete` scope.
- [List policies](https://docs.sdx.altostrat.io/api-reference/spa/cpf/policies/list-policies.md): Retrieves all policies for the authenticated user.  Requires `cpf:view` scope.
- [Show a single policy](https://docs.sdx.altostrat.io/api-reference/spa/cpf/policies/show-a-single-policy.md): Retrieves details of the specified policy, including related sites. Requires `cpf:view` scope.
- [Update a policy](https://docs.sdx.altostrat.io/api-reference/spa/cpf/policies/update-a-policy.md): Update the specified policy. Sites not in the request may revert to a default policy.  Requires `cpf:update` scope.
- [Validate a policy](https://docs.sdx.altostrat.io/api-reference/spa/cpf/policies/validate-a-policy.md): Check basic policy details to ensure it's valid.
- [Execute commands on a site (internal sync)](https://docs.sdx.altostrat.io/api-reference/spa/cpf/router-commands/execute-commands-on-a-site-internal-sync.md): Sends an execution script or command to the management server for the site. Similar to /sync but specifically for custom script execution.
- [Print or run commands on a site (internal sync)](https://docs.sdx.altostrat.io/api-reference/spa/cpf/router-commands/print-or-run-commands-on-a-site-internal-sync.md): Send an API command to the management server to print or list resources on the router, or run a custom command.
- [Re-send bootstrap scheduler script](https://docs.sdx.altostrat.io/api-reference/spa/cpf/scheduler/re-send-bootstrap-scheduler-script.md): Forces re-sending of a scheduled script or runbook to the router. Often used if the script fails to be applied the first time.
- [Check the management server assigned to a site](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/check-the-management-server-assigned-to-a-site.md): Returns the IP/hostname of the server currently managing the site. Requires authentication.
- [Create a new Site](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/create-a-new-site.md): Creates a new site resource with the specified ID, policy, and other information.
- [Create site for migration](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/create-site-for-migration.md): Creates a Site for system migrations, then runs additional background jobs (tunnel assignment, credentials creation, policy update).
- [List all site IDs](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/list-all-site-ids.md): Returns minimal site data for every site in the system (ID and tunnel IP).
- [List site IDs by Customer](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/list-site-ids-by-customer.md): Returns a minimal array of sites for a given customer, including the assigned tunnel IP if available.
- [Perform a site action](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/perform-a-site-action.md): Sends an SNS-based request to the router for various special actions (reboot, clear firewall, etc.).
- [Retrieve site note](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/retrieve-site-note.md): Fetch current note from an external metadata microservice. Requires authentication and site ownership.
- [Set site note](https://docs.sdx.altostrat.io/api-reference/spa/cpf/sites/set-site-note.md): Update or create site metadata with a 'note' field, stored in an external metadata microservice.
- [Create a transient access for a site](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-access/create-a-transient-access-for-a-site.md): Generates a temporary NAT access to Winbox/SSH. Requires `transientaccess:create` scope.
- [List active transient accesses for a site](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-access/list-active-transient-accesses-for-a-site.md): Returns all unexpired, unrevoked transient access records for the site. Requires `transientaccess:view` scope.
- [Revoke a transient access](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-access/revoke-a-transient-access.md): Marks it as expired/revoked and triggers config removal. Requires `transientaccess:delete` scope.
- [Show one transient access](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-access/show-one-transient-access.md): Returns a single transient access record. Requires `transientaccess:view` scope.
- [Create a transient port-forward](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-forward/create-a-transient-port-forward.md): Creates a short-lived NAT forwarding rule to a destination IP/port behind the router.
- [List site transient port forwards](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-forward/list-site-transient-port-forwards.md): Returns all active NAT port-forwards for a site. Not access-limited, but presumably requires a certain scope.
- [Revoke a transient port-forward](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-forward/revoke-a-transient-port-forward.md): Marks the port-forward as expired and removes the NAT rule from the management server.
- [Show one transient port-forward](https://docs.sdx.altostrat.io/api-reference/spa/cpf/transient-forward/show-one-transient-port-forward.md): Returns details about a specific transient port-forward rule by ID.
- [Create a new scan schedule](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/create-a-new-scan-schedule.md): Creates a new schedule for CVE scans on specified sites. Requires `cve:create` scope or similar.
- [Delete a scan schedule](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/delete-a-scan-schedule.md): Requires `cve:delete` scope or similar.
- [Get scan status for a schedule](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/get-scan-status-for-a-schedule.md): Returns partial data about the schedule's latest scan in progress or completed. Requires `cve:view` scope.
- [List all scan schedules](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/list-all-scan-schedules.md): Returns all the scan schedules belonging to the authenticated user. Requires `cve:view` scope or similar.
- [Show details for a single scan schedule](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/show-details-for-a-single-scan-schedule.md): Requires `cve:view` scope or similar.
- [Start a scan for a schedule](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/start-a-scan-for-a-schedule.md): Manually invokes a scan for this schedule. Sets schedule status to 'starting'. Requires `cve:update` or similar.
- [Stop a scan for a schedule](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/stop-a-scan-for-a-schedule.md): Stops any active site scans for this schedule. Sets schedule status to 'stopping'. Requires `cve:update` or similar.
- [Update a scan schedule](https://docs.sdx.altostrat.io/api-reference/spa/cve/scan-schedules/update-a-scan-schedule.md): Requires `cve:update` scope or similar.
- [List CVE Scans](https://docs.sdx.altostrat.io/api-reference/spa/cve/scans/list-cve-scans.md): Lists all scans for the authenticated user. Requires `cve:view` scope.
- [Show a single CVE scan](https://docs.sdx.altostrat.io/api-reference/spa/cve/scans/show-a-single-cve-scan.md): Returns details about the specified scan. Requires `cve:view` scope.
- [Alias for listing recent or ongoing faults](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/alias-for-listing-recent-or-ongoing-faults.md): Identical to `GET /recent`. **Requires** `fault:view` scope.
- [Generate a new short-lived fault token](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/generate-a-new-short-lived-fault-token.md): Creates a token that can be used to retrieve unresolved or recently resolved faults without requiring ongoing authentication. **Requires** `fault:create` or possibly `fault:view` (depending on usage).
- [List all faults for a given site ID](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/list-all-faults-for-a-given-site-id.md): Returns all faults recorded for a particular site. **Requires** `fault:view` scope.
- [List recent or ongoing faults](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/list-recent-or-ongoing-faults.md): **Requires** `fault:view` scope.

Returns a paginated list of faults filtered by query parameters, typically those unresolved or resolved within the last 10 minutes if `status=recent` is used. For more flexible filtering see query parameters below.
- [List top 10 WAN faults in last 14 days](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/list-top-10-wan-faults-in-last-14-days.md): Retrieves the top 10 most active WAN tunnel (type=wantunnel) faults in the last 14 days. **Requires** `fault:view` scope.
- [Retrieve currently active (unresolved) faults via internal token](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/retrieve-currently-active-unresolved-faults-via-internal-token.md): Available only via internal API token. Expects `type` in the request body (e.g. `site` or `wantunnel`) and returns all unresolved faults of that type.
- [Retrieve faults using short-lived token](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/retrieve-faults-using-short-lived-token.md): Retrieves a set of unresolved or recently resolved faults for the customer associated with the given short-lived token. No other authentication needed. **Public** endpoint, token-based.
- [Retrieve internal fault timeline for a site](https://docs.sdx.altostrat.io/api-reference/spa/faults/faults/retrieve-internal-fault-timeline-for-a-site.md): Available only via internal API token (`internal` middleware). Typically used for analyzing fault timelines. Requires fields `start`, `end`, `type`, and `site_id` in the request body.
- [Filter and retrieve log events](https://docs.sdx.altostrat.io/api-reference/spa/logs/log-events/filter-and-retrieve-log-events.md): Returns filtered log events from CloudWatch for the requested log group and streams. Requires `logs:view` scope.
- [Global ARP search across user’s sites](https://docs.sdx.altostrat.io/api-reference/spa/metrics/arp/global-arp-search-across-user’s-sites.md): Search ARP data across multiple sites belonging to the current user. Requires `inventory:view` scope.
- [(Internal) ARP entries for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/arp/internal-arp-entries-for-a-site.md): Returns ARP data for the site, or 204 if none exist. No Bearer token needed, presumably uses internal token.
- [List ARP entries for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/arp/list-arp-entries-for-a-site.md): Lists ARP entries for the specified site with optional pagination. Requires `inventory:view` scope.
- [Update an ARP entry](https://docs.sdx.altostrat.io/api-reference/spa/metrics/arp/update-an-arp-entry.md): Allows updating group/alias for an ARP entry. Requires `inventory:update` scope.
- [Get BGP usage/logs from last ~2 days](https://docs.sdx.altostrat.io/api-reference/spa/metrics/content/get-bgp-usagelogs-from-last-~2-days.md): Generates a BGP usage report for the site (TCP/UDP traffic captured). Possibly uses blackhole IP analysis. Requires `site` middleware.
- [Get DNS usage/logs from last ~2 days](https://docs.sdx.altostrat.io/api-reference/spa/metrics/content/get-dns-usagelogs-from-last-~2-days.md): Returns top categories, apps, source IPs from DNS logs. Possibly uses blackhole IP analysis. Requires `site` middleware.
- [Get SNMP interface metrics](https://docs.sdx.altostrat.io/api-reference/spa/metrics/interfaces/get-snmp-interface-metrics.md): Returns detailed interface metric data within a specified date range. Requires `site` and `interface` resolution plus relevant scopes.
- [(Internal) List site interfaces](https://docs.sdx.altostrat.io/api-reference/spa/metrics/interfaces/internal-list-site-interfaces.md): Same as /interfaces/{site}, but for internal use.
- [(Internal) Summarized interface metrics](https://docs.sdx.altostrat.io/api-reference/spa/metrics/interfaces/internal-summarized-interface-metrics.md): Calculates average and max in/out in MBps or similar for the date range. Possibly used by other microservices.
- [List SNMP interfaces for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/interfaces/list-snmp-interfaces-for-a-site.md): Returns all known SNMP interfaces on a site. Requires `site` middleware.
- [Get 24h heartbeat or check-in data for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/mikrotikstats/get-24h-heartbeat-or-check-in-data-for-a-site.md): Returns info about missed heartbeats from mikrotik checkins within the last 24 hours. Requires `site` middleware.
- [Get last checkin time for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/mikrotikstats/get-last-checkin-time-for-a-site.md): Returns how long ago the last MikrotikStats record was inserted. Requires `site` middleware.
- [Get raw Mikrotik stats from the last 8 hours](https://docs.sdx.altostrat.io/api-reference/spa/metrics/mikrotikstats/get-raw-mikrotik-stats-from-the-last-8-hours.md): Returns stats such as CPU load, memory for the last 8 hours. Requires `site` middleware.
- [List syslog entries for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/syslog/list-syslog-entries-for-a-site.md): Returns syslog data for a given site. Requires 'site' middleware and typically `inventory:view` scope or similar.
- [Get ping stats for a WAN tunnel](https://docs.sdx.altostrat.io/api-reference/spa/metrics/tunnels/get-ping-stats-for-a-wan-tunnel.md): Retrieves a time-series of ping metrics for the specified WAN tunnel. Requires 'tunnel' middleware, plus date range input.
- [Get tunnels ordered by average jitter or packet loss](https://docs.sdx.altostrat.io/api-reference/spa/metrics/tunnels/get-tunnels-ordered-by-average-jitter-or-packet-loss.md): Aggregates last 24h data from ping_stats and returns an array sorted by either 'mdev' or 'packet_loss'. Typically used to see worst/best tunnels. Requires user’s WAN data scope.
- [(Internal) List WAN Tunnels for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/tunnels/internal-list-wan-tunnels-for-a-site.md): Similar to /wan-tunnels/{site}, but does not require Bearer. Possibly uses an internal token or no auth. Returns 200 or 204 if no tunnels found.
- [(Internal) Retrieve summarized ping stats for a tunnel](https://docs.sdx.altostrat.io/api-reference/spa/metrics/tunnels/internal-retrieve-summarized-ping-stats-for-a-tunnel.md): Given a site and tunnel, returns average or max stats in the date range. Possibly used by internal microservices.
- [List WAN tunnels for a site](https://docs.sdx.altostrat.io/api-reference/spa/metrics/tunnels/list-wan-tunnels-for-a-site.md): Returns all WAN Tunnels associated with that site ID. Requires `site` middleware.
- [Multi-tunnel or aggregated ping stats](https://docs.sdx.altostrat.io/api-reference/spa/metrics/tunnels/multi-tunnel-or-aggregated-ping-stats.md): Retrieves a chart-friendly data series for one or multiple tunnels. Possibly used by a front-end chart. This is a single endpoint returning timestamps and data arrays. Requires date range, optional tunnel list.
- [Create a new notification group](https://docs.sdx.altostrat.io/api-reference/spa/notifications/groups/create-a-new-notification-group.md): Creates a group with name, schedule, topics, recipients, and sites. Requires `notification:create` scope.
- [Delete a notification group](https://docs.sdx.altostrat.io/api-reference/spa/notifications/groups/delete-a-notification-group.md): Removes the group, its recipients, site relationships, and topic references. Requires `notification:delete` scope.
- [Example Ably webhook endpoint](https://docs.sdx.altostrat.io/api-reference/spa/notifications/groups/example-ably-webhook-endpoint.md): Used for testing. Returns request data. Does not require user scope.
- [List all notification groups for the customer](https://docs.sdx.altostrat.io/api-reference/spa/notifications/groups/list-all-notification-groups-for-the-customer.md): Retrieves all groups belonging to the authenticated customer. Requires `notification:view` scope.
- [Show a specific notification group](https://docs.sdx.altostrat.io/api-reference/spa/notifications/groups/show-a-specific-notification-group.md): Retrieve the detail of one group by ID. Requires `notification:view` scope.
- [Update a notification group](https://docs.sdx.altostrat.io/api-reference/spa/notifications/groups/update-a-notification-group.md): Update name, schedule, recipients, and other properties. Requires `notification:update` scope.
- [List all topics](https://docs.sdx.altostrat.io/api-reference/spa/notifications/topics/list-all-topics.md): Returns all possible topics that can be attached to a notification group.
- [Delete a generated SLA report](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-reports/delete-a-generated-sla-report.md): Deletes the JSON data object from S3 (and presumably the PDF). Requires `sla:run` scope.
- [List generated SLA reports](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-reports/list-generated-sla-reports.md): Lists recent SLA JSON results objects in S3 for the user. Requires `sla:run` scope to view generated reports.
- [Create a new SLA schedule](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-schedules/create-a-new-sla-schedule.md): Creates a new SLA report schedule object in DynamoDB and sets up CloudWatch event rules (daily/weekly/monthly). Requires `sla:create` scope.
- [Delete an SLA schedule](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-schedules/delete-an-sla-schedule.md): Deletes a single SLA schedule from DynamoDB and removes CloudWatch events. Requires `sla:delete` scope.
- [Get a single SLA schedule](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-schedules/get-a-single-sla-schedule.md): Retrieves a single SLA schedule by UUID from DynamoDB. Requires `sla:view` scope.
- [List all SLA schedules](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-schedules/list-all-sla-schedules.md): Fetches SLA reporting schedules from DynamoDB for the authenticated user. Requires `sla:view` scope.
- [Manually run an SLA schedule](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-schedules/manually-run-an-sla-schedule.md): Triggers a single SLA schedule to run now, with specified date range. Requires `sla:run` scope. This is done by posting `from_date` and `to_date` in the body.
- [Update an SLA schedule](https://docs.sdx.altostrat.io/api-reference/spa/reports/sla-schedules/update-an-sla-schedule.md): Updates a single SLA schedule and re-configures the CloudWatch event rule(s). Requires `sla:update` scope.
- [Retrieve a specific schedule (internal)](https://docs.sdx.altostrat.io/api-reference/spa/schedules/internal/retrieve-a-specific-schedule-internal.md): This route is for internal usage. It requires a special token in the
`X-Bearer-Token` header (or `Authorization: Bearer <token>`), validated
by the `internal` middleware.

- [Create a new schedule](https://docs.sdx.altostrat.io/api-reference/spa/schedules/schedules/create-a-new-schedule.md)
- [Delete an existing schedule](https://docs.sdx.altostrat.io/api-reference/spa/schedules/schedules/delete-an-existing-schedule.md)
- [List all schedules](https://docs.sdx.altostrat.io/api-reference/spa/schedules/schedules/list-all-schedules.md)
- [Retrieve a specific schedule](https://docs.sdx.altostrat.io/api-reference/spa/schedules/schedules/retrieve-a-specific-schedule.md)
- [Update an existing schedule](https://docs.sdx.altostrat.io/api-reference/spa/schedules/schedules/update-an-existing-schedule.md)
- [Generate RouterOS script via AI prompt](https://docs.sdx.altostrat.io/api-reference/spa/scripts/ai-generation/generate-routeros-script-via-ai-prompt.md): Calls an OpenAI model to produce a RouterOS script from the user’s prompt. Returns JSON with commands, error, destructive boolean, etc. Throttled to 5 requests/minute. Requires `script:create` scope.
- [Create a new community script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/community-scripts/create-a-new-community-script.md): Registers a new script from a GitHub raw URL (.rsc) and optional .md readme URL. Automatically triggers background jobs to fetch code, parse README, and create an AI description.
- [List community scripts](https://docs.sdx.altostrat.io/api-reference/spa/scripts/community-scripts/list-community-scripts.md): Returns a paginated list of community-contributed scripts with minimal info. No authentication scope is specifically enforced in code, but presumably behind `'auth'` or `'api'` guard.
- [Raw readme.md content](https://docs.sdx.altostrat.io/api-reference/spa/scripts/community-scripts/raw-readmemd-content.md): Fetches README from GitHub and returns as text/plain, if `readme_url` is set.
- [Raw .rsc content of a community script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/community-scripts/raw-rsc-content-of-a-community-script.md): Fetches the script content from GitHub and returns as text/plain.
- [Show a single community script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/community-scripts/show-a-single-community-script.md): Provides script details including name, description, user info, repo info, etc.
- [Authorize a scheduled script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/authorize-a-scheduled-script.md): Sets `authorized_at` if provided token matches `md5(id)`. Requires `script:authorize` scope. Fails if already authorized.
- [Create a new scheduled script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/create-a-new-scheduled-script.md): Requires `script:create` scope. Specifies a script body, description, launch time, plus sites and notifiable user IDs. Also sets whether backups should be made, etc.
- [Delete or cancel a scheduled script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/delete-or-cancel-a-scheduled-script.md): If script not authorized & not started, it's fully deleted. Otherwise sets `cancelled_at`. Requires `script:delete` scope.
- [Immediately run the scheduled script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/immediately-run-the-scheduled-script.md): Requires the script to be authorized. Dispatches jobs to each site. Requires `script:run` scope.
- [List all scheduled scripts](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/list-all-scheduled-scripts.md): Lists scripts that are scheduled for execution. Requires `script:view` scope. Includes site relationships and outcome data.
- [Request authorization (trigger notifications)](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/request-authorization-trigger-notifications.md): Sends a WhatsApp or other message to configured notifiables to authorize the script. Requires `script:update` scope.
- [Run scheduled script test](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/run-scheduled-script-test.md): Sends the script to the configured `test_site_id` only. Requires `script:run` scope.
- [Script execution progress](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/script-execution-progress.md): Returns which sites are pending, which have completed, which have failed, etc. Requires `script:view` scope.
- [Show a single scheduled script’s details](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/show-a-single-scheduled-script’s-details.md): Returns a single scheduled script with all relationships (sites, outcomes, notifications). Requires `script:view` scope.
- [Update a scheduled script](https://docs.sdx.altostrat.io/api-reference/spa/scripts/scheduled-scripts/update-a-scheduled-script.md): Edits a scheduled script’s fields, re-syncs sites and notifiables. Requires `script:update` scope.
- [Create a new VPN instance](https://docs.sdx.altostrat.io/api-reference/spa/vpn/instances/create-a-new-vpn-instance.md): Provisions a new VPN instance, automatically deploying a server. Requires `vpn:create` scope.
- [Delete a VPN instance](https://docs.sdx.altostrat.io/api-reference/spa/vpn/instances/delete-a-vpn-instance.md): Tears down the instance. Requires `vpn:delete` scope.
- [Fetch bandwidth usage](https://docs.sdx.altostrat.io/api-reference/spa/vpn/instances/fetch-bandwidth-usage.md): Returns the bandwidth usage metrics for the instance's primary server. Requires `vpn:view` scope.
- [List all VPN instances](https://docs.sdx.altostrat.io/api-reference/spa/vpn/instances/list-all-vpn-instances.md): Returns a list of instances the authenticated user has created. Requires `vpn:view` scope.
- [Show details for a single VPN instance](https://docs.sdx.altostrat.io/api-reference/spa/vpn/instances/show-details-for-a-single-vpn-instance.md): Retrieves a single instance resource by its ID. Requires `vpn:view` scope.
- [Update a VPN instance](https://docs.sdx.altostrat.io/api-reference/spa/vpn/instances/update-a-vpn-instance.md): Allows modifications to DNS, routes, firewall, etc. Requires `vpn:update` scope.
- [Internal instance counts per customer](https://docs.sdx.altostrat.io/api-reference/spa/vpn/internal/internal-instance-counts-per-customer.md): Used internally to retrieve aggregated peer or instance usage counts. Requires an internal token (not standard Bearer).
- [Create a new peer on an instance](https://docs.sdx.altostrat.io/api-reference/spa/vpn/peers/create-a-new-peer-on-an-instance.md): Adds a client peer or site peer to the instance. Requires `vpn:create` scope.
- [Delete a peer](https://docs.sdx.altostrat.io/api-reference/spa/vpn/peers/delete-a-peer.md): Removes a peer from the instance. Requires `vpn:delete` scope.
- [List all peers under an instance](https://docs.sdx.altostrat.io/api-reference/spa/vpn/peers/list-all-peers-under-an-instance.md): Lists all VPN peers (clients or site-peers) attached to the specified instance. Requires `vpn:view` scope.
- [Show a single peer](https://docs.sdx.altostrat.io/api-reference/spa/vpn/peers/show-a-single-peer.md): Returns detail about a single peer for the given instance. Requires `vpn:view` scope.
- [Update a peer](https://docs.sdx.altostrat.io/api-reference/spa/vpn/peers/update-a-peer.md): Update subnets, route-all, etc. Requires `vpn:update` scope.
- [List available server regions](https://docs.sdx.altostrat.io/api-reference/spa/vpn/servers/list-available-server-regions.md): Retrieves a list of possible Vultr (or other provider) regions where a VPN instance can be deployed.
- [Server build complete callback](https://docs.sdx.altostrat.io/api-reference/spa/vpn/servers/server-build-complete-callback.md): Called by the server itself upon final provisioning. Signed route with short TTL. Updates IP, sets DNS records, etc.
- [Get site subnets](https://docs.sdx.altostrat.io/api-reference/spa/vpn/sites/get-site-subnets.md): Retrieves potential subnets from the specified site (used for configuring a site-to-site VPN peer).
- [Download WireGuard config as a QR code](https://docs.sdx.altostrat.io/api-reference/spa/vpn/vpn-client-tokens/download-wireguard-config-as-a-qr-code.md): Returns the config in a QR code SVG. Signed route with short TTL. Requires the peer to be a client peer.
- [Download WireGuard config file](https://docs.sdx.altostrat.io/api-reference/spa/vpn/vpn-client-tokens/download-wireguard-config-file.md): Returns the raw WireGuard client config for a peer (type=client). Signed route with short TTL. Requires the peer to be a client peer.
- [Retrieve ephemeral client config references](https://docs.sdx.altostrat.io/api-reference/spa/vpn/vpn-client-tokens/retrieve-ephemeral-client-config-references.md): Uses a client token to retrieve a short-lived reference for WireGuard config or QR code download. The token is validated by custom client-token auth. Returns a JSON with config_file URL, QR code URL, etc.
- [Create WAN failover for a site](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/failover/create-wan-failover-for-a-site.md): Sets up a new failover resource for the site if not already present, plus some default tunnels. Requires `wan:create` scope.
- [Delete WAN failover](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/failover/delete-wan-failover.md): Deletes failover from DB, tears down related tunnels, and unsubscribes. Requires `wan:delete` scope.
- [Get failover info for a site](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/failover/get-failover-info-for-a-site.md): Retrieves the failover record for a given site, if any. Requires `wan:view` scope.
- [List failover services for current user](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/failover/list-failover-services-for-current-user.md): Returns minimal array of failover objects (id, site_id) for user. Possibly used to see how many failovers they have.
- [Set tunnel priorities for a site](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/failover/set-tunnel-priorities-for-a-site.md): Updates the `priority` field on each tunnel for this failover. Requires `wan:update` scope.
- [Update tunnel gateway (router callback)](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/gateway/update-tunnel-gateway-router-callback.md): Allows a router script to update the gateway IP after DHCP/PPP changes. Typically uses X-Bearer-Token or similar, not standard BearerAuth. No standard scope enforced.
- [List count of failovers per customer](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/services/list-count-of-failovers-per-customer.md): Returns an object mapping customer_id => count (how many site failovers).
- [List site IDs for a customer (failover services)](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/services/list-site-ids-for-a-customer-failover-services.md): Returns an array of site IDs that have failover records for the given customer.
- [List tunnels for a site (unauth? or partial auth?)](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/services/list-tunnels-for-a-site-unauth?-or-partial-auth?.md): Returns array of Tunnels for the given site if any exist. Possibly used by external or different auth flow.
- [Create a new tunnel](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/create-a-new-tunnel.md): Creates a new WAN tunnel record for the site. Requires `wan:create` scope.
- [Delete a tunnel](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/delete-a-tunnel.md): Removes the tunnel from the DB and notifies system to remove config. Requires `wan:delete` scope.
- [Detect eligible gateways for an interface](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/detect-eligible-gateways-for-an-interface.md): Find potential gateway IP addresses for the given interface. Requires `wan:view` scope.
- [Get router interfaces](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/get-router-interfaces.md): Lists valid router interfaces for a site. Possibly from router print. Requires `wan:view` scope.
- [List all tunnels for current user](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/list-all-tunnels-for-current-user.md): Returns all Tunnels for the authenticated user’s customer_id. Requires `wan:view` scope.
- [List tunnels for a site](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/list-tunnels-for-a-site.md): Returns all Tunnels associated with this site’s failover. Requires `wan:view` scope.
- [Show a single tunnel](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/show-a-single-tunnel.md): Returns details of the specified tunnel. Requires `wan:view` scope.
- [Update tunnel properties](https://docs.sdx.altostrat.io/api-reference/spa/wan-failover/tunnel/update-tunnel-properties.md): Modifies name, gateway, interface, or SLA references on the tunnel. Requires `wan:update` scope.
- [Test a Slack or MS Teams webhook](https://docs.sdx.altostrat.io/api-reference/spa/webhooks/integrations/test-a-slack-or-ms-teams-webhook.md): Sends a test message to the specified Slack or MS Teams webhook URL. **Requires** valid JWT authentication with appropriate scope (e.g., `webhook:test` or similar).
- [Content Filtering](https://docs.sdx.altostrat.io/core-concepts/content-filtering.md): Manage and restrict access to undesirable or harmful content across your network.
- [Control Plane](https://docs.sdx.altostrat.io/core-concepts/control-plane.md): Configure inbound management services (WinBox, SSH, API) and firewall rules at scale in Altostrat.
- [Notification Groups](https://docs.sdx.altostrat.io/core-concepts/notification-groups.md): Define groups of users, schedules, and alert types for more targeted notifications.
- [Notifications](https://docs.sdx.altostrat.io/core-concepts/notifications.md): Define, manage, and route alerts for important network events in Altostrat.
- [Roles & Permissions](https://docs.sdx.altostrat.io/core-concepts/roles-and-permissions.md): Control user access levels in Altostrat through roles, permissions, and fine-grained capabilities.
- [Security Essentials](https://docs.sdx.altostrat.io/core-concepts/security-essentials.md): Core security features in Altostrat, from blocking malicious traffic to proactive monitoring.
- [Teams](https://docs.sdx.altostrat.io/core-concepts/teams.md): Organize users into teams for resource ownership and collaboration in Altostrat.
- [Users](https://docs.sdx.altostrat.io/core-concepts/users.md): Manage portal and notification users, and understand how resource access is granted in Altostrat.
- [Adding a Router](https://docs.sdx.altostrat.io/getting-started/adding-a-router.md): Follow these steps to onboard your MikroTik router to the Altostrat portal.
- [Captive Portal Setup](https://docs.sdx.altostrat.io/getting-started/captive-portal-setup.md): Learn how to configure a Captive Portal instance and enable network-level authentication.
- [Initial Configuration](https://docs.sdx.altostrat.io/getting-started/initial-configuration.md): Learn how to reset, connect, and update your MikroTik device before adding it to Altostrat.
- [Introduction](https://docs.sdx.altostrat.io/getting-started/introduction.md): Welcome to Altostrat SDX—your unified platform for MikroTik management and more.
- [Remote WinBox Login](https://docs.sdx.altostrat.io/getting-started/remote-winbox-login.md): How to securely access your MikroTik router using WinBox, even behind NAT.
- [Transient Access](https://docs.sdx.altostrat.io/getting-started/transient-access.md): Secure, on-demand credentials for MikroTik devices behind NAT firewalls.
- [User Registration](https://docs.sdx.altostrat.io/getting-started/user-registration.md): How to create a new user account in Altostrat
- [Google Cloud Integration](https://docs.sdx.altostrat.io/integrations/google-cloud-integration.md): Connect Altostrat with Google Cloud for user authentication and secure OAuth 2.0 flows.
- [Identity Providers](https://docs.sdx.altostrat.io/integrations/identity-providers.md): Configure external OAuth 2.0 or SSO providers like Google, Azure, or GitHub for Altostrat authentication.
- [Integrations Overview](https://docs.sdx.altostrat.io/integrations/integrations-overview.md): Overview of how Altostrat connects with external platforms for notifications, authentication, and more.
- [Microsoft Azure Integration](https://docs.sdx.altostrat.io/integrations/microsoft-azure-integration.md): Use Microsoft Entra (Azure AD) for secure user authentication in Altostrat.
- [Microsoft Teams](https://docs.sdx.altostrat.io/integrations/microsoft-teams.md): Integrate Altostrat notifications and alerts into Microsoft Teams channels.
- [Slack](https://docs.sdx.altostrat.io/integrations/slack.md): Send Altostrat alerts to Slack channels for quick incident collaboration.
- [Backups](https://docs.sdx.altostrat.io/management/backups.md): Manage and schedule configuration backups for MikroTik devices through Altostrat.
- [Device Tags](https://docs.sdx.altostrat.io/management/device-tags.md): Organize and categorize your MikroTik devices with custom tags in Altostrat.
- [Faults](https://docs.sdx.altostrat.io/management/faults.md): Monitor and troubleshoot disruptions or issues in your network via Altostrat.
- [Management VPN](https://docs.sdx.altostrat.io/management/management-vpn.md): How MikroTik devices connect securely to Altostrat for real-time monitoring and management.
- [Managing WAN Failover](https://docs.sdx.altostrat.io/management/managing-wan-failover.md): Create, reorder, and troubleshoot WAN Failover configurations for reliable multi-link setups.
- [Orchestration Log](https://docs.sdx.altostrat.io/management/orchestration-log.md): Track scripts, API calls, and automated tasks performed by Altostrat on your MikroTik devices.
- [Regional Servers](https://docs.sdx.altostrat.io/management/regional-servers.md): Improve performance and minimize single points of failure with globally distributed clusters.
- [Short Links](https://docs.sdx.altostrat.io/management/short-links.md): Simplify long, signed URLs into user-friendly short links for Altostrat notifications and emails.
- [WAN Failover](https://docs.sdx.altostrat.io/management/wan-failover.md): Enhance reliability by combining multiple internet mediums for uninterrupted cloud connectivity.
- [Installable PWA](https://docs.sdx.altostrat.io/resources/installable-pwa.md): Learn how to install Altostrat's Progressive Web App (PWA) for an app-like experience and offline support.
- [Password Policy](https://docs.sdx.altostrat.io/resources/password-policy.md): Requirements for secure user passwords in Altostrat.
- [Supported SMS Regions](https://docs.sdx.altostrat.io/resources/supported-sms-regions.md): List of countries where Altostrat's SMS delivery is enabled, plus any high-risk or unsupported regions.
- [API Authentication](https://docs.sdx.altostrat.io/sdx-api/authentication.md): Learn how to securely authenticate calls to the Altostrat SDX API using bearer tokens.
