Find an API

Search public APIs with auth details & Postman guides

← All APIs

Amazon Elastic Container Registry Public

amazonaws · Cloud

Cloud No Auth Free & Open cloud Sandbox

Amazon Elastic Container Registry Public Amazon Elastic Container Registry Public (Amazon ECR Public) is a managed container image registry service. Amazon ECR provides both public and private registries to host your container images. You can use the Docker CLI or your preferred client to push, pull, and manage images. Amazon ECR provides a secure, scalable, and reliable registry for your Docker or Open Container Initiative (OCI) images. Amazon ECR supports public reposit

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

POST DescribeImageTags

Returns the image tag details for a repository in a public registry.

https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImageTags?nextToken=example&maxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target SpencerFrontendService.DescribeImageTags
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImageTags?nextToken=example&maxResults=example" \
  -H "X-Amz-Target: SpencerFrontendService.DescribeImageTags"
import requests
params = {
    "nextToken": "example",
    "maxResults": "example"
}
headers = {
    "X-Amz-Target": "SpencerFrontendService.DescribeImageTags"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImageTags",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImageTags');
url.searchParams.set('nextToken', 'example');
url.searchParams.set('maxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'SpencerFrontendService.DescribeImageTags'
  },
}); 
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/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImageTags")
	q := baseURL.Query()
	q.Set("nextToken", "example")
	q.Set("maxResults", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("POST", targetURL, nil)
	req.Header.Set("X-Amz-Target", "SpencerFrontendService.DescribeImageTags")

	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/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImageTags")
uri.query = URI.encode_www_form({
  "nextToken" => "example",
  "maxResults" => "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"] = "SpencerFrontendService.DescribeImageTags"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImageTags?" . http_build_query([
    "nextToken" => "example",
    "maxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: SpencerFrontendService.DescribeImageTags"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST DescribeImages

Returns metadata that's related to the images in a repository in a public registry. Beginning with Docker version 1.9, the Docker client compresses image layers before pushing them to a V2 Docker registry. The output of the docker images command shows the uncompressed i

https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImages?nextToken=example&maxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target SpencerFrontendService.DescribeImages
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImages?nextToken=example&maxResults=example" \
  -H "X-Amz-Target: SpencerFrontendService.DescribeImages"
import requests
params = {
    "nextToken": "example",
    "maxResults": "example"
}
headers = {
    "X-Amz-Target": "SpencerFrontendService.DescribeImages"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImages",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImages');
url.searchParams.set('nextToken', 'example');
url.searchParams.set('maxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'SpencerFrontendService.DescribeImages'
  },
}); 
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/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImages")
	q := baseURL.Query()
	q.Set("nextToken", "example")
	q.Set("maxResults", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("POST", targetURL, nil)
	req.Header.Set("X-Amz-Target", "SpencerFrontendService.DescribeImages")

	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/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImages")
uri.query = URI.encode_www_form({
  "nextToken" => "example",
  "maxResults" => "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"] = "SpencerFrontendService.DescribeImages"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeImages?" . http_build_query([
    "nextToken" => "example",
    "maxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: SpencerFrontendService.DescribeImages"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST DescribeRegistries

Returns details for a public registry.

https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeRegistries?nextToken=example&maxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target SpencerFrontendService.DescribeRegistries
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeRegistries?nextToken=example&maxResults=example" \
  -H "X-Amz-Target: SpencerFrontendService.DescribeRegistries"
import requests
params = {
    "nextToken": "example",
    "maxResults": "example"
}
headers = {
    "X-Amz-Target": "SpencerFrontendService.DescribeRegistries"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeRegistries",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeRegistries');
url.searchParams.set('nextToken', 'example');
url.searchParams.set('maxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'SpencerFrontendService.DescribeRegistries'
  },
}); 
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/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeRegistries")
	q := baseURL.Query()
	q.Set("nextToken", "example")
	q.Set("maxResults", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("POST", targetURL, nil)
	req.Header.Set("X-Amz-Target", "SpencerFrontendService.DescribeRegistries")

	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/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeRegistries")
uri.query = URI.encode_www_form({
  "nextToken" => "example",
  "maxResults" => "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"] = "SpencerFrontendService.DescribeRegistries"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/ecr-public/2020-10-30/#X-Amz-Target=SpencerFrontendService.DescribeRegistries?" . http_build_query([
    "nextToken" => "example",
    "maxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: SpencerFrontendService.DescribeRegistries"
    ]),
]];
$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 Amazon Elastic Container Registry Public?

Amazon Elastic Container Registry Public 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 Container Registry Public 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 ↗