AWSMarketplace Metering
amazonaws · Cloud
AWS Marketplace Metering Service This reference provides descriptions of the low-level AWS Marketplace Metering Service API. AWS Marketplace sellers can use this API to submit usage data for custom usage dimensions. For information on the permissions you need to use this API, see AWS Marketplace metering and entitlement API permissions in t
Authentication
Sample Requests
BatchMeterUsage is called from a SaaS application listed on AWS Marketplace to post metering records for a set of customers. For identical requests, the API is idempotent; requests can be retried with the same records or a subset of the input records. Every request to
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSMPMeteringService.BatchMeterUsage |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.BatchMeterUsage" \ -H "X-Amz-Target: AWSMPMeteringService.BatchMeterUsage"
import requests
headers = {
"X-Amz-Target": "AWSMPMeteringService.BatchMeterUsage"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.BatchMeterUsage",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.BatchMeterUsage';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSMPMeteringService.BatchMeterUsage'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.BatchMeterUsage"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSMPMeteringService.BatchMeterUsage")
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/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.BatchMeterUsage")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSMPMeteringService.BatchMeterUsage"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.BatchMeterUsage";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSMPMeteringService.BatchMeterUsage"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));API to emit metering records. For identical requests, the API is idempotent. It simply returns the metering record ID. MeterUsage is authenticated on the buyer's AWS account using credentials from the EC2 instance, ECS task, or EKS pod. MeterUsage can opt
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSMPMeteringService.MeterUsage |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.MeterUsage" \ -H "X-Amz-Target: AWSMPMeteringService.MeterUsage"
import requests
headers = {
"X-Amz-Target": "AWSMPMeteringService.MeterUsage"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.MeterUsage",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.MeterUsage';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSMPMeteringService.MeterUsage'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.MeterUsage"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSMPMeteringService.MeterUsage")
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/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.MeterUsage")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSMPMeteringService.MeterUsage"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.MeterUsage";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSMPMeteringService.MeterUsage"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Paid container software products sold through AWS Marketplace must integrate with the AWS Marketplace Metering Service and call the RegisterUsage operation for software entitlement and metering. Free and BYOL products for Amazon ECS or Amazon EKS aren't required to call Registe
Hover any highlighted part to learn what it does
| X-Amz-Target | AWSMPMeteringService.RegisterUsage |
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.RegisterUsage" \ -H "X-Amz-Target: AWSMPMeteringService.RegisterUsage"
import requests
headers = {
"X-Amz-Target": "AWSMPMeteringService.RegisterUsage"
}
response = requests.post(
"https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.RegisterUsage",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.RegisterUsage';
const response = await fetch(url, {
method: 'POST',
headers: {
'X-Amz-Target': 'AWSMPMeteringService.RegisterUsage'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.RegisterUsage"
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("X-Amz-Target", "AWSMPMeteringService.RegisterUsage")
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/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.RegisterUsage")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "AWSMPMeteringService.RegisterUsage"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/meteringmarketplace/2016-01-14/#X-Amz-Target=AWSMPMeteringService.RegisterUsage";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"X-Amz-Target: AWSMPMeteringService.RegisterUsage"
]),
]];
$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 AWSMarketplace Metering?
AWSMarketplace Metering 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. AWSMarketplace Metering 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?