Create API key
Create a new API key. The response includes fullKey once; store it immediately.
Requires Bearer JWT with owner or admin role.
curl -X POST "https://api.talkturo.com/api/api-keys" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN (JWT)" \
-d '{
"accountSlug": "example_string",
"name": "John Doe",
"description": "example_string",
"environment": "live",
"expiresInDays": 3.14,
"permissions": {
"scopes": [
"*"
],
"rate_limit_per_hour": 1000
}
}'
import requests
import json
url = "https://api.talkturo.com/api/api-keys"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)"
}
data = {
"accountSlug": "example_string",
"name": "John Doe",
"description": "example_string",
"environment": "live",
"expiresInDays": 3.14,
"permissions": {
"scopes": [
"*"
],
"rate_limit_per_hour": 1000
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.talkturo.com/api/api-keys", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)"
},
body: JSON.stringify({
"accountSlug": "example_string",
"name": "John Doe",
"description": "example_string",
"environment": "live",
"expiresInDays": 3.14,
"permissions": {
"scopes": [
"*"
],
"rate_limit_per_hour": 1000
}
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"accountSlug": "example_string",
"name": "John Doe",
"description": "example_string",
"environment": "live",
"expiresInDays": 3.14,
"permissions": {
"scopes": [
"*"
],
"rate_limit_per_hour": 1000
}
}`)
req, err := http.NewRequest("POST", "https://api.talkturo.com/api/api-keys", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN (JWT)")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.talkturo.com/api/api-keys')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN (JWT)'
request.body = '{
"accountSlug": "example_string",
"name": "John Doe",
"description": "example_string",
"environment": "live",
"expiresInDays": 3.14,
"permissions": {
"scopes": [
"*"
],
"rate_limit_per_hour": 1000
}
}'
response = http.request(request)
puts response.body
{
"apiKey": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "John Doe",
"description": "example_string",
"key_prefix": "example_string",
"permissions": {
"scopes": [
"*"
],
"rate_limit_per_hour": 1000
},
"last_used_at": "2024-12-25T10:00:00Z",
"expires_at": "2024-12-25T10:00:00Z",
"is_active": true,
"created_at": "2024-12-25T10:00:00Z",
"created_by": "123e4567-e89b-12d3-a456-426614174000",
"fullKey": "example_string"
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
/api-keys
Target server for requests. Edit to use your own host.
Supabase access token JWT for desktop clients and account-management routes
such as API key administration (owner / admin required for API keys).
Send as Authorization: Bearer eyJ....
owner / admin required for API keys).
Send as Authorization: Bearer eyJ....
The media type of the request body
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token (JWT). Supabase access token JWT for desktop clients and account-management routes
such as API key administration (owner / admin required for API keys).
Send as Authorization: Bearer eyJ....
Body
livetest