RequestRocketRequestRocketDocs
ObserveTelemetry

Telemetry API

Read call series for an organisation, a proxy, or an MCP server.

Pass the range you want as a query. The shapes differ by parent. Credential series are available to the agent. The published client routes below are the organisation, the proxy, and the MCP server.

Endpoints

MethodPathWhat it does
GET/api/clients/:clientId/telemetryOrganisation series
GET/api/clients/:clientId/telemetriesSeries across proxies
GET/api/clients/:clientId/proxies/:proxyId/telemetryOne proxy
GET/api/clients/:clientId/mcps/:mcpId/telemetryOne MCP server

Read organisation telemetry

GET /api/clients/:clientId/telemetry returns the organisation series.

Request

curl -X GET "https://api.requestrocket.com/api/clients/:clientId/telemetry" \
  -H "Authorization: u-your-token"
import axios from "axios";

const response = await axios.request({
  method: "GET",
  url: "https://api.requestrocket.com/api/clients/:clientId/telemetry",
  headers: {
    "Authorization": "u-your-token",
  }
});

console.log(response.status, response.data);
import requests

response = requests.request(
    "GET",
    "https://api.requestrocket.com/api/clients/:clientId/telemetry",
    headers={
        "Authorization": "u-your-token",
    }
)
print(response.status_code, response.json())
package main

import (
    "fmt"
    "io"
    "net/http"
    "strings"
)

func main() {
    var payload io.Reader
    req, _ := http.NewRequest("GET", "https://api.requestrocket.com/api/clients/:clientId/telemetry", payload)
    req.Header.Set("Authorization", "u-your-token")
    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(resp.StatusCode, string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.requestrocket.com/api/clients/:clientId/telemetry"))
            .method("GET", HttpRequest.BodyPublishers.noBody())
            .header("Authorization", "u-your-token")
            .build();
        HttpResponse<String> response = HttpClient.newHttpClient()
            .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.statusCode());
        System.out.println(response.body());
    }
}

Responses

{
  "message": "Success",
  "interval": "hour",
  "telemetry": [
    {
      "pKey": "b3a1c7d2-5e44-4f0a-9c1e-7d2f8a6b1c90",
      "sKey": "2026-11-02-07",
      "clientId": "b3a1c7d2-5e44-4f0a-9c1e-7d2f8a6b1c90",
      "countMap": {
        "target": 120
      },
      "successCountMap": {
        "target": 118
      },
      "errorCountMap": {
        "target": 2
      }
    }
  ]
}
{
  "message": "Invalid interval. Must be one of: minute, hour, day, month"
}
{
  "message": "Unauthorized"
}
{
  "Message": "User is not authorized to access this resource with an explicit deny in an identity-based policy"
}
{
  "message": "method / endpoint not supported"
}

GET /api/clients/:clientId/proxies/:proxyId/telemetry and GET /api/clients/:clientId/mcps/:mcpId/telemetry use the same query and return the same telemetry array. On those routes pKey is the proxy id or the MCP server id.

Returns

The response contains the series in telemetry, the interval that was applied, and message set to Success. Buckets are ordered newest first. With neither date set, the response is the latest limit buckets. With only endDate set, the range runs back limit intervals from that end.

Query parameters

ParameterTypeRequiredDescription
intervalstringminute, hour, day, or month. Default hour.
startDatestringStart of the range, inclusive of the bucket that contains it.
endDatestringEnd of the range. Omitted means the current time.
limitnumberMaximum buckets. Default 60 for minute, 24 for hour, 30 for day, and 12 for month.

Response attributes

AttributeTypeDescription
messagestringSuccess on a completed call.
intervalstringThe interval that was applied.
telemetryarrayOne object per bucket.
pKeystringOrganisation id, proxy id, or MCP server id.
sKeystringUTC bucket key. YYYY-MM-DD-HH-MM for minute, YYYY-MM-DD-HH for hour, YYYY-MM-DD for day, YYYY-MM for month.
clientIdstringOrganisation id.
proxyIdstringSet on a proxy bucket.
mcpIdstringSet on an MCP server bucket.
countMapobjectCall counts keyed by proxy or target.
successCountMapobjectSuccessful calls, same keys as countMap.
errorCountMapobjectFailed calls, same keys as countMap.
totalResponseTimeMapobjectSum of response time, same keys as countMap.
averageResponseTimeMapobjectAverage response time per key, derived on read.
successRateMapobjectSuccess count divided by count, derived on read.
errorRateMapobjectError count divided by count, derived on read.
codeCountMapobjectCounts keyed by statusCode:source, such as 200:proxy or 200:target.
codeTotalRTMapobjectTotal response time for each codeCountMap key.
countryCountMapobjectCounts keyed by country:source, such as US:proxy.
countryTotalRTMapobjectTotal response time for each countryCountMap key.
countryAverageRTMapobjectAverage response time for each country key, derived on read.
metersCountMapobjectTrigger count per meter id.
metersTotalMapobjectSum of contribution values per meter id.
metersLimitsMapobjectLatest limit per meterId:window key.
metersAverageMapobjectAverage contribution per meter, derived on read.
toolCountMapobjectMCP server buckets. Call count per tool name.
toolTotalRTMapobjectMCP server buckets. Total response time per tool name.
toolAverageRTMapobjectMCP server buckets. Average response time per tool, derived on read.
ewmaResponseTimenumberExponentially weighted moving average of response time, when the bucket has one.

Series across proxies

GET /api/clients/:clientId/telemetries returns one entry per proxy. It accepts the same query parameters as the organisation series.

Returns

The response contains interval, message set to Success, and telemetries. Each entry has proxyId, proxyName, proxyRegion, and a telemetry array in the shape above. A proxy whose series cannot be loaded contributes an empty telemetry array.

Next

On this page