AWS Device Farm
amazonaws · Cloud
Welcome to the AWS Device Farm API documentation, which contains APIs for: Testing on desktop browsers Device Farm makes it possible for you to test your web applications on desktop browsers using Selenium. The APIs for desktop browser testing contain TestGrid in their names. For more information, see Testing Web Applications on Selenium with Device Farm . Testing on re
Authentication
Sample Requests
Gets the current status and future status of all offerings purchased by an AWS account. The response indicates how many offerings are currently available and the offerings that will be available in the next period. The API returns a NotEligible error if the user is not permitted to invo
Hover any highlighted part to learn what it does
| X-Amz-Target | DeviceFarm_20150623.GetOfferingStatus |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.GetOfferingStatus?nextToken=example" \ -H "X-Amz-Target: DeviceFarm_20150623.GetOfferingStatus"
import requests
params = {
"nextToken": "example"
}
headers = {
"X-Amz-Target": "DeviceFarm_20150623.GetOfferingStatus"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.GetOfferingStatus",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.GetOfferingStatus');
url.searchParams.set('nextToken', 'example');
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'DeviceFarm_20150623.GetOfferingStatus'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.GetOfferingStatus")
q := baseURL.Query()
q.Set("nextToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "DeviceFarm_20150623.GetOfferingStatus")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.GetOfferingStatus")
uri.query = URI.encode_www_form({
"nextToken" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "DeviceFarm_20150623.GetOfferingStatus"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.GetOfferingStatus?" . http_build_query([
"nextToken" => "example"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: DeviceFarm_20150623.GetOfferingStatus"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Gets information about artifacts.
Hover any highlighted part to learn what it does
| X-Amz-Target | DeviceFarm_20150623.ListArtifacts |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListArtifacts?nextToken=example" \ -H "X-Amz-Target: DeviceFarm_20150623.ListArtifacts"
import requests
params = {
"nextToken": "example"
}
headers = {
"X-Amz-Target": "DeviceFarm_20150623.ListArtifacts"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListArtifacts",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListArtifacts');
url.searchParams.set('nextToken', 'example');
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'DeviceFarm_20150623.ListArtifacts'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListArtifacts")
q := baseURL.Query()
q.Set("nextToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "DeviceFarm_20150623.ListArtifacts")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListArtifacts")
uri.query = URI.encode_www_form({
"nextToken" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "DeviceFarm_20150623.ListArtifacts"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListArtifacts?" . http_build_query([
"nextToken" => "example"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: DeviceFarm_20150623.ListArtifacts"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Gets information about device pools.
Hover any highlighted part to learn what it does
| X-Amz-Target | DeviceFarm_20150623.ListDevicePools |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListDevicePools?nextToken=example" \ -H "X-Amz-Target: DeviceFarm_20150623.ListDevicePools"
import requests
params = {
"nextToken": "example"
}
headers = {
"X-Amz-Target": "DeviceFarm_20150623.ListDevicePools"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListDevicePools",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListDevicePools');
url.searchParams.set('nextToken', 'example');
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'DeviceFarm_20150623.ListDevicePools'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListDevicePools")
q := baseURL.Query()
q.Set("nextToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "DeviceFarm_20150623.ListDevicePools")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListDevicePools")
uri.query = URI.encode_www_form({
"nextToken" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "DeviceFarm_20150623.ListDevicePools"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListDevicePools?" . http_build_query([
"nextToken" => "example"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: DeviceFarm_20150623.ListDevicePools"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with AWS Device Farm?
AWS Device Farm is a Cloud API. Developers commonly use cloud APIs for:
- provisioning and managing cloud infrastructure
- automating deployments and container orchestration
- monitoring uptime and performance metrics
- managing storage buckets and databases
- setting up auto-scaling and load balancing
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. AWS Device Farm is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?