Retrieve Request Log
curl --request GET \
--url https://api.signa.so/v1/organization/logs/{request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/organization/logs/{request_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signa.so/v1/organization/logs/{request_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://api.signa.so/v1/organization/logs/{request_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://api.signa.so/v1/organization/logs/{request_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://api.signa.so/v1/organization/logs/{request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/organization/logs/{request_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{
"id": "req_01HXYA...",
"object": "request_log",
"method": "GET",
"path": "/v1/trademarks/tm_bogus",
"status_code": 404,
"duration_ms": 18,
"endpoint_type": "read",
"credits": 0,
"api_key_prefix": "sig_7kMn",
"error_type": "not_found",
"error_detail": "Trademark tm_bogus does not exist.",
"created_at": "2026-04-18T10:11:05Z",
"request_id": "req_01HXYZ_currentCall"
}
Logs
Retrieve Request Log
Retrieve a single API request log by request ID
GET
/
v1
/
organization
/
logs
/
{request_id}
Retrieve Request Log
curl --request GET \
--url https://api.signa.so/v1/organization/logs/{request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/organization/logs/{request_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signa.so/v1/organization/logs/{request_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://api.signa.so/v1/organization/logs/{request_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://api.signa.so/v1/organization/logs/{request_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://api.signa.so/v1/organization/logs/{request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/organization/logs/{request_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{
"id": "req_01HXYA...",
"object": "request_log",
"method": "GET",
"path": "/v1/trademarks/tm_bogus",
"status_code": 404,
"duration_ms": 18,
"endpoint_type": "read",
"credits": 0,
"api_key_prefix": "sig_7kMn",
"error_type": "not_found",
"error_detail": "Trademark tm_bogus does not exist.",
"created_at": "2026-04-18T10:11:05Z",
"request_id": "req_01HXYZ_currentCall"
}
Beta. The request logs schema is new and may evolve. Field names should be stable, but we reserve the right to add fields or adjust response shape before general availability.
Overview
Returns a single request log entry by itsrequest_id. Useful for looking up the full context of a request when a caller reports an error and includes the request_id header.
Per-plan access control limits how far back you can retrieve logs:
| Plan | Retention window |
|---|---|
free | Last 7 days |
starter | Last 30 days |
beta, pro, enterprise | Last 90 days |
billing:read scope.
Path Parameters
string
required
Request identifier from the
X-Request-Id response header (e.g. req_01HXYZ...).Response
string
The logged request’s identifier (matches the
request_id path parameter).string
Always
"request_log".string
HTTP method.
string
Request path.
integer
HTTP status code returned.
integer
Request duration in milliseconds.
string
Classified endpoint type (e.g.
search, read, utility).integer
Credits charged against your plan for this request.
string
Prefix of the API key used.
string
Error type slug (null on success).
string
Error detail message (null on success).
string
ISO timestamp when the request was logged.
string
The request ID of this lookup call (per the standard envelope convention). To identify the logged request being retrieved, use the top-level
id field.{
"id": "req_01HXYA...",
"object": "request_log",
"method": "GET",
"path": "/v1/trademarks/tm_bogus",
"status_code": 404,
"duration_ms": 18,
"endpoint_type": "read",
"credits": 0,
"api_key_prefix": "sig_7kMn",
"error_type": "not_found",
"error_detail": "Trademark tm_bogus does not exist.",
"created_at": "2026-04-18T10:11:05Z",
"request_id": "req_01HXYZ_currentCall"
}
Code Examples
curl "https://api.signa.so/v1/organization/logs/req_01HXYA..." \
-H "Authorization: Bearer sig_xxxxxxxxxxxx"
import { Signa } from "@signa-so/sdk";
const signa = new Signa({ api_key: "sig_xxxxxxxxxxxx" });
const log = await signa.organization.logs.retrieve("req_01HXYA...");
import requests
resp = requests.get(
"https://api.signa.so/v1/organization/logs/req_01HXYA...",
headers={"Authorization": "Bearer sig_xxxxxxxxxxxx"},
)
log = resp.json()
Errors
| Status | Type | Description |
|---|---|---|
| 401 | unauthorized | Missing or invalid API key |
| 403 | forbidden | API key lacks billing:read |
| 404 | not_found | Request log does not exist, belongs to another org, or is outside your plan’s retention window |
Related Endpoints
- List Request Logs — paginated list with filters
- Get Usage Summary — aggregate usage rollups