API Key Requests
curl --request GET \
--url https://api.vertracloud.app/v1/users/me/api-key/requestsimport requests
url = "https://api.vertracloud.app/v1/users/me/api-key/requests"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.vertracloud.app/v1/users/me/api-key/requests', 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.vertracloud.app/v1/users/me/api-key/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.vertracloud.app/v1/users/me/api-key/requests"
req, _ := http.NewRequest("GET", url, nil)
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.vertracloud.app/v1/users/me/api-key/requests")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vertracloud.app/v1/users/me/api-key/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"response": {
"data": [
{
"id": "<string>",
"api_key_id": {},
"api_key_prefix": {},
"method": "<string>",
"route": "<string>",
"path": {},
"ip": {},
"user_agent": {},
"status": 123,
"duration_ms": 123,
"bytes_in": {},
"bytes_out": {},
"error_code": {},
"request_body": {},
"response_body": {},
"occurred_at": "<string>"
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123,
"has_next_page": true,
"has_previous_page": true
}
}Users
API Key Requests
Lists the requests made to the API with the authenticated user’s API key in the last 30 days. Dashboard session only — an API key gets 403 API_KEY_SCOPE_DENIED.
GET
/
v1
/
users
/
me
/
api-key
/
requests
API Key Requests
curl --request GET \
--url https://api.vertracloud.app/v1/users/me/api-key/requestsimport requests
url = "https://api.vertracloud.app/v1/users/me/api-key/requests"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.vertracloud.app/v1/users/me/api-key/requests', 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.vertracloud.app/v1/users/me/api-key/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.vertracloud.app/v1/users/me/api-key/requests"
req, _ := http.NewRequest("GET", url, nil)
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.vertracloud.app/v1/users/me/api-key/requests")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vertracloud.app/v1/users/me/api-key/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"response": {
"data": [
{
"id": "<string>",
"api_key_id": {},
"api_key_prefix": {},
"method": "<string>",
"route": "<string>",
"path": {},
"ip": {},
"user_agent": {},
"status": 123,
"duration_ms": 123,
"bytes_in": {},
"bytes_out": {},
"error_code": {},
"request_body": {},
"response_body": {},
"occurred_at": "<string>"
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123,
"has_next_page": true,
"has_previous_page": true
}
}This endpoint is readable only from a dashboard session. Calling it with an API key answers
403 API_KEY_SCOPE_DENIED, so a leaked key cannot read its own history.Query
string
Filter to requests made with one key (
APIApiKey.id).string
Start of the window (ISO 8601). Defaults to 30 days before
to.string
End of the window (ISO 8601). Defaults to now. A window wider than 30 days answers
400 RANGE_EXCEEDS_RETENTION.integer
default:"1"
Page number.
integer
default:"50"
Items per page, at most 200.
boolean
default:"false"
Only requests that answered
4xx/5xx.Response
PaginationMeta<APIUserApiKeyRequestEvent>
Paginated list, newest first.
Show Toggle object
Show Toggle object
APIUserApiKeyRequestEvent[]
Show Toggle object
Show Toggle object
string
Event ID.
string | null
ID of the key used (
APIApiKey.id); null once the key has been deleted.string | null
Public prefix of the key used;
null once the key has been regenerated.string
HTTP method.
string
Registered route template (
/v1/apps/:id).string | null
Concrete path, without query string.
string | null
Client IP.
string | null
User-Agent header, truncated to 512 characters.integer
HTTP status answered.
integer
Time to answer, in milliseconds.
integer | null
Request
Content-Length; null when absent.integer | null
Response
Content-Length; null for streams.string | null
The
code of the error envelope, when the request failed.string | null
Request body as sent, only on routes that carry no secrets by construction (lifecycle, config, snapshots, network, public resource reads); JSON up to 4 KB, with secrets redacted.
null elsewhere — environment variables, files, uploads, workspace data and credentials are never stored.string | null
Response body, same rules as
request_body.string
When the request happened (ISO 8601).
integer
Total items in the window.
integer
Current page.
integer
Items per page.
integer
Total pages.
boolean
boolean
Errors
| Status | Code | When |
|---|---|---|
| 400 | INVALID_QUERY | A query parameter has the wrong shape. |
| 400 | RANGE_EXCEEDS_RETENTION | to - from is wider than 30 days. |
| 403 | API_KEY_SCOPE_DENIED | The session is an API key. |
Query strings and headers other than
Content-Length and User-Agent are never recorded. Bodies are recorded only on an explicit allowlist of routes that carry no secrets, capped at 4 KB and passed through secret redaction; on every other route both fields are null.