Find an API

Search public APIs with auth details & Postman guides

← All APIs

AWS Device Farm

amazonaws · Cloud

Cloud No Auth Free & Open cloud Sandbox

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

No authentication requiredFree to use with no key needed.

Sample Requests

POST GetOfferingStatus

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

https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.GetOfferingStatus?nextToken=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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));
POST ListArtifacts

Gets information about artifacts.

https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListArtifacts?nextToken=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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));
POST ListDevicePools

Gets information about device pools.

https://api.apis.guru/v2/specs/amazonaws.com/devicefarm/2015-06-23/#X-Amz-Target=DeviceFarm_20150623.ListDevicePools?nextToken=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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

Get Postman ↗
  1. 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?

Open documentation ↗