Quick Tests API
Quick tests let you run one-off page speed tests against any URL without setting up monitoring.
The Node examples below assume an SDK instance is in scope:
const { DebugBear } = require("debugbear");
const debugbear = new DebugBear(process.env.DEBUGBEAR_API_KEY);
Free-trial accounts can run up to 30 quick tests per day via the API, across all projects in the billing customer.
Trigger one or more quick tests
const { quickTests: pending, waitForResults } = await debugbear.quickTests.run(
projectId,
[
{ url: "https://example.com" },
{ url: "https://example.com/pricing", device: "Desktop" },
],
);
// Optional: wait for every quick test in the batch to finish.
const { quickTests: finished } = await waitForResults();
console.log(finished[0].metrics);
Each test entry takes:
url: the URL to test. Bare domains are accepted; the URL is resolved before the test runs.device(optional): name of a device configured on the project (e.g."Mobile","Desktop Fast"). Defaults to the project's"Mobile"device if it exists, otherwise the first configured device.region(optional): server region (e.g.us-east,uk). Defaults tous-east.
Using cURL
curl https://www.debugbear.com/api/v1/project/PROJECT_ID/quickTests \
-X POST \
-H "x-api-key: API_KEY" \
-H "Content-Type: application/json" \
-d '[{"url":"https://example.com"}]'
Get a quick test by ID
const qt = await debugbear.quickTests.get(projectId, quickTestId);
console.log(qt.hasFinished, qt.metrics);
Using cURL
curl https://www.debugbear.com/api/v1/project/PROJECT_ID/quickTest/QUICK_TEST_ID \
-X GET \
-H "x-api-key: API_KEY"
The response includes the test data and performance metrics.
{
"id": "129",
"url": "https://www.tesco.com/",
"resultUrl": "https://www.debugbear.com/project/123456/quickTest/AOpvJoEGtzS2umru2DXyCFwa9/overview",
"region": "us-east",
"device": {
"id": "392548",
"name": "Mobile",
"formFactor": "mobile"
},
"hasFinished": true,
"metrics": {
"analysis.date": "2026-05-25T02:04:32.978Z",
"requestTtfb": null,
"performance.ttfb": null,
"...": "..."
},
"createdAt": "2026-05-25T01:46:21.000Z",
"completedAt": "2026-05-25T01:46:43.808Z"
}
Get quick test request waterfall
const requests = await debugbear.quickTests.getRequests(projectId, quickTestId);
Using cURL
curl https://www.debugbear.com/api/v1/project/PROJECT_ID/quickTest/QUICK_TEST_ID/requests \
-X GET \
-H "x-api-key: API_KEY"
Get quick test Lighthouse report
const lhr = await debugbear.quickTests.getLighthouseReport(
projectId,
quickTestId,
);
Using cURL
curl https://www.debugbear.com/api/v1/project/PROJECT_ID/quickTest/QUICK_TEST_ID/lhr \
-X GET \
-H "x-api-key: API_KEY"
Get quick test page HTML
Returns the HTML of the main document, as it was served by the page before any client-side rendering. The response is a JSON object with a single html property.
const { html } = await debugbear.quickTests.getHtml(projectId, quickTestId);
This returns a 404 error if HTML is not available for the test result, for example when the HTML document was larger than the maximum size DebugBear stores (2 MB by default).
Using cURL
curl https://www.debugbear.com/api/v1/project/PROJECT_ID/quickTest/QUICK_TEST_ID/html \
-X GET \
-H "x-api-key: API_KEY"
List quick tests for a project
Returns the most recent quick tests, newest first. Each entry has the URL, region, device, and metrics.
const recent = await debugbear.quickTests.list(projectId);
const moreRecent = await debugbear.quickTests.list(projectId, { limit: 500 });
Returns 100 results by default; the maximum is 1000.
Using cURL
curl https://www.debugbear.com/api/v1/project/PROJECT_ID/quickTests?limit=100 \
-X GET \
-H "x-api-key: API_KEY"