import { FirmaClient } from "@firma-dev/sdk";
const firma = new FirmaClient({ apiKey: "YOUR_API_KEY" });
const response = await firma.workspaces.regenerateWorkspaceApiKey({
id: "id"
});
console.log(response);curl --request POST \
--url https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"key_type": "live"
}
'import requests
url = "https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate"
payload = { "key_type": "live" }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({key_type: 'live'})
};
fetch('https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate', 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.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate",
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([
'key_type' => 'live'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate"
payload := strings.NewReader("{\n \"key_type\": \"live\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"key_type\": \"live\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"key_type\": \"live\"\n}"
response = http.request(request)
puts response.read_body{
"new_key": {
"api_key": "firma_live_abc123xyz...",
"created_at": "2024-12-17T10:30:00Z"
},
"key_type": "live",
"expiring_keys": [
{
"id": "old-key-uuid",
"api_key": "firma_old456...",
"expires_at": "2024-12-18T10:30:00Z"
}
],
"workspace_id": "123e4567-e89b-12d3-a456-426614174000"
}{
"error": "Cannot regenerate API key for protected workspace"
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"error": "Forbidden",
"message": "You do not have permission to access this resource"
}{
"error": "Not Found",
"message": "The requested resource was not found"
}{
"error": "Rate Limit Exceeded",
"message": "Too many requests. Please wait before retrying.",
"details": {
"retry_after": 45
}
}Régénérer la clé API de l'espace de travail
Régénère la clé API d’un espace de travail. Applique une expiration de 24 heures aux clés actives existantes et crée une nouvelle clé. Ne peut pas être utilisé sur des espaces de travail protégés. Limité à 1 requête par minute.
import { FirmaClient } from "@firma-dev/sdk";
const firma = new FirmaClient({ apiKey: "YOUR_API_KEY" });
const response = await firma.workspaces.regenerateWorkspaceApiKey({
id: "id"
});
console.log(response);curl --request POST \
--url https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"key_type": "live"
}
'import requests
url = "https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate"
payload = { "key_type": "live" }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({key_type: 'live'})
};
fetch('https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate', 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.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate",
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([
'key_type' => 'live'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate"
payload := strings.NewReader("{\n \"key_type\": \"live\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"key_type\": \"live\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firma.dev/functions/v1/signing-request-api/workspaces/{id}/api-key/regenerate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"key_type\": \"live\"\n}"
response = http.request(request)
puts response.read_body{
"new_key": {
"api_key": "firma_live_abc123xyz...",
"created_at": "2024-12-17T10:30:00Z"
},
"key_type": "live",
"expiring_keys": [
{
"id": "old-key-uuid",
"api_key": "firma_old456...",
"expires_at": "2024-12-18T10:30:00Z"
}
],
"workspace_id": "123e4567-e89b-12d3-a456-426614174000"
}{
"error": "Cannot regenerate API key for protected workspace"
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"error": "Forbidden",
"message": "You do not have permission to access this resource"
}{
"error": "Not Found",
"message": "The requested resource was not found"
}{
"error": "Rate Limit Exceeded",
"message": "Too many requests. Please wait before retrying.",
"details": {
"retry_after": 45
}
}Autorisations
Clé API pour l'authentification. Utilisez votre clé API directement sans préfixe (par exemple, 'your-api-key'). Le préfixe Bearer est optionnel mais pas obligatoire.
Paramètres de chemin
ID de l'espace de travail
Corps
Quel type de clé régénérer ('live' ou 'test'). Par défaut, 'live'. La régénération d'un type n'expire pas et n'affecte pas l'autre.
live, test Réponse
Clé API régénérée avec succès
Résultat de la régénération de la clé API
La clé API nouvellement générée
Show child attributes
Show child attributes
Le type de clé qui a été régénéré
live, test Liste des clés qui ont été configurées pour expirer dans 24 heures
Show child attributes
Show child attributes
Cette page vous a-t-elle été utile ?