API key usage
Get API key usage
Returns a paginated list of recent requests made with the specified API key. Use limit (max 500), before, and after ISO-8601 timestamps to paginate.
Requirements
- Permission:
usage:read. - Project access: the path project must match the API key’s project.
GET
/
v1
/
projects
/
{projectId}
/
api-keys
/
{keyId}
/
usage
Get API key usage
curl --request GET \
--url https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"keyId": "<string>",
"method": "<string>",
"orgId": "<string>",
"route": "<string>",
"statusCode": 123,
"ts": "<string>",
"durationMs": 123,
"ip": "<string>"
}
],
"page": {
"hasMore": true,
"size": 123,
"totalPages": 123
}
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}Authorizations
Project-bound Apollo Signal API key. Keys begin with ap_signal_ and must carry the permission shown on the operation.
Path Parameters
Project identifier. For API-key authentication, it must match the project bound to the key.
API key identifier. Raw API key values are never accepted here.
Query Parameters
Maximum usage records to return. Defaults to 100; values are clamped to 1–500.
Return records before this ISO 8601 timestamp.
Return records after this ISO 8601 timestamp, or continue from the supplied membership cursor where documented.
Was this page helpful?
⌘I
Get API key usage
curl --request GET \
--url https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signal.apollodeploy.com/v1/projects/{projectId}/api-keys/{keyId}/usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "<string>",
"keyId": "<string>",
"method": "<string>",
"orgId": "<string>",
"route": "<string>",
"statusCode": 123,
"ts": "<string>",
"durationMs": 123,
"ip": "<string>"
}
],
"page": {
"hasMore": true,
"size": 123,
"totalPages": 123
}
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}