Amazon CloudWatch Logs
amazonaws · Cloud
You can use Amazon CloudWatch Logs to monitor, store, and access your log files from EC2 instances, CloudTrail, and other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console. Alternatively, you can use CloudWatch Logs commands in the Amazon Web Services CLI, CloudWatch Logs API, or CloudWatch Logs SDK. You can use CloudWatch Logs to: Monitor logs from EC2 instances in real time : You can use CloudWatch Logs to
Authentication
Sample Requests
Lists all your destinations. The results are ASCII-sorted by destination name.
Hover any highlighted part to learn what it does
| X-Amz-Target | Logs_20140328.DescribeDestinations |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeDestinations?limit=10&nextToken=example" \ -H "X-Amz-Target: Logs_20140328.DescribeDestinations"
import requests
params = {
"limit": "10",
"nextToken": "example"
}
headers = {
"X-Amz-Target": "Logs_20140328.DescribeDestinations"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeDestinations",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeDestinations');
url.searchParams.set('limit', '10');
url.searchParams.set('nextToken', 'example');
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'Logs_20140328.DescribeDestinations'
},
});
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/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeDestinations")
q := baseURL.Query()
q.Set("limit", "10")
q.Set("nextToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "Logs_20140328.DescribeDestinations")
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/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeDestinations")
uri.query = URI.encode_www_form({
"limit" => "10",
"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"] = "Logs_20140328.DescribeDestinations"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeDestinations?" . http_build_query([
"limit" => "10",
"nextToken" => "example"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: Logs_20140328.DescribeDestinations"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name. CloudWatch Logs doesn’t support IAM policies that control access to the DescribeLogGroups action by using the aws:ResourceTag
Hover any highlighted part to learn what it does
| X-Amz-Target | Logs_20140328.DescribeLogGroups |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogGroups?limit=10&nextToken=example" \ -H "X-Amz-Target: Logs_20140328.DescribeLogGroups"
import requests
params = {
"limit": "10",
"nextToken": "example"
}
headers = {
"X-Amz-Target": "Logs_20140328.DescribeLogGroups"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogGroups",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogGroups');
url.searchParams.set('limit', '10');
url.searchParams.set('nextToken', 'example');
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'Logs_20140328.DescribeLogGroups'
},
});
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/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogGroups")
q := baseURL.Query()
q.Set("limit", "10")
q.Set("nextToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "Logs_20140328.DescribeLogGroups")
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/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogGroups")
uri.query = URI.encode_www_form({
"limit" => "10",
"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"] = "Logs_20140328.DescribeLogGroups"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogGroups?" . http_build_query([
"limit" => "10",
"nextToken" => "example"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: Logs_20140328.DescribeLogGroups"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. You can specify the log group to search by using either logGroupIdentifier or logGroupName . You m
Hover any highlighted part to learn what it does
| X-Amz-Target | Logs_20140328.DescribeLogStreams |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogStreams?limit=10&nextToken=example" \ -H "X-Amz-Target: Logs_20140328.DescribeLogStreams"
import requests
params = {
"limit": "10",
"nextToken": "example"
}
headers = {
"X-Amz-Target": "Logs_20140328.DescribeLogStreams"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogStreams",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogStreams');
url.searchParams.set('limit', '10');
url.searchParams.set('nextToken', 'example');
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'Logs_20140328.DescribeLogStreams'
},
});
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/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogStreams")
q := baseURL.Query()
q.Set("limit", "10")
q.Set("nextToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "Logs_20140328.DescribeLogStreams")
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/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogStreams")
uri.query = URI.encode_www_form({
"limit" => "10",
"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"] = "Logs_20140328.DescribeLogStreams"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/logs/2014-03-28/#X-Amz-Target=Logs_20140328.DescribeLogStreams?" . http_build_query([
"limit" => "10",
"nextToken" => "example"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: Logs_20140328.DescribeLogStreams"
]),
]];
$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 CloudWatch Logs?
Amazon CloudWatch Logs 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 CloudWatch Logs 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?