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
}
}Regenerar la clave API del espacio de trabajo
Regenera la clave API de un espacio de trabajo. Establece una expiración de 24 horas en las claves activas existentes y crea una nueva clave. No se puede usar en espacios de trabajo protegidos. Limitado a 1 solicitud por minuto.
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
}
}Autorizaciones
Clave API para autenticación. Usa tu clave API directamente sin ningún prefijo (por ejemplo, 'your-api-key'). El prefijo Bearer es opcional pero no obligatorio.
Parámetros de ruta
ID del espacio de trabajo
Cuerpo
Qué tipo de clave regenerar ('live' o 'test'). Por defecto es 'live'. Regenerar un tipo no expira ni afecta al otro.
live, test Respuesta
Clave API regenerada exitosamente
Resultado de la regeneración de la clave API
La clave API recién generada
Show child attributes
Show child attributes
El tipo de clave que fue regenerada
live, test Lista de claves configuradas para expirar en 24 horas
Show child attributes
Show child attributes
¿Esta página le ayudó?