curl --request POST \
--url https://api.ngrok.ai/provider-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"providerId": "<string>",
"value": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<string>"
}
'import requests
url = "https://api.ngrok.ai/provider-keys"
payload = {
"providerId": "<string>",
"value": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<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({
providerId: '<string>',
value: '<string>',
name: '<string>',
description: '<string>',
metadata: '<string>'
})
};
fetch('https://api.ngrok.ai/provider-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/provider-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([
'providerId' => '<string>',
'value' => '<string>',
'name' => '<string>',
'description' => '<string>',
'metadata' => '<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/provider-keys"
payload := strings.NewReader("{\n \"providerId\": \"<string>\",\n \"value\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<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/provider-keys")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"providerId\": \"<string>\",\n \"value\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.ai/provider-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 \"providerId\": \"<string>\",\n \"value\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<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",
"providerId": "<string>",
"name": "<string>",
"keyRedacted": "<string>",
"createdBy": {
"id": "<string>",
"uri": "<string>"
},
"lastUpdatedBy": {
"id": "<string>",
"uri": "<string>"
},
"description": "<string>",
"metadata": "<string>",
"lastUsed": "2023-11-07T05:31:56Z"
}{
"statusCode": 123,
"msg": "<string>",
"details": {},
"errorCode": "<string>"
}Create an AI Gateway provider key
Create a new AI Gateway provider key attached to a managed access key.
curl --request POST \
--url https://api.ngrok.ai/provider-keys \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"providerId": "<string>",
"value": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<string>"
}
'import requests
url = "https://api.ngrok.ai/provider-keys"
payload = {
"providerId": "<string>",
"value": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<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({
providerId: '<string>',
value: '<string>',
name: '<string>',
description: '<string>',
metadata: '<string>'
})
};
fetch('https://api.ngrok.ai/provider-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/provider-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([
'providerId' => '<string>',
'value' => '<string>',
'name' => '<string>',
'description' => '<string>',
'metadata' => '<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/provider-keys"
payload := strings.NewReader("{\n \"providerId\": \"<string>\",\n \"value\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<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/provider-keys")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"providerId\": \"<string>\",\n \"value\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ngrok.ai/provider-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 \"providerId\": \"<string>\",\n \"value\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"metadata\": \"<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",
"providerId": "<string>",
"name": "<string>",
"keyRedacted": "<string>",
"createdBy": {
"id": "<string>",
"uri": "<string>"
},
"lastUpdatedBy": {
"id": "<string>",
"uri": "<string>"
},
"description": "<string>",
"metadata": "<string>",
"lastUsed": "2023-11-07T05:31:56Z"
}{
"statusCode": 123,
"msg": "<string>",
"details": {},
"errorCode": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Which AI provider this key is for, for example openai or anthropic.
Plaintext provider key value. Write-only; never returned in responses.
User-defined label for this provider key.
255Human-readable description of this provider key.
255Arbitrary user-defined metadata for this provider key.
4096Response
The created AI Gateway provider key.
Unique identifier for this provider key.
URI of this AI Gateway Provider Key API resource.
Timestamp when the provider key was created.
Timestamp when the provider key was last updated.
Which AI provider this key is for, for example openai or anthropic.
User-defined label for this provider key.
Redacted display form of the key value.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Human-readable description of this provider key.
Arbitrary user-defined metadata for this provider key.
Timestamp when the provider key was last used.
Was this page helpful?