curl --request POST \
--url https://flows.super.ai/api/service-accounts/{service_account_id}/api-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "API Key",
"description": "API key for external integrations"
}
'import requests
url = "https://flows.super.ai/api/service-accounts/{service_account_id}/api-keys"
payload = {
"name": "API Key",
"description": "API key for external integrations"
}
headers = {
"X-API-Key": "<api-key>",
"Authorization": "Bearer <token>",
"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>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: 'API Key', description: 'API key for external integrations'})
};
fetch('https://flows.super.ai/api/service-accounts/{service_account_id}/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://flows.super.ai/api/service-accounts/{service_account_id}/api-keys",
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' => 'API Key',
'description' => 'API key for external integrations'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://flows.super.ai/api/service-accounts/{service_account_id}/api-keys"
payload := strings.NewReader("{\n \"name\": \"API Key\",\n \"description\": \"API key for external integrations\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
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://flows.super.ai/api/service-accounts/{service_account_id}/api-keys")
.header("X-API-Key", "<api-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"API Key\",\n \"description\": \"API key for external integrations\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flows.super.ai/api/service-accounts/{service_account_id}/api-keys")
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["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"API Key\",\n \"description\": \"API key for external integrations\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"modified_by": "<string>",
"name": "<string>",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"token": "saf_org_550e8400_abc123def456ghi789jkl012mno345pqr678stu901vwx234yz",
"token_prefix": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"service_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Create an API key for a service account
Create a new API key for a specific service account.
Creates a new API key associated with the specified service account and returns the full authentication token. Important: The full token is only shown once during creation. Store it securely.
Context:
- The user must have access to the service account
- System accounts are not visible to API users due to RLS restrictions
- All accessible service accounts are organization accounts
- Uses ‘organization_service_account’ identity type
Related Endpoints:
- GET /service-accounts//api-keys - List API keys for a service account
- GET /service-accounts/ - Get service account details
curl --request POST \
--url https://flows.super.ai/api/service-accounts/{service_account_id}/api-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "API Key",
"description": "API key for external integrations"
}
'import requests
url = "https://flows.super.ai/api/service-accounts/{service_account_id}/api-keys"
payload = {
"name": "API Key",
"description": "API key for external integrations"
}
headers = {
"X-API-Key": "<api-key>",
"Authorization": "Bearer <token>",
"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>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: 'API Key', description: 'API key for external integrations'})
};
fetch('https://flows.super.ai/api/service-accounts/{service_account_id}/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://flows.super.ai/api/service-accounts/{service_account_id}/api-keys",
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' => 'API Key',
'description' => 'API key for external integrations'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://flows.super.ai/api/service-accounts/{service_account_id}/api-keys"
payload := strings.NewReader("{\n \"name\": \"API Key\",\n \"description\": \"API key for external integrations\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
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://flows.super.ai/api/service-accounts/{service_account_id}/api-keys")
.header("X-API-Key", "<api-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"API Key\",\n \"description\": \"API key for external integrations\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flows.super.ai/api/service-accounts/{service_account_id}/api-keys")
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["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"API Key\",\n \"description\": \"API key for external integrations\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"modified_by": "<string>",
"name": "<string>",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"token": "saf_org_550e8400_abc123def456ghi789jkl012mno345pqr678stu901vwx234yz",
"token_prefix": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"service_account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
API key authentication. Include your API key in the X-API-Key header as: X-API-Key YOUR_API_KEY
Example:
X-API-Key: saf_1234567890
JWT Bearer token authentication. Include your access token in the Authorization header as: Bearer YOUR_ACCESS_TOKEN
Example:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Path Parameters
UUID of the service account to create an API key for
Body
Response
API key created successfully
Response model for API key creation including the full token.
Full authentication token. This is the only time the full token is shown. Store it securely as it cannot be retrieved later.
"saf_org_550e8400_abc123def456ghi789jkl012mno345pqr678stu901vwx234yz"