GTmetrix REST API v0.1
Note regarding the GTmetrix API
The below specification is for our legacy GTmetrix API v0.1, which only generates Legacy Reports (PageSpeed/YSlow).
Use our latest GTmetrix API v2.0 to generate Lighthouse reports.
The GTmetrix API offers developers an easy way to utilize the GTmetrix performance testing service. Using the GTmetrix API, you can integrate performance testing into your development environment or into your application.
The GTmetrix API is based on the Web Testing Framework (WTF) Testing Service API; a RESTful API. Please contact us if you have any questions or comments about the API, or if you end up using it in a cool and interesting way!
Libraries
We currently have a PHP library available for use with our REST API v0.1:
In addition, third-party libraries are available for the following languages/platforms:
API Access URL
The base URL for the GTmetrix API is https://gtmetrix.com/api/0.1/. Please note that HTTPS is required.
Authentication
The GTmetrix API uses HTTP Basic Access Authentication as its authentication mechanism. Use your e-mail address as the username and your API key as the password.
We recommend using your HTTP client's built-in basic authentication handling, like in the curl examples below, which automatically generates the correct Authorization header and appends it to your request. You can also generate the Authorization header yourself by following the specification instructions.
You can generate or view your API key at the API Key box at the top of the page.
Note that if you are accessing the API using an API key generated from a GTmetrix Team plan with role of Viewer, you will not be able to generate tests, delete reports or create PDF reports.
Request Responses
The GTmetrix API uses the HTTP status codes as defined by RFC 2616 to declare whether an API request was successful or not. The error status codes that the API can return are listed in the documentation below.
All requests (except where noted) return an JSON-encoded string. See the documentation below for the structure of the data.
Errors are returned in the format:
{ "error" : "Error message goes here" }
API Rate Limiting
The GTmetrix API has a global rate limit on all the API endpoints to prevent accidental or deliberate flooding of requests to the API service. Limits have been chosen that should be high enough for any reasonable API usage. If you are hitting the limits, consider increasing your retry times or contact us to discuss your usage scenario.
The rate-limit state is communicated via X-RateLimit-* response headers, loosely following the specification guidelines:
X-RateLimit-Limit: {request-quota}, {request-quota};window={time-window} X-RateLimit-Remaining: {requests-remaining} X-RateLimit-Reset: {time-remaining}
Parameter | Description |
---|---|
request-quota |
The total amount of requests allowed before rate-limiting
within the time window 240 requests for GTmetrix Basic, 960 for most GTmetrix PRO users |
time-window | The size of the request rate-limiting window (60s) |
requests-remaining | The amount of requests remaining before rate-limiting within the current window |
time-remaining | Seconds remaining until the end of the current window |
If you exceed this limitation, the API will respond with a 429 error to any request until the end of the rate limit window.
HTTP status | Error code | Error message |
---|---|---|
429 | E42901 | Rate limit exceeded |
API Credits
The GTmetrix API uses a credit system to allow access to our servers for analysis requests.
- 1 analysis request = 0.7 credits (3.5 credits for a video request).
- GTmetrix Basic users are given up to 5 API credits daily.
- You can increase your Daily API Credit allowance by upgrading to GTmetrix PRO.
- When you first generate an API key, you are given 100 credits (useful for testing purposes).
Please note that your API credits only refill when they fall below your account's Daily API Credit—credits do not accumulate past your account's Daily API Credit allowance.
For example, a GTmetrix Basic account has a daily allocation of 5 credits. A refill of these credits (back to 5) will occur on the next refill period and only when your remaining credits drop below 5.
If you think your application or service will require more API credits, please feel free to upgrade to a GTmetrix PRO account, or contact us.
REST Requests
Start a Test
POST /api/0.1/test
Note that you can only run 2 jobs concurrently on a Basic account (GTmetrix PRO users get 8 concurrency) and when you exceed this limit, you will get a 429 HTTP status code. You will need to wait until one of the existing jobs completes, or retry until you get a non 429 status.
Parameters
Name | Description | Type | Required | Default |
---|---|---|---|---|
url | The URL of the page to test | string | Yes | |
location | Test location ID | string | No | 1 |
browser | Browser ID | string | No | 3 |
login-user | Username for the test page HTTP access authentication — this is not the API authentication. | string | No | |
login-pass | Password for the test page HTTP access authentication — this is not the API authentication. | string | No | |
x-metrix-adblock | Enable AdBlock | integer (0, 1) | No | 0 |
x-metrix-cookies | Cookies to send with the request. This uses the same syntax as the web front end. | string | No | |
x-metrix-video | Enable generation of video — due to extra storage and processing requirements, a video test requires 3.5 api credits | integer (0, 1) | No | 0 |
x-metrix-stop-onload | Stop the test at window.onload instead of after the page has fully loaded (ie. 2 seconds of network inactivity). | integer (0, 1) | No | 0 |
x-metrix-throttle | Throttle the connection. Speed measured in Kbps, latency in ms. See Connection Throttling reference section for sample values. | string (down/up/latency) | No | |
x-metrix-allow-url | Only load resources that match one of the URLs on this list. This uses the same syntax as the web front end. | string | No | |
x-metrix-block-url | Prevent loading of resources that match one of the URLs on this list. This occurs after the Only Allow URLs are applied. This uses the same syntax as the web front end. | string | No | |
x-metrix-dns* | Use a custom DNS host and IP to run the test with. | string (host:ip_address) | No | |
x-metrix-simulate-device* | Simulate the display of your site on a variety of devices using a pre-selected combination of Screen Resolutions, User Agents, and Device Pixel Ratios. See Simulated Devices reference section for sample ID values. | string (device Id) | No | |
x-metrix-user-agent* | Use a custom User Agent string | string | No | |
x-metrix-browser-width* | Set the width of the viewport (in pixels) for the analysis. Also requires x-metrix-browser-height to be set. | string | No | 1366 |
x-metrix-browser-height* | Set the height of the viewport (in pixels) for the analysis. Also requires x-metrix-browser-width to be set. | string | No | 768 |
x-metrix-browser-dppx* | Set the device pixel ratio for the analysis. Decimals are allowed. | Number (1 - 5) | No | 1 |
x-metrix-browser-rotate* | Swaps the width and height of the viewport for the analysis. | integer (0, 1) | No | 0 |
* These parameters are only available with a GTmetrix PRO plan. Learn more.
Response attributes
Attribute | Description | Type |
---|---|---|
test_id | The test ID | string |
poll_state_url | URL to use to poll test state | string |
credits_left | The number of API credits remaining after running this test | integer |
Possible errors
HTTP status code | Error message |
---|---|
400 | Request must use POST method |
400 | Invalid parameter {parameter} |
400 | Invalid HTTP Auth Username |
400 | Invalid URL |
400 | Invalid Test Server Location |
400 | Supplied Test Server Location is currently down |
400 | Invalid Browser Selection |
402 | Maximum number of API calls reached |
403 | Your role does not have access to this feature. Contact your team administrator for more info |
429 | Too many concurrent requests from your IP |
503 | Application server temporarily unavailable |
cURL example
Request
curl -u [email protected]:e8ddc55d93eb0e8281b255ea236dcc4f \ -F url=http://example.com -F x-metrix-adblock=0 \ https://gtmetrix.com/api/0.1/test
Response
{ "test_id":"TtGJTbkv", "poll_state_url":"https://gtmetrix.com/api/0.1/test/TtGJTbkv", "credits_left":78 }
Get the test state and results/resources (when test complete)
GET /api/0.1/test/{test_id}
The recommended poll interval is 1 second.
Note that the tests are only retained for 24 hours. The GTmetrix report for the URL will be valid for 1 month.
URI values
Parameter | Description |
---|---|
test_id | The test ID returned after starting the test |
Parameters
None
Response attributes
Name | Description | Type |
---|---|---|
state | The current state of the test | string (queued, started, completed, error) |
error | The error message if state == "error". Empty string if no error. | string |
results | Summary of test results. Will be an empty object until state == "completed". | hash |
results.report_url | The URL to the GTmetrix report | string |
results.pagespeed_score | PageSpeed score | integer |
results.yslow_score | YSlow score | integer |
results.html_bytes | The HTML size (may be the compressed size) | integer |
results.html_load_time | The HTML load time or TTFB (in milliseconds) | integer |
results.page_bytes | The total page size | integer |
results.page_load_time | The page load time (in milliseconds) | integer |
results.page_elements | The number of page elements (# of resources) | integer |
results.redirect_duration | Time spent redirecting (in milliseconds) | integer |
results.connect_duration | Connection time for the html page request (in milliseconds). This timing is a sum of blocked, DNS, connect and send times and may be 0 if the request was redirected. | integer |
results.backend_duration | Backend or wait time for the html page request (in milliseconds) | integer |
results.first_paint_time | First paint time (in milliseconds) | integer |
results.first_contentful_paint_time | First contentful paint time (in milliseconds) | integer |
results.dom_interactive_time | DOM interactive time (in milliseconds) | integer |
results.dom_content_loaded_time | DOM content loaded time (in milliseconds) | integer |
results.dom_content_loaded_duration | DOM content loaded duration (in milliseconds). The duration of which the DOMContentLoaded event JavaScript takes to complete. | integer |
results.onload_time | Window.onload time (in milliseconds); same as results.page_load_time | integer |
results.onload_duration | Window.onload duration (in milliseconds). The duration of which the window.onload event JavaScript takes to complete. | integer |
results.fully_loaded_time | Fully loaded time (in milliseconds). The time after the window.onload event has fired and there has been no network activity for 2 seconds. If the x-metrix-stop-onload option is used, then this value will be set to -1. | integer |
results.rum_speed_index | RUM Speed Index | integer |
resources | URLs of downloadable resources. Will be an empty object until state == "completed". | hash |
resources.screenshot | URL to download the screenshot | string |
resources.har | URL to download the HAR file. Note that sensitive info (HTTP auth and cookies) has been removed, file contents have been trimmed, and resource usage data has been included in the HAR file. | string |
resources.pagespeed | URL to download the PageSpeed beacon | string |
resources.pagespeed_files | URL to download the PageSpeed optimized files. The files are combined into a single tar file. | string |
resources.yslow | URL to download the YSlow beacon | string |
resources.report_pdf | The URL to the GTmetrix report in PDF format | string |
resources.report_pdf_full | The URL to the full GTmetrix report (includes recommendation details) in PDF format | string |
resources.video | The URL to the optional GTmetrix video in MP4 format | string |
resources.filmstrip | The URL to the optional GTmetrix video's filmstrip in JPEG format | string |
Possible errors
HTTP status code | Error message |
---|---|
400 | Request must use GET method |
404 | Test not found |
503 | Application server temporarily unavailable |
cURL example
Request
curl -u [email protected]:e8ddc55d93eb0e8281b255ea236dcc4f \ https://gtmetrix.com/api/0.1/test/TtGJTbkv
Response (Started state)
{ "resources":{}, "error":"", "results":{}, "state":"started" }
Response (Completed state)
{ "resources":{ "har":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/har", "screenshot":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/screenshot", "video":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/video", "filmstrip":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/filmstrip", "report_pdf":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/report-pdf", "report_pdf_full":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/report-pdf?full=1", "pagespeed":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/pagespeed", "pagespeed_files":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/pagespeed-files", "yslow":"https://gtmetrix.com/api/0.1/test/TtGJTbkv/yslow" }, "error":"", "results":{ "report_url":"https://gtmetrix.com/reports/gtmetrix.com/Cz0AQOjf/", "html_load_time":"87", "html_bytes":"3395", "page_load_time":"522", "page_bytes":"89229", "page_elements":"16", "pagespeed_score":"95", "yslow_score":"98" }, "state":"completed" }
Resource usage data
A collection of resource usage values, sampled roughly every hundred milliseconds, is included as a custom field on the pages object of the HAR file. This custom field, named _resourceUsage
, is an array containing arrays whose values are structured like so:
Subarray values
Index | Description | Type |
---|---|---|
0 | The time elapsed since the last sample (in milliseconds) | integer |
1 | The current CPU usage (as a percentage) | float |
2 | The current memory usage (in megabytes) | float |
3 | The amount of data received since the last sample (in bytes) | integer |
4 | The amount of data sent since the last sample (in bytes) | integer |
Get test resource
GET /api/0.1/test/{test_id}/{resource}
Note that the PageSpeed optimized files are only kept for 24 hours. They should be downloaded on job completion if you wish to save them.
Generating a report PDF is a resource intensive task and as a result, is rate limited to 10 report PDFs per minute.
URI values
Parameter | Description |
---|---|
test_id | The test ID returned after starting the test |
resource | Test resource to download: screenshot, har, pagespeed, pagespeed-files, yslow, report-pdf, video |
Parameters
None
Response
Varies based on resource.
Possible errors
HTTP status code | Error message |
---|---|
400 | Request must use GET method |
404 | Test not found |
404 | There was an error testing the page, no resources are available |
404 | Data not yet available, please wait until test has completed |
429 | Rate limit exceeded, please try again later |
500 | Resource unavailable |
503 | Application server temporarily unavailable |
cURL example
Request
curl -u [email protected]:e8ddc55d93eb0e8281b255ea236dcc4f \ https://gtmetrix.com/api/0.1/test/TtGJTbkv/har
Get a list of available test locations
GET /api/0.1/locations
This list is limited to the test locations currently available to you. Visit Locations for more information on Basic and Premium test locations.
Parameters
None
Response attributes
Attribute | Description | Type |
---|---|---|
{i}.id | The location ID | string |
{i}.name | The location name | string |
{i}.default | Whether this is the default location | boolean |
{i}.browsers | List of browser ID's supported by this location | array of strings |
Possible errors
HTTP status code | Error message |
---|---|
400 | Request must use GET method |
503 | Application server temporarily unavailable |
cURL example
Request
curl -u [email protected]:e8ddc55d93eb0e8281b255ea236dcc4f \ https://gtmetrix.com/api/0.1/locations
Response
[ { "id":"1", "name":"Vancouver, Canada", "default":true, "browsers":["1","3"] }, { "id":"2", "name":"London, UK", "default":false, "browsers":["1","3"] }, { "id":"3", "name":"Sydney, Australia", "default":false, "browsers":["1","3"] }, { "id":"4", "name":"San Antonio, USA", "default":false, "browsers":["1","3"] }, { "id":"5", "name":"Mumbai, India", "default":false, "browsers":["1,"3"] }, { "id":"6", "name":"Sao Paulo, Brazil", "default":false, "browsers":["1","3"] }, { "id":"7", "name":"Hong Kong, China", "default":false, "browsers":["1","3"] } ]
Get a list of available browsers
GET /api/0.1/browsers
This list is limited to the test browsers currently available to you.
Parameters
None
Response attributes
Attribute | Description | Type |
---|---|---|
{i}.id | The browser ID | string |
{i}.name | The browser display name | string |
{i}.platform | The browser platform (desktop/android) | string |
{i}.device | The browser device type (phone/tablet); if applicable | string |
{i}.browser | The browser (firefox/chrome) | string |
{i}.features.adblock | Whether this browser supports AdBlock | boolean |
{i}.features.cookies | Whether this browser supports specifying cookies | boolean |
{i}.features.filtering | Whether this browser supports URL filtering | boolean |
{i}.features.http_auth | Whether this browser supports HTTP authentication | boolean |
{i}.features.throttle | Whether this browser supports connection throttling | boolean |
{i}.features.video | Whether this browser supports video generation | boolean |
{i}.features.dns | Whether this browser supports custom DNS | boolean |
{i}.features.user_agent | Whether this browser supports setting a custom User Agent | boolean |
{i}.features.resolution | Whether this browser supports setting a custom viewport resolution and device pixel ratio | boolean |
Possible errors
HTTP status code | Error message |
---|---|
400 | Request must use GET method |
503 | Application server temporarily unavailable |
cURL example
Request
curl -u [email protected]:e8ddc55d93eb0e8281b255ea236dcc4f \ https://gtmetrix.com/api/0.1/browsers
Response
[ { "id":"1", "name":"Firefox (Desktop)", "platform":"desktop", "device":"", "browser":"firefox", "features": { "adblock":true, "cookies":true, "filtering":true, "http_auth":true, "throttle":true, "video":true, "dns":true, "user_agent":true, "resolution":true } }, { "id":"3", "name":"Chrome (Desktop)", "platform":"desktop", "device":"", "browser":"chrome", "features":{ "adblock":true, "cookies":true, "filtering":false, "http_auth":false, "throttle":true, "video":true, "dns":true, "user_agent":true, "resolution":true } } ]
Get browser details
GET /api/0.1/browsers/{browser_id}
Parameters
None
Response attributes
See /browsers response (except it's for a single record, not all records).Possible errors
HTTP status code | Error message |
---|---|
400 | Request must use GET method |
404 | Browser not found |
503 | Application server temporarily unavailable |
cURL example
Request
curl -u [email protected]:e8ddc55d93eb0e8281b255ea236dcc4f \ https://gtmetrix.com/api/0.1/browsers/1
Response
{ "id":"1", "name":"Firefox (Desktop)", "platform":"desktop", "device":"", "browser":"firefox", "features": { "adblock":true, "cookies":true, "filtering":true, "http_auth":true, "throttle":true, "video":true, "dns":true, "user_agent":true, "resolution":true } }
Get your account status
GET /api/0.1/status
Parameters
None
Response attributes
Attribute | Description | Type |
---|---|---|
api_credits | Amount of API credits remaining | integer |
api_refill | Unix timestamp for next API refill | integer |
Possible errors
HTTP status code | Error message |
---|---|
400 | Request must use GET method |
503 | Application server temporarily unavailable |
cURL example
Request
curl -u [email protected]:e8ddc55d93eb0e8281b255ea236dcc4f \ https://gtmetrix.com/api/0.1/status
Response
{ "api_credits": 20, "api_refill": 1731991469 }
Reference Values
List of Simulated Devices
Note that this parameter is only available with GTmetrix PRO plans. Learn more.
Device type | Device ID | Device full name | Screen resolution |
---|---|---|---|
phones | |||
iphone_xr | Apple iPhone XR | 414x896 @ 2 DPR | |
iphone_4s | Apple iPhone 4/4S | 320x480 @ 2 DPR | |
iphone_se | Apple iPhone 5/5C/5S/SE (1st Gen) | 320x568 @ 2 DPR | |
iphone_7_plus | Apple iPhone 6/6S/7/8 Plus | 414x736 @ 3 DPR | |
iphone_7 | Apple iPhone 6/6S/7/8/SE (2nd/3rd Gen) | 375x667 @ 2 DPR | |
iphone_xs_max | Apple iPhone 11 Pro/11 Pro Max/12 Pro Max | 414x896 @ 3 DPR | |
iphone_x | Apple iPhone 12/12 mini/12 Pro/13 mini | 375x812 @ 3 DPR | |
iphone_13 | Apple iPhone 13/13 Pro/13 Pro Max | 390x844 @ 3 DPR | |
nexus_4 | Google Nexus 4 | 384x640 @ 2 DPR | |
nexus_5 | Google Nexus 5 | 360x640 @ 3 DPR | |
pixel | Google Nexus 5X/Pixel/Pixel 2 | 412x732 @ 2.625 DPR | |
pixel_xl | Google Nexus 6/6P/Pixel XL/Pixel 2 XL | 412x732 @ 3.5 DPR | |
pixel_3 | Google Pixel 3 | 412x824 @ 2.625 DPR | |
pixel_3_xl | Google Pixel 3 XL/3a XL | 412x847 @ 3.5 DPR | |
pixel_4 | Google Pixel 3a/4/4 XL | 412x869 @ 2.625 DPR | |
pixel_4a | Google Pixel 4a/5/5a | 412x893 @ 2.625 DPR | |
pixel_6 | Google Pixel 6 | 360x800 @ 3 DPR | |
pixel_6_pro | Google Pixel 6 Pro | 360x780 @ 3 DPR | |
lumia_520 | Nokia Lumia 520 | 320x533 @ 1.5 DPR | |
oneplus_nord | OnePlus Nord/Nord 2/9/10T/10R | 412x915 @ 2.625 DPR | |
oneplus_pro | OnePlus 9 Pro/10 Pro | 412x920 @ 3 DPR | |
galaxy_note_3 | Samsung Galaxy Note 3 | 360x640 @ 3 DPR | |
galaxy_note_5 | Samsung Galaxy Note 4/5 | 412x732 @ 2.625 DPR | |
galaxy_note_8 | Samsung Galaxy Note 8/9 | 412x846 @ 2.625 DPR | |
galaxy_note_10 | Samsung Galaxy Note 10/10+ | 412x869 @ 2.625 DPR | |
galaxy_note_20 | Samsung Galaxy Note 20/20 Ultra | 412x915 @ 2.625 DPR | |
galaxy_s5 | Samsung Galaxy S4/S5 | 360x640 @ 3 DPR | |
galaxy_s7 | Samsung Galaxy S6/S7 | 360x640 @ 4 DPR | |
galaxy_s8 | Samsung Galaxy S8/S8+/S9/S9+ | 360x740 @ 3 DPR | |
galaxy_s10 | Samsung Galaxy S10/S10+ | 360x760 @ 3 DPR | |
galaxy_s20 | Samsung Galaxy S21/S21+/S21 Ultra | 360x800 @ 3 DPR | |
galaxy_s22 | Samsung Galaxy S22/S22+ | 360x780 @ 3 DPR | |
tablets | |||
ipad_air | Apple iPad Air 4/5 | 1180x820 @ 2 DPR | |
ipad | Apple iPad Mini 2/3/4 | 1024x768 @ 2 DPR | |
ipad_pro | Apple iPad Pro (2022) | 1112x834 @ 2 DPR | |
ipad_2 | Apple iPad 2 | 1024x768 @ 1 DPR | |
nexus_7 | Google Nexus 7 | 960x600 @ 2 DPR | |
nexus_10 | Google Nexus 10 | 1280x800 @ 2 DPR | |
galaxy_tab_a | Samsung Galaxy Tab A 10.1 | 960x600 @ 2 DPR | |
galaxy_tab_s3 | Samsung Galaxy Tab S3 | 1024x768 @ 2 DPR | |
galaxy_tab_s7 | Samsung Galaxy Tab S7/S7+ | 1280x800 @ 2 DPR | |
galaxy_tab_4 | Samsung Galaxy Tab 4 | 1280x800 @ 1 DPR |
Connection Throttling
These are the default values for connection throttling available in the Dashboard. You can also pass in a custom connection string with down/up/latency values in Kbps.
Connection Full Name | Connection String ID |
---|---|
Broadband Fast (20/5 Mbps, 25ms) | 20000/5000/25 |
Broadband (5/1 Mbps, 30ms) | 5000/1000/30 |
Broadband Slow (1.5 Mbps/384 Kbps, 50ms) | 1500/384/50 |
LTE (15/10 Mbps, 100ms) | 15000/10000/100 |
4G (9/5 Mbps, 125ms) | 9000/5000/125 |
4G Slow (5/1 Mbps, 150ms) | 5000/1000/150 |
3G (1.6 Mbps/768 Kbps, 200ms) | 1600/768/200 |
3G Slow (750/500 Kbps, 250ms) | 750/500/250 |
Changelog
May 3rd, 2021
- API Credit costs scaled down
- Added API endpoint rate limiting
June 4th, 2020
- Renamed
x-metrix-whitelist
/x-metrix-blacklist
tox-metrix-allow-url
/x-metrix-block-url
. Old parameters still work for backwards compatibility.
June 1st, 2020
- Fixed
dom_content_loaded_duration
to not always return null.
November 9th, 2018
- Updated simulate device reference values with new devices.
September 17th, 2018
- Added reference values for both simulate device and connection throttling parameters.
November 24th, 2017
- Added new timing to results:
first_contentful_paint_time
October 23rd, 2017
- Fixed documentation for
x-metrix-browser-rotate
(it was incorrectly documented asx-metrix-rotate
).
October 12th, 2017
- Added support for Developer Toolkit functionality including 7 new options:
x-metrix-dns
,x-metrix-simulate-device
,x-metrix-user-agent
,x-metrix-browser-width
,x-metrix-browser-height
,x-metrix-browser-dppx
andx-metrix-browser-rotate
. - Added documentation for Developer Toolkit options.
June 14th, 2017
- Added an
api_credits
variable to a request response.
February 8th, 2017
- Added new timings to results:
redirect_duration
,connect_duration
,backend_duration
,first_paint_time
,dom_interactive_time
,dom_content_loaded_time
,dom_content_loaded_duration
,onload_time
,onload_duration
,fully_loaded_time
,rum_speed_index
. - Added
x-metrix-stop-onload
option to stop test onload. results.html_load_time
has been modified to be TTFB instead of including the time to download the page as well.
January 3rd, 2017
- Added documentation for 503 http status code error.
November 15th, 2016
- Added documentation for resource usage data.
November 3rd, 2016
- Added
filmstrip
to resources for tests that include video.
September 3rd, 2014
- Added
report_pdf_full
to resources for the full GTmetrix report PDF.
May 20th, 2014
- Added rate limiting to report PDF generation.
March 28th, 2014
- Sync up test options to what's available on the front end (browser, throttle, URL filtering).
- Added
/browsers
and/browsers/{browser_id}
endpoints. - Added supported browsers to
/locations
output.
January 13th, 2014
- Removed the non-working
login
parameter from test.
March 5th, 2013
- Added 429 - Too Many Requests status code if you submit jobs too fast via the API.
January 2nd, 2013
- Fixed API status documentation - it's
api_refill
notapi_topup
.
March 19th, 2012
- Added
/status
endpoint to see remaining credits.
February 1st, 2012
- Fixed the
login-pass
test option (it was usinglogin-password
).
January 25th, 2012
- Fixed documentation for
results.page_load_time
, as the value is in milliseconds, not seconds and is an integer, not a float. results.html_load_time
has been changed from seconds/float to milliseconds/integer to matchpage_load_time
.