curl --request GET \
--url https://api.athenahq.ai/api/v1/api-keys \
--header 'x-api-key: <api-key>'import requests
url = "https://api.athenahq.ai/api/v1/api-keys"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.athenahq.ai/api/v1/api-keys', 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.athenahq.ai/api/v1/api-keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.athenahq.ai/api/v1/api-keys"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.athenahq.ai/api/v1/api-keys")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/api-keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"api_keys": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"key_prefix": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"email": "<string>"
},
"is_global": true,
"website_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"is_revoked": true
}
],
"pagination": {
"page_num": 123,
"page_size": 123,
"has_more": true
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Lister les clés API
Répertorie les métadonnées des clés API de l’organisation de la clé authentifiée : créateur de chaque clé (ID, nom et e-mail actuels), date de création, périmètre et statut de révocation. Nécessite une clé API globale ; les clés limitées à certains sites reçoivent 403. Aucun ID d’organisation n’est accepté. Les secrets et empreintes ne sont jamais renvoyés. Les clés révoquées sont incluses pour détecter une clé créée et révoquée entre deux interrogations. Résultats classés par date de création croissante, puis ID croissant.
Pour les alertes de nouvelles clés, enregistrez d’abord une référence des ID. À chaque interrogation, fixez until à l’heure actuelle moins une minute, faites chevaucher since avec la précédente fenêtre réussie et gardez les deux bornes fixes en incrémentant page_num jusqu’à ce que pagination.has_more soit false. Les deux bornes sont inclusives. Dédupliquez les alertes par ID et avancez la fenêtre enregistrée seulement après la réussite de toutes les pages. Filtrez is_revoked localement si seules les clés actives vous intéressent.
Il s’agit d’un inventaire actuel, pas d’un journal d’audit durable ni d’un webhook : la suppression du compte d’un créateur retire ses clés et les suppressions simultanées peuvent décaler les pages. Les fenêtres chevauchantes réduisent les lacunes mais ne garantissent pas la détection de toutes les créations. L’outil MCP list_api_keys expose les mêmes champs et filtres aux clés API globales et aux connexions OAuth d’administrateurs d’organisation, sous réserve des autorisations MCP.
curl --request GET \
--url https://api.athenahq.ai/api/v1/api-keys \
--header 'x-api-key: <api-key>'import requests
url = "https://api.athenahq.ai/api/v1/api-keys"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.athenahq.ai/api/v1/api-keys', 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.athenahq.ai/api/v1/api-keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.athenahq.ai/api/v1/api-keys"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.athenahq.ai/api/v1/api-keys")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/api-keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"api_keys": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"key_prefix": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"email": "<string>"
},
"is_global": true,
"website_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"is_revoked": true
}
],
"pagination": {
"page_num": 123,
"page_size": 123,
"has_more": true
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Paramètres de requête
Inclure les clés créées à cet horodatage ISO 8601 ou après.
Inclut les clés créées au plus tard à cet horodatage ISO 8601. Gardez-le fixe pendant la pagination.
Numéro de page à partir de zéro.
x >= 0Clés par page, jusqu’à 100.
1 <= x <= 100Cette page vous a-t-elle été utile ?