curl --request POST \
--url https://api.aireserve.com/v1/admin/create_client_api_key \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category": "<string>",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.aireserve.com/v1/admin/create_client_api_key"
payload = {
"name": "<string>",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category": "<string>",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
clientId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
category: '<string>',
userId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.aireserve.com/v1/admin/create_client_api_key', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"error": "<string>",
"error_description": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"error": "<string>",
"error_description": "<string>"
}Create an organization API key, optionally bound to a member (the secret is shown once, in the card)
Create an organization API key, optionally bound to a member (the secret is shown once, in the card). High stakes: Mints a live organization credential — its secret appears once, in this card only. Interactive clients should confirm with the user first. The response carries a one-time secret in secret; store it immediately and redact the response from logs. Runs as the token’s owner within their role; the portal’s own authorization and audit log apply.
curl --request POST \
--url https://api.aireserve.com/v1/admin/create_client_api_key \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category": "<string>",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.aireserve.com/v1/admin/create_client_api_key"
payload = {
"name": "<string>",
"clientId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category": "<string>",
"userId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
clientId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
category: '<string>',
userId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.aireserve.com/v1/admin/create_client_api_key', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"error": "<string>",
"error_description": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "refused",
"code": "unknown_op",
"error": "<string>"
}{
"status": "executed",
"ok": true,
"summary": "<string>",
"message": "<string>",
"data": "<unknown>",
"secret": "<string>",
"sensitive": true
}{
"error": "<string>",
"error_description": "<string>"
}Authorizations
A management token: minted by the OAuth flow (aireserve login, or an MCP client's Authenticate step) or on the portal Keys page under Management Keys. Inference API keys are refused.
Body
Human-readable key name, e.g. 'CI pipeline'
1 - 120Target organization id — platform admins only; omit otherwise
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Grouping label; managed connect-flow categories are refused
1 - 80Bind the key to this member for attribution and user-scope quota; omit for an org-scoped key
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
Executed successfully (ok: true).
executed Whether the operation succeeded.
The consent line describing what was done, built from resolved labels.
Human-readable result line.
Operation payload (reads) or detail worth relaying (writes).
A one-time secret the operation minted (API key, credential). Shown once; store it now.
Present exactly when secret is: redact this response from logs.
true