Amazon Elastic Block Store
amazonaws · Cloud
You can use the Amazon Elastic Block Store (Amazon EBS) direct APIs to create Amazon EBS snapshots, write data directly to your snapshots, read data on your snapshots, and identify the differences or changes between two snapshots. If you’re an independent software vendor (ISV) who offers backup services for Amazon EBS, the EBS direct APIs make it more efficient and cost-effective to track incremental changes on your Amazon EBS volumes through snapshots. This can be done without having to crea
Authentication
Sample Requests
Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the same volume/snapshot lineage.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{secondSnapshotId}/changedblocks?NextToken=example&pageToken=example&MaxResults=example&maxResults=1&firstSnapshotId=example&startingBlockIndex=1"import requests
params = {
"NextToken": "example",
"pageToken": "example",
"MaxResults": "example",
"maxResults": "1",
"firstSnapshotId": "example",
"startingBlockIndex": "1"
}
response = requests.get(
"https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{secondSnapshotId}/changedblocks",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{secondSnapshotId}/changedblocks');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('pageToken', 'example');
url.searchParams.set('MaxResults', 'example');
url.searchParams.set('maxResults', '1');
url.searchParams.set('firstSnapshotId', 'example');
url.searchParams.set('startingBlockIndex', '1');
const response = await fetch(url);
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/ebs/2019-11-02/snapshots/{secondSnapshotId}/changedblocks")
q := baseURL.Query()
q.Set("NextToken", "example")
q.Set("pageToken", "example")
q.Set("MaxResults", "example")
q.Set("maxResults", "1")
q.Set("firstSnapshotId", "example")
q.Set("startingBlockIndex", "1")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
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/ebs/2019-11-02/snapshots/{secondSnapshotId}/changedblocks")
uri.query = URI.encode_www_form({
"NextToken" => "example",
"pageToken" => "example",
"MaxResults" => "example",
"maxResults" => "1",
"firstSnapshotId" => "example",
"startingBlockIndex" => "1"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{secondSnapshotId}/changedblocks?" . http_build_query([
"NextToken" => "example",
"pageToken" => "example",
"MaxResults" => "example",
"maxResults" => "1",
"firstSnapshotId" => "example",
"startingBlockIndex" => "1"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Returns information about the blocks in an Amazon Elastic Block Store snapshot.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks?NextToken=example&pageToken=example&MaxResults=example&maxResults=1&startingBlockIndex=1"import requests
params = {
"NextToken": "example",
"pageToken": "example",
"MaxResults": "example",
"maxResults": "1",
"startingBlockIndex": "1"
}
response = requests.get(
"https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('pageToken', 'example');
url.searchParams.set('MaxResults', 'example');
url.searchParams.set('maxResults', '1');
url.searchParams.set('startingBlockIndex', '1');
const response = await fetch(url);
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/ebs/2019-11-02/snapshots/{snapshotId}/blocks")
q := baseURL.Query()
q.Set("NextToken", "example")
q.Set("pageToken", "example")
q.Set("MaxResults", "example")
q.Set("maxResults", "1")
q.Set("startingBlockIndex", "1")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
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/ebs/2019-11-02/snapshots/{snapshotId}/blocks")
uri.query = URI.encode_www_form({
"NextToken" => "example",
"pageToken" => "example",
"MaxResults" => "example",
"maxResults" => "1",
"startingBlockIndex" => "1"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks?" . http_build_query([
"NextToken" => "example",
"pageToken" => "example",
"MaxResults" => "example",
"maxResults" => "1",
"startingBlockIndex" => "1"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Returns the data in a block in an Amazon Elastic Block Store snapshot.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks/{blockIndex}#blockToken?blockToken=example"import requests
params = {
"blockToken": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks/{blockIndex}#blockToken",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks/{blockIndex}#blockToken');
url.searchParams.set('blockToken', 'example');
const response = await fetch(url);
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/ebs/2019-11-02/snapshots/{snapshotId}/blocks/{blockIndex}#blockToken")
q := baseURL.Query()
q.Set("blockToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
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/ebs/2019-11-02/snapshots/{snapshotId}/blocks/{blockIndex}#blockToken")
uri.query = URI.encode_www_form({
"blockToken" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/ebs/2019-11-02/snapshots/{snapshotId}/blocks/{blockIndex}#blockToken?" . http_build_query([
"blockToken" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$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 Amazon Elastic Block Store?
Amazon Elastic Block Store 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. Amazon Elastic Block Store 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?