Menu

Referência da API · Branding

Domínio personalizado

branding · custom_domain · 4 operações

POST/v1/branding/custom-domain

Add the team's custom domain

branding.custom_domain.add

EscritaIdempotenteDesde 2026-11-01

Registers the organization's own domain for team access (app.youragency.com): validates it (a real hostname, never mb-suite.com or a hosting provider's domain: for an MB Suite address use branding.subdomain.set), checks that no other organization nor this organization's client portal uses it, registers it with the hosting provider and saves it unverified and enabled. Only one custom domain per organization: with one already set, 409 branding_domain_already_set (remove it first); the same domain again changes nothing (changed false). Returns the address and, when the provider asks for ownership proof, verification_record (a TXT record to publish); the CNAME must point to cname.vercel-dns.com. Then branding.custom_domain.verify. Fires branding.domain.added. Owners and admins with edit access to Branding.

Instruções para agentes

Give the person the DNS steps: a CNAME from the hostname to the cname_target of branding.domains.get and, if verification_record came back, that TXT record too; then verify with branding.custom_domain.verify.

Pede confirmação: primeiro dry_run: true (prévia e confirm_token, válido por 10 minutos e por uma única execução), depois o mesmo corpo com confirm_token. Em algumas poucas, só com certos dados: a descrição diz quando. Por que e como: Prévia e confirmação.

Escopo
branding:write
Permissão
Editar no módulo · Só owner, admin
Tool do MCP
branding_custom_domain_addNa superfície completa; na compacta, mb_execute_operation com id: "branding.custom_domain.add".
Eventos que pode emitir
branding.domain.added

Custo declarado: até 16 leituras e 1 escritas por chamada (contam na cota diária). Usa uma plataforma externa (vercel): conta na cota de operações externas.

Parâmetros

domainstringcorpoobrigatório

The hostname, without scheme or path (app.youragency.com).

Resposta

domainobject
verification_recordobject | null
changedboolean
previous_hoststring
previous_released_from_hostingboolean

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/branding/custom-domain" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "domain": "DOMAIN",
  "dry_run": true
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar. Na prática esta operação não é simulada (usa outra plataforma): responde 409 sandbox_external_unavailable.

POST/v1/branding/custom-domain/verify

Verify the team's custom domain

branding.custom_domain.verify

EscritaIdempotenteDesde 2026-11-01

Asks the hosting provider whether the team's custom domain is ready: verified (ownership proven) and configured (the CNAME points to MB Suite). When both hold, the address is marked verified and starts serving the white-label app (fires branding.domain.verified, once). Otherwise returns verified false with configured, verification_record (the TXT record still to publish, if any) and message saying what is missing; DNS changes can take a while to propagate, so it can be called again later. Not found without a custom domain. Owners and admins with edit access to Branding.

Escopo
branding:write
Permissão
Editar no módulo · Só owner, admin
Tool do MCP
branding_custom_domain_verifyNa superfície completa; na compacta, mb_execute_operation com id: "branding.custom_domain.verify".
Eventos que pode emitir
branding.domain.verified

Custo declarado: até 1 leituras e 1 escritas por chamada (contam na cota diária). Usa uma plataforma externa (vercel): conta na cota de operações externas.

Parâmetros

Sem parâmetros.

Resposta

domainobject
verifiedboolean
configuredboolean
verification_recordobject | null
messagestring | null

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/branding/custom-domain/verify" \
  -H "Authorization: Bearer $MB_API_KEY"

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar. Na prática esta operação não é simulada (usa outra plataforma): responde 409 sandbox_external_unavailable.

POST/v1/branding/custom-domain/toggle

Turn the team's custom domain on or off

branding.custom_domain.toggle

EscritaIdempotenteDesde 2026-11-01

Turns the team's custom domain on (enabled true) or off without removing it: off, the address stops opening the white-label app but its registration, verification and DNS stay, so turning it on again is immediate. Already in that state, nothing changes (changed false). Not found without a custom domain. Owners and admins with edit access to Branding.

Escopo
branding:write
Permissão
Editar no módulo · Só owner, admin
Tool do MCP
branding_custom_domain_toggleNa superfície completa; na compacta, mb_execute_operation com id: "branding.custom_domain.toggle".

Custo declarado: até 1 leituras e 1 escritas por chamada (contam na cota diária).

Parâmetros

enabledbooleancorpoobrigatório

true turns the address on, false turns it off without removing it.

Resposta

domainobject
changedboolean

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/branding/custom-domain/toggle" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "enabled": true
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/branding/custom-domain/toggle" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "enabled": true
}'
DELETE/v1/branding/custom-domain

Remove the team's custom domain

branding.custom_domain.remove

IrreversívelDesde 2026-11-01

Removes the team's custom domain: it stops opening MB Suite, it is released from the hosting provider (unless another organization also has it registered, or the provider fails: released_from_hosting false, the organization is cleaned anyway) and it is cleared from the organization. The domain's DNS records are not touched. There is no trash: to undo, add it again and verify it again. Not found without a custom domain. Outside the app it needs a dry run and its confirm_token. Fires branding.domain.removed. Owners and admins with edit access to Branding.

Pede confirmação: primeiro dry_run: true (prévia e confirm_token, válido por 10 minutos e por uma única execução), depois o mesmo corpo com confirm_token. Em algumas poucas, só com certos dados: a descrição diz quando. Por que e como: Prévia e confirmação.

Escopo
branding:write e «Permitir exclusões» (branding:delete no OAuth)
Permissão
Editar no módulo · Só owner, admin
Tool do MCP
branding_custom_domain_removeNa superfície completa; na compacta, mb_execute_operation com id: "branding.custom_domain.remove".
Eventos que pode emitir
branding.domain.removed

Custo declarado: até 16 leituras e 1 escritas por chamada (contam na cota diária). Usa uma plataforma externa (vercel): conta na cota de operações externas.

Parâmetros

Sem parâmetros.

Resposta

removedtrue
domainobject
released_from_hostingboolean

Erros

Exemplo

curl -X DELETE "https://api.mb-suite.com/v1/branding/custom-domain" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar. Na prática esta operação não é simulada (usa outra plataforma): responde 409 sandbox_external_unavailable.