curl --request GET \
--url https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}', 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://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}",
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://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}"
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://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}")
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{
"event": {
"applicationOperation": "<string>",
"attemptOrdinal": "<string>",
"cacheReadTokens": "<string>",
"cacheWriteTokens": "<string>",
"callRole": "<string>",
"capability": "TB_TRAFFIC_CAPABILITY_UNSPECIFIED",
"configGeneration": "<string>",
"costLookup": "TB_COST_LOOKUP_UNSPECIFIED",
"costNanoUsd": "<string>",
"counterLatencyMs": "<string>",
"counterRequestBytes": "<string>",
"counterResponseBytes": "<string>",
"destHost": "<string>",
"destPort": 123,
"egressEnforcementMode": "<string>",
"egressPolicyVerdict": "<string>",
"eventId": "<string>",
"eventTime": "2023-11-07T05:31:56Z",
"federatedSession": {
"clientId": "<string>",
"grantJtiHash": "<string>",
"issuerName": "<string>",
"proofKeyThumbprint": "<string>",
"resource": "<string>",
"scopes": [
"<string>"
],
"sessionId": "<string>",
"tenantId": "<string>"
},
"flowId": "<string>",
"ingressEnforcementMode": "<string>",
"ingressScope": "<string>",
"inputTokens": "<string>",
"logicalModel": "<string>",
"modelName": "<string>",
"modelRoute": "<string>",
"modelTarget": "<string>",
"observationStatus": "<string>",
"outcome": "TB_TRAFFIC_OUTCOME_UNSPECIFIED",
"outputTokens": "<string>",
"parsedVerdictReasons": [
{
"blockingKinds": [
"<string>"
],
"classes": [
"<string>"
],
"clean": true,
"context": "<string>",
"exemptedKinds": [
"<string>"
],
"response": true,
"stage": "<string>"
}
],
"principalUserId": "<string>",
"requestAuthority": "<string>",
"routingRunId": "<string>",
"sourceConfidence": "<string>",
"sourcePrincipal": "<string>",
"sourcePrincipalKind": "<string>",
"verdictFromFallback": true,
"verdictReasons": [
"<string>"
],
"verdictResolvedRaw": "<string>"
}
}Get Egress Traffic Event
Returns one egress traffic event for this Edge by event_id, read from a narrow window around its event_time.
curl --request GET \
--url https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}', 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://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}",
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://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}"
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://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenantDomain}.conductor.one/api/v1/apps/{app_id}/edges/{id}/egress/traffic/{event_id}")
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{
"event": {
"applicationOperation": "<string>",
"attemptOrdinal": "<string>",
"cacheReadTokens": "<string>",
"cacheWriteTokens": "<string>",
"callRole": "<string>",
"capability": "TB_TRAFFIC_CAPABILITY_UNSPECIFIED",
"configGeneration": "<string>",
"costLookup": "TB_COST_LOOKUP_UNSPECIFIED",
"costNanoUsd": "<string>",
"counterLatencyMs": "<string>",
"counterRequestBytes": "<string>",
"counterResponseBytes": "<string>",
"destHost": "<string>",
"destPort": 123,
"egressEnforcementMode": "<string>",
"egressPolicyVerdict": "<string>",
"eventId": "<string>",
"eventTime": "2023-11-07T05:31:56Z",
"federatedSession": {
"clientId": "<string>",
"grantJtiHash": "<string>",
"issuerName": "<string>",
"proofKeyThumbprint": "<string>",
"resource": "<string>",
"scopes": [
"<string>"
],
"sessionId": "<string>",
"tenantId": "<string>"
},
"flowId": "<string>",
"ingressEnforcementMode": "<string>",
"ingressScope": "<string>",
"inputTokens": "<string>",
"logicalModel": "<string>",
"modelName": "<string>",
"modelRoute": "<string>",
"modelTarget": "<string>",
"observationStatus": "<string>",
"outcome": "TB_TRAFFIC_OUTCOME_UNSPECIFIED",
"outputTokens": "<string>",
"parsedVerdictReasons": [
{
"blockingKinds": [
"<string>"
],
"classes": [
"<string>"
],
"clean": true,
"context": "<string>",
"exemptedKinds": [
"<string>"
],
"response": true,
"stage": "<string>"
}
],
"principalUserId": "<string>",
"requestAuthority": "<string>",
"routingRunId": "<string>",
"sourceConfidence": "<string>",
"sourcePrincipal": "<string>",
"sourcePrincipalKind": "<string>",
"verdictFromFallback": true,
"verdictReasons": [
"<string>"
],
"verdictResolvedRaw": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
This API uses OAuth2 with the Client Credential flow. Client Credentials must be sent in the BODY, not the headers. For an example of how to implement this, refer to the c1TokenSource.Token() function.
Path Parameters
The appId field.
The id field.
The eventId field.
Query Parameters
The flow's event_time in Unix seconds. The lookup reads five minutes either side of it.
Fills TBTrafficEvent.parsed_verdict_reasons.
Response
Successful response
The EdgeServiceGetEgressTrafficEventResponse message.
TBTrafficEvent is a curated projection of one ClickHouse audit row -- only
the columns the Traffic UI needs. dest_host/dest_port/request_authority
(egress-shaped) and model_route/model_target/logical_model (LLM-shaped)
are separate raw fields rather than one pre-formatted "target" string,
since which fields apply depends on capability and that formatting
choice belongs to the UI layer, not this API.
Show child attributes
Show child attributes
Was this page helpful?