Workspace
Link the shared card
Links your reserve card (shared card) to {workspaceId}: when the workspace’s own wallet does not cover a platform charge (renewal, extra numbers, phone lines) and it has no card of its own, your card pays it. The source is the workspace the Pilot Status team configured as your reserve card. No body. Owner of {workspaceId} only. Idempotent: already linked to the same source → 200 with changed: false. On a change, the workspace’s History records Backup card linked (no e-mail).
Requires an account key (ps_account_, created in Profile → API). Workspace keys, number keys and OAuth/MCP tokens get 403 ACCOUNT_KEY_REQUIRED. Sent with Cache-Control: no-store.
PUT
/
v1
/
workspaces
/
{workspaceId}
/
shared-card
Link the shared card
curl --request PUT \
--url https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card"
headers = {"x-api-key": "<api-key>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card', 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://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card"
req, _ := http.NewRequest("PUT", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"workspaceId": "cmh2a9z8y0002ws8example1q",
"sharedCard": {
"linked": true,
"sourceWorkspaceId": "cmh2a1b2c0001ws8example7k"
},
"changed": true
}This changes who pays this workspace’s renewals. Once linked, your reserve card pays the platform charges the workspace’s own wallet and card do not cover. Requires an account key (
ps_account_) and the Owner role. See Shared card per workspace.Authorizations
apiKeyapiKeyId
Your ps_ API key
Path Parameters
Workspace id, from GET /v1/workspaces.
Was this page helpful?
⌘I
Link the shared card
curl --request PUT \
--url https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card \
--header 'x-api-key: <api-key>'import requests
url = "https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card"
headers = {"x-api-key": "<api-key>"}
response = requests.put(url, headers=headers)
print(response.text)const options = {method: 'PUT', headers: {'x-api-key': '<api-key>'}};
fetch('https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card', 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://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card"
req, _ := http.NewRequest("PUT", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"workspaceId": "cmh2a9z8y0002ws8example1q",
"sharedCard": {
"linked": true,
"sourceWorkspaceId": "cmh2a1b2c0001ws8example7k"
},
"changed": true
}