curl --request POST \
--url https://api.egp.scale.com/v5/spans \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"trace_id": "<string>",
"start_timestamp": "2023-11-07T05:31:56Z",
"id": "<string>",
"parent_id": "<string>",
"group_id": "<string>",
"end_timestamp": "2023-11-07T05:31:56Z",
"input": {},
"output": {},
"metadata": {},
"status": "SUCCESS",
"type": "STANDALONE",
"application_interaction_id": "<string>",
"application_variant_id": "<string>",
"expected": {}
}
'import requests
url = "https://api.egp.scale.com/v5/spans"
payload = {
"name": "<string>",
"trace_id": "<string>",
"start_timestamp": "2023-11-07T05:31:56Z",
"id": "<string>",
"parent_id": "<string>",
"group_id": "<string>",
"end_timestamp": "2023-11-07T05:31:56Z",
"input": {},
"output": {},
"metadata": {},
"status": "SUCCESS",
"type": "STANDALONE",
"application_interaction_id": "<string>",
"application_variant_id": "<string>",
"expected": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
trace_id: '<string>',
start_timestamp: '2023-11-07T05:31:56Z',
id: '<string>',
parent_id: '<string>',
group_id: '<string>',
end_timestamp: '2023-11-07T05:31:56Z',
input: {},
output: {},
metadata: {},
status: 'SUCCESS',
type: 'STANDALONE',
application_interaction_id: '<string>',
application_variant_id: '<string>',
expected: {}
})
};
fetch('https://api.egp.scale.com/v5/spans', 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.egp.scale.com/v5/spans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'trace_id' => '<string>',
'start_timestamp' => '2023-11-07T05:31:56Z',
'id' => '<string>',
'parent_id' => '<string>',
'group_id' => '<string>',
'end_timestamp' => '2023-11-07T05:31:56Z',
'input' => [
],
'output' => [
],
'metadata' => [
],
'status' => 'SUCCESS',
'type' => 'STANDALONE',
'application_interaction_id' => '<string>',
'application_variant_id' => '<string>',
'expected' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/spans"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"trace_id\": \"<string>\",\n \"start_timestamp\": \"2023-11-07T05:31:56Z\",\n \"id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"group_id\": \"<string>\",\n \"end_timestamp\": \"2023-11-07T05:31:56Z\",\n \"input\": {},\n \"output\": {},\n \"metadata\": {},\n \"status\": \"SUCCESS\",\n \"type\": \"STANDALONE\",\n \"application_interaction_id\": \"<string>\",\n \"application_variant_id\": \"<string>\",\n \"expected\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.egp.scale.com/v5/spans")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"trace_id\": \"<string>\",\n \"start_timestamp\": \"2023-11-07T05:31:56Z\",\n \"id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"group_id\": \"<string>\",\n \"end_timestamp\": \"2023-11-07T05:31:56Z\",\n \"input\": {},\n \"output\": {},\n \"metadata\": {},\n \"status\": \"SUCCESS\",\n \"type\": \"STANDALONE\",\n \"application_interaction_id\": \"<string>\",\n \"application_variant_id\": \"<string>\",\n \"expected\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/spans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"trace_id\": \"<string>\",\n \"start_timestamp\": \"2023-11-07T05:31:56Z\",\n \"id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"group_id\": \"<string>\",\n \"end_timestamp\": \"2023-11-07T05:31:56Z\",\n \"input\": {},\n \"output\": {},\n \"metadata\": {},\n \"status\": \"SUCCESS\",\n \"type\": \"STANDALONE\",\n \"application_interaction_id\": \"<string>\",\n \"application_variant_id\": \"<string>\",\n \"expected\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"trace_id": "<string>",
"start_timestamp": "2023-11-07T05:31:56Z",
"account_id": "<string>",
"object": "span",
"created_by": {
"id": "<string>",
"type": "user",
"object": "identity"
},
"parent_id": "<string>",
"group_id": "<string>",
"end_timestamp": "2023-11-07T05:31:56Z",
"input": {},
"output": {},
"metadata": {},
"expected": {},
"status": "SUCCESS",
"type": "STANDALONE",
"application_interaction_id": "<string>",
"application_variant_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create a span
Create a single span and return the persisted span.
Use this for one-off span ingestion; to write many spans in one request use
POST /v5/spans/batch. When id is omitted the server generates a UUID.
Depending on per-account server configuration the span is persisted to
Postgres, to the ClickHouse-backed tracing service, or both; when the tracing
service is the primary store, a write failure returns a retryable 503 with a
Retry-After header.
curl --request POST \
--url https://api.egp.scale.com/v5/spans \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"trace_id": "<string>",
"start_timestamp": "2023-11-07T05:31:56Z",
"id": "<string>",
"parent_id": "<string>",
"group_id": "<string>",
"end_timestamp": "2023-11-07T05:31:56Z",
"input": {},
"output": {},
"metadata": {},
"status": "SUCCESS",
"type": "STANDALONE",
"application_interaction_id": "<string>",
"application_variant_id": "<string>",
"expected": {}
}
'import requests
url = "https://api.egp.scale.com/v5/spans"
payload = {
"name": "<string>",
"trace_id": "<string>",
"start_timestamp": "2023-11-07T05:31:56Z",
"id": "<string>",
"parent_id": "<string>",
"group_id": "<string>",
"end_timestamp": "2023-11-07T05:31:56Z",
"input": {},
"output": {},
"metadata": {},
"status": "SUCCESS",
"type": "STANDALONE",
"application_interaction_id": "<string>",
"application_variant_id": "<string>",
"expected": {}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
trace_id: '<string>',
start_timestamp: '2023-11-07T05:31:56Z',
id: '<string>',
parent_id: '<string>',
group_id: '<string>',
end_timestamp: '2023-11-07T05:31:56Z',
input: {},
output: {},
metadata: {},
status: 'SUCCESS',
type: 'STANDALONE',
application_interaction_id: '<string>',
application_variant_id: '<string>',
expected: {}
})
};
fetch('https://api.egp.scale.com/v5/spans', 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.egp.scale.com/v5/spans",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'trace_id' => '<string>',
'start_timestamp' => '2023-11-07T05:31:56Z',
'id' => '<string>',
'parent_id' => '<string>',
'group_id' => '<string>',
'end_timestamp' => '2023-11-07T05:31:56Z',
'input' => [
],
'output' => [
],
'metadata' => [
],
'status' => 'SUCCESS',
'type' => 'STANDALONE',
'application_interaction_id' => '<string>',
'application_variant_id' => '<string>',
'expected' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/spans"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"trace_id\": \"<string>\",\n \"start_timestamp\": \"2023-11-07T05:31:56Z\",\n \"id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"group_id\": \"<string>\",\n \"end_timestamp\": \"2023-11-07T05:31:56Z\",\n \"input\": {},\n \"output\": {},\n \"metadata\": {},\n \"status\": \"SUCCESS\",\n \"type\": \"STANDALONE\",\n \"application_interaction_id\": \"<string>\",\n \"application_variant_id\": \"<string>\",\n \"expected\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.egp.scale.com/v5/spans")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"trace_id\": \"<string>\",\n \"start_timestamp\": \"2023-11-07T05:31:56Z\",\n \"id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"group_id\": \"<string>\",\n \"end_timestamp\": \"2023-11-07T05:31:56Z\",\n \"input\": {},\n \"output\": {},\n \"metadata\": {},\n \"status\": \"SUCCESS\",\n \"type\": \"STANDALONE\",\n \"application_interaction_id\": \"<string>\",\n \"application_variant_id\": \"<string>\",\n \"expected\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/spans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"trace_id\": \"<string>\",\n \"start_timestamp\": \"2023-11-07T05:31:56Z\",\n \"id\": \"<string>\",\n \"parent_id\": \"<string>\",\n \"group_id\": \"<string>\",\n \"end_timestamp\": \"2023-11-07T05:31:56Z\",\n \"input\": {},\n \"output\": {},\n \"metadata\": {},\n \"status\": \"SUCCESS\",\n \"type\": \"STANDALONE\",\n \"application_interaction_id\": \"<string>\",\n \"application_variant_id\": \"<string>\",\n \"expected\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"trace_id": "<string>",
"start_timestamp": "2023-11-07T05:31:56Z",
"account_id": "<string>",
"object": "span",
"created_by": {
"id": "<string>",
"type": "user",
"object": "identity"
},
"parent_id": "<string>",
"group_id": "<string>",
"end_timestamp": "2023-11-07T05:31:56Z",
"input": {},
"output": {},
"metadata": {},
"expected": {},
"status": "SUCCESS",
"type": "STANDALONE",
"application_interaction_id": "<string>",
"application_variant_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Headers
Body
id for grouping traces together, uuid is recommended
256The id of the span
Reference to a parent span_id
Reference to a group_id
SUCCESS, ERROR, CANCELED TEXT_INPUT, TEXT_OUTPUT, COMPLETION_INPUT, COMPLETION, KB_RETRIEVAL, KB_INPUT, RERANKING, EXTERNAL_ENDPOINT, PROMPT_ENGINEERING, DOCUMENT_INPUT, MAP_REDUCE, DOCUMENT_SEARCH, DOCUMENT_PROMPT, CUSTOM, CODE_EXECUTION, DATA_MANIPULATION, EVALUATION, FILE_RETRIEVAL, KB_ADD_CHUNK, KB_MANAGEMENT, GUARDRAIL, OUTPUT_GUARDRAIL, TRACER, AGENT_TRACER, AGENT_WORKFLOW, STANDALONE The optional application interaction ID this span belongs to
The optional application variant ID this span belongs to
Response
Successful Response
id for grouping traces together, uuid is recommended
256"span"The identity that created the entity.
Show child attributes
Show child attributes
Reference to a parent span_id
Reference to a group_id
SUCCESS, ERROR, CANCELED TEXT_INPUT, TEXT_OUTPUT, COMPLETION_INPUT, COMPLETION, KB_RETRIEVAL, KB_INPUT, RERANKING, EXTERNAL_ENDPOINT, PROMPT_ENGINEERING, DOCUMENT_INPUT, MAP_REDUCE, DOCUMENT_SEARCH, DOCUMENT_PROMPT, CUSTOM, CODE_EXECUTION, DATA_MANIPULATION, EVALUATION, FILE_RETRIEVAL, KB_ADD_CHUNK, KB_MANAGEMENT, GUARDRAIL, OUTPUT_GUARDRAIL, TRACER, AGENT_TRACER, AGENT_WORKFLOW, STANDALONE The interaction ID this span belongs to
The id of the application variant this span belongs to

