Preflight API

Set up API Credentials

Please watch this video for more details on authentication, token creation, and running a test using Preflight APIs.

Go to the Account Settings > API page to create or delete API keys. When viewing the API page you will see a form field for name. There will also be a link to the Preflight API documentation page which provides more information on API authentication among other API related actions.

To create your new API credentials just enter an informative name and then click the Create New API Key button. This will generate a Client ID and Client Secret that can be used to set up a request for example on Postman. You will have the ability to delete this API key if needed via the Delete API Key button located next to the key in question.

Examples

You can find our API documentation at api.preflight.com. However we wanted to provide a few simple examples to help you get started.

If you don't specify any options, it will run the test with the default settings. See at the bottom an example which shows how to specify the environment, browsers and screen sizes.

Get Token

CURL:

curl -X POST \
  https://auth.preflight.com/connect/token \
  -H 'content-type: application/x-www-form-urlencoded' \
  -d 'client_id={YOUR_CLIENT_ID}&client_secret={YOUR_CLIENT_SECRET}&grant_type=client_credentials&scope=tests_run'

Javascript:

fetch('https://auth.preflight.com/connect/token',
{
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
    },
    body: 'client_id={YOUR_CLIENT_ID}&client_secret={YOUR_CLIENT_SECRET}&grant_type=client_credentials&scope=tests_run'
});

Run a single test via the API

You can find your Test ID by going to your desired test's detail page and from the url:

For example:
https://app.preflight.com/tests/shO7PnuUAoV4/result
shO7PnuUAoV4 would be your test ID

CURL:

curl -X POST \
  https://api.preflight.com/v1/Tests/{TestId}/Run \
  -H 'content-type: application/json' \
  -H 'Authorization: bearer {TOKEN}' \
  --data '{}'

Javascript:

fetch('https://api.preflight.com/v1/Tests/{TestId}/Run',
{
    method: 'POST',
    headers: {
        'Authorization': 'bearer ' + {TOKEN},
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({})
});

Run a Group of Tests

You can find your Group ID by going to your group page. The last part of the url of that page is your Group ID:

For example:
https://app.preflight.com/tests/groups/Sd98d13KAJSa
Sd98d13KAJSa would be your ID

CURL:

curl -X POST \
  https://api.preflight.com/v1/Tests/Run \
  -H 'content-type: application/json' \
  -H 'Authorization: bearer {TOKEN}' \
  --data '{groupId:"Sd98d13KAJSa"}'

Javascript:

fetch('https://api.preflight.com/v1/Tests/Run',
{
    method: 'POST',
    headers: {
        'Authorization': 'bearer ' + {TOKEN},
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({groupId:"Sd98d13KAJSa"})
});

Run All Tests

CURL:

curl -X POST \
  https://api.preflight.com/v1/Tests/Run \
  -H 'content-type: application/json' \
  -H 'Authorization: bearer {TOKEN}' \
  --data '{}'

Javascript:

fetch('https://api.preflight.com/v1/Tests/Run',
{
    method: 'POST',
    headers: {
        'Authorization': 'bearer ' + {TOKEN},
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({})
});

Optional Extras

You can also specify running all browsers, various screen sizes as well:

CURL:

curl -X POST \
  https://api.preflight.com/v1/Tests/Run \
  -H 'content-type: application/json' \
  -H 'Authorization: bearer {TOKEN}' \
  --data '{platforms:[{ 'platform': 'windows', 'browser': 'chrome' }], sizes: [{width: 1440, height: 900}]}'

Javascript:

fetch('https://api.preflight.com/v1/Tests/Run',
{
    method: 'POST',
    headers: {
        'Authorization': 'bearer ' + {TOKEN},
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({platforms:[{ 'platform': 'windows', 'browser': 'chrome' }], sizes: [{width: 1440, height: 900}]})
});
Updated at Fri, Nov 4, 2022