Passer au contenu principal
POST
/
workspaces
@firma-dev/sdk
import { FirmaClient } from "@firma-dev/sdk";

const firma = new FirmaClient({ apiKey: "YOUR_API_KEY" });

const response = await firma.workspaces.createWorkspace({
    name: "Marketing Workspace"
});
console.log(response);
curl --request POST \
--url https://api.firma.dev/functions/v1/signing-request-api/workspaces \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Marketing Workspace"
}
'
import requests

url = "https://api.firma.dev/functions/v1/signing-request-api/workspaces"

payload = { "name": "Marketing Workspace" }
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({name: 'Marketing Workspace'})
};

fetch('https://api.firma.dev/functions/v1/signing-request-api/workspaces', 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",
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' => 'Marketing Workspace'
]),
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"

payload := strings.NewReader("{\n \"name\": \"Marketing Workspace\"\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")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Marketing Workspace\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.firma.dev/functions/v1/signing-request-api/workspaces")

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 \"name\": \"Marketing Workspace\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "abc12345-e89b-12d3-a456-426614174000",
  "name": "Marketing Workspace",
  "protected": false,
  "api_key": "fk_m1n2o3p4q5r6s7t8u9v0",
  "created_date": "2024-01-25T14:00:00Z",
  "updated_date": "2024-01-25T14:00:00Z"
}
{
"error": "Validation Error",
"message": "Invalid input data",
"details": {
"name": "Name is required",
"email": "Invalid email format"
}
}
{
"error": "Unauthorized",
"message": "Invalid API key"
}
{
"error": "Rate Limit Exceeded",
"message": "Too many requests. Please wait before retrying.",
"details": {
"retry_after": 45
}
}

Autorisations

Authorization
string
header
requis

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.

Corps

application/json
name
string
requis

Nom de l'espace de travail

Maximum string length: 255

Réponse

Espace de travail créé avec succès

id
string<uuid>
requis

Identifiant unique de l'espace de travail

name
string
requis

Nom de l'espace de travail

Maximum string length: 255
created_date
string<date-time>
requis

Timestamp de création de l'espace de travail

protected
boolean

Les espaces de travail protégés ne peuvent pas être supprimés

api_key
string | null

Clé API en mode production pour cet espace de travail. Utilisée pour authentifier les requêtes API propres à cet espace de travail.

test_api_key
string | null

Clé API en mode test pour cet espace de travail. Les requêtes authentifiées avec cette clé ne consomment pas de crédits et produisent des demandes de signature marquées test et filigranées.

updated_date
string<date-time>

Timestamp de dernière mise à jour de l'espace de travail

webhook_enabled
boolean

Indique si les webhooks au niveau de l'espace de travail sont activés

webhook_secret
string | null

Secret de signature webhook pour cet espace de travail

webhook_secret_rotated_at
string<date-time> | null

Timestamp de la dernière rotation du secret webhook

webhook_secret_created_at
string<date-time> | null

Timestamp de la première création du secret webhook

ignore_company_webhooks
boolean

Si true, les webhooks au niveau de l'entreprise ne se déclenchent pas pour les événements de cet espace de travail

icon_url
string<uri> | null

URL publiquement accessible vers le logo de l'espace de travail. Retourne le logo propre à l'espace de travail, ou null s'il n'est pas défini (le logo de l'entreprise n'est PAS inclus comme solution de repli dans ce champ).

Exemple:

"https://ielmshcswdhuacyjlpiy.supabase.co/functions/v1/logo/workspace/company-id/workspace-id"