Skip to main content
Zepeed exposes a REST API that lets you fetch test results, trigger speedtests, and manage schedules from external systems. Use it to build custom dashboards, export data, or integrate Zepeed into existing automation.
The API is under active development. Endpoints and response shapes may change between releases. Pin to a known Zepeed version in production integrations.

Find the API docs in Zepeed

Zepeed ships with interactive API documentation served directly from your running instance. The docs route is public — you do not need to sign in to view it. Open it to browse every endpoint and view request/response schemas. Sign in (or use a token) only when you want to send live requests.
1

Open the API docs

In a browser, go directly to:
No authentication is required to view the documentation.
2

Authorize to try requests (optional)

To send live requests with Try it out, click Authorize at the top of the page and paste a Bearer token. See Authentication below for how to generate one.
The in-app API docs always reflect the version of Zepeed you are running. If an endpoint shown there differs from this page, trust the in-app docs.

Base URL

The API is served from the same host as the Zepeed dashboard:
All requests and responses use JSON.

Authentication

Zepeed uses Laravel Fortify-issued API tokens. Generate a personal token from the dashboard, then include it on every request:
1

Open Settings

From the dashboard, click your profile menu and select Settings → API Tokens.
2

Create a token

Click Create Token, give it a descriptive name, and copy the value shown. You will not be able to view it again.
3

Send the token

Include the token as a Bearer credential on every request:
Treat tokens like passwords. Revoke any token that may have been exposed from Settings → API Tokens.

Common endpoints

The following endpoints cover the most common use cases. Refer to the running app’s /api routes for the full surface.

List speedtest results

Query parameters:
  • provider — Filter by provider (ookla, librespeed, cloudflare, fast).
  • from / to — ISO-8601 date range.
  • limit — Page size (default 50).

Get a single result

Trigger a speedtest

Returns the queued test ID. Poll GET /api/speedtests/{id} for the result.

List schedules

Create a schedule

Response format

Successful responses follow a consistent shape:
Error responses use standard HTTP status codes with a JSON body:

Rate limits

The default Laravel rate limit applies (60 requests per minute per token). Override it in your environment if you need higher throughput.