API de Workspaces
Estes endpoints atuam no nível do seu usuário, não de um workspace. Eles respondem apenas a uma chave de conta (ps_account_, criada em Perfil → API).
Só chaves de conta. Uma chave de workspace, uma chave de número ou um token OAuth/MCP recebe 403
ACCOUNT_KEY_REQUIRED. Tokens OAuth/MCP são recusados de propósito: estes endpoints criam chaves, e uma chave criada por um conector continuaria funcionando depois que o conector fosse revogado. x-workspace-id é ignorado aqui: o workspace, quando existe, está no caminho.Cache-Control: no-store. Os erros são { "error": "English | Português", "code": "…" }.
Listar seus workspaces
GET https://pilotstatus.com.br/v1/workspaces
Response (200)
- Só os workspaces em que a sua participação está ativa. Workspaces arquivados ficam de fora.
roleé o seu papel naquele workspace:OWNER,ADMIN,AGENTouANALYST.plané o plano atual do workspace (FREE,PAY_AS_YOU_GO,ON_DEMAND, …).sharedCarddiz se o workspace está vinculado a um cartão compartilhado:linkede, quando vinculado, osourceWorkspaceIdcujo cartão o cobre (nullquando não está vinculado). Veja Cartão compartilhado por workspace.- Use o
idemx-workspace-idpara atuar dentro daquele workspace com a mesma chave de conta.
Criar um workspace
POST https://pilotstatus.com.br/v1/workspaces com { "name": "…" } e, se quiser, "shareCard": true. Você se torna o Proprietário do workspace, e a resposta traz a chave principal dele, exibida só esta vez.
string
obrigatório
De 1 a 60 caracteres, depois de remover espaços nas pontas.
true vincula o novo workspace ao seu cartão de reserva (o cartão compartilhado), para que ele cubra as renovações desse cliente. false ou ausente: o workspace não é compartilhado. Precisa ser um booleano JSON: "true", 1 ou null recebem 400 INVALID_SHARE_CARD.name e shareCard são os únicos campos aceitos. Qualquer outro campo recebe 400 UNKNOWN_FIELDS.
apiKey.keyvem só nesta resposta. Guarde-a antes de qualquer outra coisa. As leituras seguintes mostram sóprefixelast4.apiKeypode virnull. O workspace é salvo primeiro e a chave é criada em seguida. Se a criação da chave falhar, a resposta continua sendo201, para que uma nova tentativa não crie um segundo workspace. Gere a chave principal comPOST /v1/api-keys/regenerate(chave de conta maisx-workspace-id, papel de Proprietário), ou crie uma chave com nome comPOST /v1/workspaces/{id}/api-keys.- Criar não é idempotente. Dois
POSTs criam dois workspaces. Depois de um timeout, confiraGET /v1/workspacesantes de tentar de novo. sharedCarddiz como o workspace nasceu:{ "linked": false, "sourceWorkspaceId": null }semshareCard: true.- Com
shareCard: true, o cartão é conferido antes de qualquer criação. Nenhum cartão de reserva configurado para você (409SHARED_CARD_NOT_CONFIGURED), o workspace de origem arquivado (409SOURCE_ARCHIVED) ou você não é mais Proprietário ativo dele (409NO_SHARED_OWNER): nenhum workspace é criado, então tentar de novo semshareCardé seguro.
Como o novo workspace nasce
Workspaces de revenda começam sem nada cobrado: sem mensalidade de plano, sem números e sem saldo. A primeira cobrança é o primeiro número que conecta, ou a primeira linha que você compra. O cartão compartilhado é uma reserva: ele paga uma cobrança só quando a carteira do workspace não cobre e o workspace não tem cartão próprio. Veja Cobrança para revendedores.
A marcação de revendedor e os preços de revenda são configurados pela equipe do Pilot Status, não pela API. A equipe também configura qual dos seus workspaces guarda o seu cartão de reserva — é isso que permite compartilhá-lo. Quais workspaces de clientes usam esse cartão é decisão sua, workspace por workspace:
shareCard na criação, ou PUT/DELETE …/shared-card depois. Fale com a gente para configurá-los. Eles valem para os workspaces criados a partir daí; os workspaces que você já tinha mantêm o plano.Quantos workspaces você pode ter
Cada usuário pode ser Proprietário de até 10 workspaces por padrão, contando todo workspace em que você é o Proprietário ativo, o primeiro incluído. Acima do limite, a resposta é 409WORKSPACE_LIMIT_REACHED, com o limite em limit:
Response (409)
Cartão compartilhado por workspace
O seu cartão de reserva é o cartão salvo num dos seus workspaces — o workspace de origem, escolhido pela equipe do Pilot Status para o seu usuário. Um workspace de cliente vinculado a ele recorre a esse cartão quando a própria carteira não cobre uma cobrança da plataforma e ele não tem cartão próprio (o cartão próprio sempre vem primeiro; o recurso é de um salto só: o cartão compartilhado do próprio workspace de origem não é seguido). Você decide quais workspaces de clientes ficam vinculados:- Na criação:
"shareCard": truenoPOST /v1/workspaces. Ausente oufalse, o workspace não é vinculado. - Depois: o
PUTvincula e oDELETEdesvincula — veja abaixo. Desvincule um cliente que parou de pagar e o seu cartão deixa de pagar as renovações desse cliente: uma renovação recusada passa a suspender só ele.
{workspaceId} — não ser membro ativo, ou um workspace que não existe ou está arquivado, recebem 403 WORKSPACE_MEMBERSHIP_REQUIRED, e um papel abaixo de Proprietário recebe 403 PERMISSION_DENIED. Eles não têm corpo (corpo vazio ou {}); qualquer campo recebe 400 UNKNOWN_FIELDS.
Vincular o cartão compartilhado
PUT https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card
Response (200)
- Idempotente. Já vinculado à mesma origem:
200com"changed": false, e nada é registrado. - O vínculo fica registrado no Histórico do workspace como Cartão de reserva vinculado. Nenhum e-mail é enviado.
- 409
SHARED_CARD_NOT_CONFIGURED— a equipe do Pilot Status não configurou um cartão de reserva para você. - 400
SELF_SOURCE—{workspaceId}é o próprio workspace de origem. - 409
SOURCE_ARCHIVED— o workspace de origem está arquivado. - 409
NO_SHARED_OWNER— você não é mais Proprietário ativo do workspace de origem.
Desvincular o cartão compartilhado
DELETE https://pilotstatus.com.br/v1/workspaces/{workspaceId}/shared-card
Response (200)
- Idempotente. Não vinculado:
200com"changed": false, e nada é registrado. - O desvínculo fica registrado no Histórico do workspace como Cartão de reserva desvinculado. Nenhum e-mail é enviado.
- A partir daí, as cobranças do workspace usam só a carteira e o cartão dele. Se eles não cobrirem uma renovação, esse workspace é suspenso — o seu cartão não é cobrado.
- 409
NO_SHARED_OWNER— o workspace está vinculado a um workspace de origem do qual você não é Proprietário ativo. Fale com a equipe do Pilot Status.
Chaves do workspace
Estes três endpoints gerenciam as chaves de workspace de um workspace, com o seu papel atual nele. Não ser membro ativo, ou um workspace que não existe ou está arquivado, recebem todos a mesma resposta 403WORKSPACE_MEMBERSHIP_REQUIRED.
Listar as chaves
GET https://pilotstatus.com.br/v1/workspaces/{workspaceId}/api-keys — Proprietário ou Administrador.
Response (200)
/v1/api-keys.
Criar uma chave com nome
POST https://pilotstatus.com.br/v1/workspaces/{workspaceId}/api-keys com { "name": "…" } — Proprietário ou Administrador.
string
obrigatório
De 1 a 60 caracteres, depois de remover espaços nas pontas. Use-o para saber qual integração guarda a chave.
Response (201)
key bruta aparece só esta vez. A chave fica registrada como criada por você, então ela é revogada se você for removido do workspace. Um workspace tem até 50 chaves de workspace ativas — chaves revogadas não contam; acima disso, 409 WORKSPACE_KEY_LIMIT_REACHED com limit.
Revogar uma chave com nome
DELETE https://pilotstatus.com.br/v1/workspaces/{workspaceId}/api-keys/{keyId} — Proprietário ou Administrador. Responde { "id": "…", "revokedAt": "…" }. A chave para de funcionar na próxima requisição. Revogar uma chave que já está revogada também responde 200, com o revokedAt original, então repetir a chamada é seguro.
- A chave principal não pode ser revogada (409
PRIMARY_KEY_NOT_REVOCABLE): o agente de IA do app a usa. Rotacione-a comPOST /v1/api-keys/regenerate, enviando a sua chave de conta ex-workspace-id(papel de Proprietário). Só a principal muda; as chaves com nome continuam funcionando. - Um id que não é de uma chave de workspace deste workspace recebe 404
API_KEY_NOT_FOUND. Chaves de número são gerenciadas em/v1/api-keys.
Erros
No
POST /v1/workspaces, as verificações seguem esta ordem: UNKNOWN_FIELDS, INVALID_SHARE_CARD, NAME_REQUIRED / NAME_TOO_LONG, WORKSPACE_LIMIT_REACHED e só então, com shareCard: true, as verificações do cartão de reserva (SHARED_CARD_NOT_CONFIGURED, SOURCE_ARCHIVED, NO_SHARED_OWNER).