Menú

Referencia de la API · Branding

Dominio personalizado

branding · custom_domain · 4 operaciones

POST/v1/branding/custom-domain

Add the team's custom domain

branding.custom_domain.add

EscrituraIdempotenteDesde 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.

Instrucciones 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.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
branding:write
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
branding_custom_domain_addEn la superficie completa; en la compacta, mb_execute_operation con id: "branding.custom_domain.add".
Eventos que puede emitir
branding.domain.added

Costo declarado: hasta 16 lecturas y 1 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (vercel): cuenta en el cupo de operaciones externas.

Parámetros

domainstringcuerporequerido

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

Respuesta

domainobject
verification_recordobject | null
changedboolean
previous_hoststring
previous_released_from_hostingboolean

Errores

Ejemplo

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
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar. En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.

POST/v1/branding/custom-domain/verify

Verify the team's custom domain

branding.custom_domain.verify

EscrituraIdempotenteDesde 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.

Alcance
branding:write
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
branding_custom_domain_verifyEn la superficie completa; en la compacta, mb_execute_operation con id: "branding.custom_domain.verify".
Eventos que puede emitir
branding.domain.verified

Costo declarado: hasta 1 lecturas y 1 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (vercel): cuenta en el cupo de operaciones externas.

Parámetros

Sin parámetros.

Respuesta

domainobject
verifiedboolean
configuredboolean
verification_recordobject | null
messagestring | null

Errores

Ejemplo

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

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar. En la práctica esta operación no se simula (toca otra 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

EscrituraIdempotenteDesde 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.

Alcance
branding:write
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
branding_custom_domain_toggleEn la superficie completa; en la compacta, mb_execute_operation con id: "branding.custom_domain.toggle".

Costo declarado: hasta 1 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

enabledbooleancuerporequerido

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

Respuesta

domainobject
changedboolean

Errores

Ejemplo

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
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes 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

IrreversibleDesde 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.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
branding:write y «Permitir eliminar» (branding:delete en OAuth)
Permiso
Editar en el módulo · Solo owner, admin
Tool del MCP
branding_custom_domain_removeEn la superficie completa; en la compacta, mb_execute_operation con id: "branding.custom_domain.remove".
Eventos que puede emitir
branding.domain.removed

Costo declarado: hasta 16 lecturas y 1 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (vercel): cuenta en el cupo de operaciones externas.

Parámetros

Sin parámetros.

Respuesta

removedtrue
domainobject
released_from_hostingboolean

Errores

Ejemplo

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
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar. En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.