curl --request POST \
--url https://api.ngrok.ai/access-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"accessKeyConfigurationId": "<string>"
}
'import requests
url = "https://api.ngrok.ai/access-keys"
payload = {
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"accessKeyConfigurationId": "<string>"
}
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>',
description: '<string>',
metadata: '<string>',
accessKeyConfigurationId: '<string>'
})
};
fetch('https://api.ngrok.ai/access-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.ngrok.ai/access-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' => '<string>',
'description' => '<string>',
'metadata' => '<string>',
'accessKeyConfigurationId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.ngrok.ai/access-keys"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"accessKeyConfigurationId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.ngrok.ai/access-keys")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"accessKeyConfigurationId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.ai/access-keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"accessKeyConfigurationId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"uri": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"uri": "<string>"
},
"lastUpdatedBy": {
"id": "<string>",
"uri": "<string>"
},
"keyRedacted": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"token": "<string>",
"lastUsed": "2023-11-07T05:31:56Z",
"accessKeyConfiguration": {
"id": "<string>",
"uri": "<string>",
"name": "<string>"
}
}{
"statusCode": 123,
"msg": "<string>",
"details": {},
"errorCode": "<string>"
}Create an AI Gateway access key
Create a new ngrok-managed access key for AI Gateway traffic.
curl --request POST \
--url https://api.ngrok.ai/access-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"accessKeyConfigurationId": "<string>"
}
'import requests
url = "https://api.ngrok.ai/access-keys"
payload = {
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"accessKeyConfigurationId": "<string>"
}
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>',
description: '<string>',
metadata: '<string>',
accessKeyConfigurationId: '<string>'
})
};
fetch('https://api.ngrok.ai/access-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.ngrok.ai/access-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' => '<string>',
'description' => '<string>',
'metadata' => '<string>',
'accessKeyConfigurationId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.ngrok.ai/access-keys"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"accessKeyConfigurationId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.ngrok.ai/access-keys")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"accessKeyConfigurationId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.ai/access-keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\",\n \"accessKeyConfigurationId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"uri": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"uri": "<string>"
},
"lastUpdatedBy": {
"id": "<string>",
"uri": "<string>"
},
"keyRedacted": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"token": "<string>",
"lastUsed": "2023-11-07T05:31:56Z",
"accessKeyConfiguration": {
"id": "<string>",
"uri": "<string>",
"name": "<string>"
}
}{
"statusCode": 123,
"msg": "<string>",
"details": {},
"errorCode": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
User-friendly label for this access key.
255Human-readable description of this access key.
255Arbitrary user-defined metadata for this access key.
4096ID of an access key configuration to link. Omit for allow-all scope.
Response
The created AI Gateway access key.
Unique identifier for this access key.
URI of this AI Gateway Access Key API resource.
Timestamp when the access key was created.
Timestamp when the access key was last updated.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Redacted display form of the access key token.
User-friendly label for this access key.
Human-readable description of this access key.
Arbitrary user-defined metadata for this access key.
Plaintext access key token. Only returned when the key is first created.
Timestamp when the access key was last used.
Linked access key configuration, or null for allow-all scope.
Show child attributes
Show child attributes
Was this page helpful?