Find an API

Search public APIs with auth details & Postman guides

← All APIs

Amazon Simple Notification Service

amazonaws · Cloud

Cloud No Auth Free & Open cloud

Amazon Simple Notification Service Amazon Simple Notification Service (Amazon SNS) is a web service that enables you to build distributed web-enabled applications. Applications can use Amazon SNS to easily push real-time notification messages to interested subscribers over multiple delivery protocols. For more information about this product see the Amazon SNS product page . For detailed information about Amazon SNS features and thei

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET GET_AddPermission

Adds a statement to a topic's access control policy, granting access for the specified Amazon Web Services accounts to the specified actions. To remove the ability to change topic permissions, you must deny permissions to the AddPermission , RemovePermission

https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=AddPermission?Label=example&Action=AddPermission&Version=2010-03-31&TopicArn=example&ActionName=example&AWSAccountId=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=AddPermission?Label=example&Action=AddPermission&Version=2010-03-31&TopicArn=example&ActionName=example&AWSAccountId=example"
import requests
params = {
    "Label": "example",
    "Action": "AddPermission",
    "Version": "2010-03-31",
    "TopicArn": "example",
    "ActionName": "example",
    "AWSAccountId": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=AddPermission",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=AddPermission');
url.searchParams.set('Label', 'example');
url.searchParams.set('Action', 'AddPermission');
url.searchParams.set('Version', '2010-03-31');
url.searchParams.set('TopicArn', 'example');
url.searchParams.set('ActionName', 'example');
url.searchParams.set('AWSAccountId', '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/sns/2010-03-31/#Action=AddPermission")
	q := baseURL.Query()
	q.Set("Label", "example")
	q.Set("Action", "AddPermission")
	q.Set("Version", "2010-03-31")
	q.Set("TopicArn", "example")
	q.Set("ActionName", "example")
	q.Set("AWSAccountId", "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/sns/2010-03-31/#Action=AddPermission")
uri.query = URI.encode_www_form({
  "Label" => "example",
  "Action" => "AddPermission",
  "Version" => "2010-03-31",
  "TopicArn" => "example",
  "ActionName" => "example",
  "AWSAccountId" => "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/sns/2010-03-31/#Action=AddPermission?" . http_build_query([
    "Label" => "example",
    "Action" => "AddPermission",
    "Version" => "2010-03-31",
    "TopicArn" => "example",
    "ActionName" => "example",
    "AWSAccountId" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET GET_CheckIfPhoneNumberIsOptedOut

Accepts a phone number and indicates whether the phone holder has opted out of receiving SMS messages from your Amazon Web Services account. You cannot send SMS messages to a number that is opted out. To resume sending messages, you can opt in the number by using the OptInPhoneNumber

https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=CheckIfPhoneNumberIsOptedOut?Action=CheckIfPhoneNumberIsOptedOut&Version=2010-03-31&phoneNumber=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=CheckIfPhoneNumberIsOptedOut?Action=CheckIfPhoneNumberIsOptedOut&Version=2010-03-31&phoneNumber=example"
import requests
params = {
    "Action": "CheckIfPhoneNumberIsOptedOut",
    "Version": "2010-03-31",
    "phoneNumber": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=CheckIfPhoneNumberIsOptedOut",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=CheckIfPhoneNumberIsOptedOut');
url.searchParams.set('Action', 'CheckIfPhoneNumberIsOptedOut');
url.searchParams.set('Version', '2010-03-31');
url.searchParams.set('phoneNumber', '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/sns/2010-03-31/#Action=CheckIfPhoneNumberIsOptedOut")
	q := baseURL.Query()
	q.Set("Action", "CheckIfPhoneNumberIsOptedOut")
	q.Set("Version", "2010-03-31")
	q.Set("phoneNumber", "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/sns/2010-03-31/#Action=CheckIfPhoneNumberIsOptedOut")
uri.query = URI.encode_www_form({
  "Action" => "CheckIfPhoneNumberIsOptedOut",
  "Version" => "2010-03-31",
  "phoneNumber" => "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/sns/2010-03-31/#Action=CheckIfPhoneNumberIsOptedOut?" . http_build_query([
    "Action" => "CheckIfPhoneNumberIsOptedOut",
    "Version" => "2010-03-31",
    "phoneNumber" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET GET_ConfirmSubscription

Verifies an endpoint owner's intent to receive messages by validating the token sent to the endpoint by an earlier Subscribe action. If the token is valid, the action creates a new subscription and returns its Amazon Resource Name (ARN). This call requires an AWS signature only when the

https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=ConfirmSubscription?Token=YOUR_TOKEN&Action=ConfirmSubscription&Version=2010-03-31&TopicArn=example&AuthenticateOnUnsubscribe=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=ConfirmSubscription?Token=YOUR_TOKEN&Action=ConfirmSubscription&Version=2010-03-31&TopicArn=example&AuthenticateOnUnsubscribe=example"
import requests
params = {
    "Token": "YOUR_TOKEN",
    "Action": "ConfirmSubscription",
    "Version": "2010-03-31",
    "TopicArn": "example",
    "AuthenticateOnUnsubscribe": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=ConfirmSubscription",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/sns/2010-03-31/#Action=ConfirmSubscription');
url.searchParams.set('Token', 'YOUR_TOKEN');
url.searchParams.set('Action', 'ConfirmSubscription');
url.searchParams.set('Version', '2010-03-31');
url.searchParams.set('TopicArn', 'example');
url.searchParams.set('AuthenticateOnUnsubscribe', '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/sns/2010-03-31/#Action=ConfirmSubscription")
	q := baseURL.Query()
	q.Set("Token", "YOUR_TOKEN")
	q.Set("Action", "ConfirmSubscription")
	q.Set("Version", "2010-03-31")
	q.Set("TopicArn", "example")
	q.Set("AuthenticateOnUnsubscribe", "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/sns/2010-03-31/#Action=ConfirmSubscription")
uri.query = URI.encode_www_form({
  "Token" => "YOUR_TOKEN",
  "Action" => "ConfirmSubscription",
  "Version" => "2010-03-31",
  "TopicArn" => "example",
  "AuthenticateOnUnsubscribe" => "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/sns/2010-03-31/#Action=ConfirmSubscription?" . http_build_query([
    "Token" => "YOUR_TOKEN",
    "Action" => "ConfirmSubscription",
    "Version" => "2010-03-31",
    "TopicArn" => "example",
    "AuthenticateOnUnsubscribe" => "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

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Amazon Simple Notification Service?

Amazon Simple Notification Service 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 Simple Notification Service 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 ↗