Retrieve API Key
curl --request GET \
--url https://api.signa.so/v1/organization/api-keys/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/organization/api-keys/{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/api-keys/{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/api-keys/{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/api-keys/{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/api-keys/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/organization/api-keys/{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": "key_Mc2eF6gH",
"object": "api_key",
"name": "Aurora Digital production",
"prefix": "sig_7kMn2pQr",
"scopes": ["trademarks:read", "billing:read"],
"rate_limit_tier": "standard",
"status": "active",
"expires_at": null,
"last_used_at": "2026-06-11T14:30:00.000Z",
"metadata": { "environment": "production" },
"revoked_at": null,
"created_by": "key_Lb1dE5fG",
"created_at": "2026-01-05T12:00:00.000Z",
"updated_at": "2026-06-11T14:30:00.000Z",
"request_id": "req_uN0eF6gH"
}
API Keys
Retrieve API Key
Retrieve a single API key by ID
GET
/
v1
/
organization
/
api-keys
/
{id}
Retrieve API Key
curl --request GET \
--url https://api.signa.so/v1/organization/api-keys/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.signa.so/v1/organization/api-keys/{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/api-keys/{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/api-keys/{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/api-keys/{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/api-keys/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.signa.so/v1/organization/api-keys/{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": "key_Mc2eF6gH",
"object": "api_key",
"name": "Aurora Digital production",
"prefix": "sig_7kMn2pQr",
"scopes": ["trademarks:read", "billing:read"],
"rate_limit_tier": "standard",
"status": "active",
"expires_at": null,
"last_used_at": "2026-06-11T14:30:00.000Z",
"metadata": { "environment": "production" },
"revoked_at": null,
"created_by": "key_Lb1dE5fG",
"created_at": "2026-01-05T12:00:00.000Z",
"updated_at": "2026-06-11T14:30:00.000Z",
"request_id": "req_uN0eF6gH"
}
Overview
Returns the metadata for a single API key. The raw key secret is never returned; only theprefix (the first 12 characters of the key) is included, for identification. The full secret is shown once, when the key is created or rotated.
Revoked and expired keys are still retrievable here so audit history stays intact; check the status field.
Requires the api-keys:manage scope.
Path Parameters
string
required
API key ID (
key_...).Response
string
API key ID.
string
Always
api_key.string
Human-readable name.
string
First 12 characters of the raw key, for identification. The full secret is never returned.
string[]
Scopes granted to this key.
string
Rate limit tier label for the key.
string
Lifecycle state:
active, expired, or revoked.string | null
Expiry timestamp, or
null for a non-expiring key.string | null
Timestamp of the last API call with this key, or
null if never used.object
Key-value metadata.
string | null
Revocation timestamp, or
null.string
ID of the API key that created this key.
string
Creation timestamp.
string
Last update timestamp.
string
Unique request identifier for support and debugging.
{
"id": "key_Mc2eF6gH",
"object": "api_key",
"name": "Aurora Digital production",
"prefix": "sig_7kMn2pQr",
"scopes": ["trademarks:read", "billing:read"],
"rate_limit_tier": "standard",
"status": "active",
"expires_at": null,
"last_used_at": "2026-06-11T14:30:00.000Z",
"metadata": { "environment": "production" },
"revoked_at": null,
"created_by": "key_Lb1dE5fG",
"created_at": "2026-01-05T12:00:00.000Z",
"updated_at": "2026-06-11T14:30:00.000Z",
"request_id": "req_uN0eF6gH"
}
Code Examples
curl "https://api.signa.so/v1/organization/api-keys/key_Mc2eF6gH" \
-H "Authorization: Bearer sig_YOUR_KEY"
import { Signa } from "@signa-so/sdk";
const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
const apiKey = await signa.organization.apiKeys.retrieve("key_Mc2eF6gH");
Errors
| Status | Type | Description |
|---|---|---|
| 400 | validation_error | Invalid API key ID |
| 401 | unauthorized | Missing or invalid API key |
| 403 | forbidden | API key lacks api-keys:manage |
| 404 | not_found | API key does not exist or belongs to another org |