Menú

Referencia de la API · CRM

Catálogos

crm · catalogs · 4 operaciones

GET/v1/crm/catalogs

List synced product catalogs

crm.catalogs.list

LecturaIdempotenteDesde 2026-11-01

Lists the org's synced catalogs (external product feeds, Google Shopping XML or CSV over https, that AI sellers can quote from), newest first, paginated by cursor (limit 50 by default): name, feed URL, sync frequency, whether AI sellers may use it, sync status (idle, syncing, ok, error), product count, last sync, next scheduled sync and who added it (created_by_name). The manually curated products used in deal quotes are a different list: see crm.products.list. Adding a catalog and syncing it now are done in the MB Suite app (CRM → Settings → Products: «New catalog», and «Sync now» in the catalog's tab), because each sync computes AI embeddings that consume AI credits.

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_catalogs_listEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.catalogs.list".

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

Parámetros

limitintegerqueryopcional

How many items this page brings at most (see the maximum and the default in the schema).

Por defecto: 50

cursorstringqueryopcional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

Respuesta

dataarray<object>
has_moreboolean
next_cursorstring

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/catalogs" \
  -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.

curl "https://api.mb-suite.com/v1/crm/catalogs" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/crm/catalogs/{catalog_id}

Get one synced catalog

crm.catalogs.get

LecturaIdempotenteDesde 2026-11-01

Returns one synced catalog with its sync status (idle, syncing, ok, error), last error, product count, last and next sync. Use it to follow a sync (the one the app starts, or the scheduled one): the status moves from syncing to ok or error. Adding a catalog and syncing it now are done in the MB Suite app (CRM → Settings → Products: «New catalog», and «Sync now» in the catalog's tab), because each sync computes AI embeddings that consume AI credits.

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_catalogs_getEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.catalogs.get".

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

Parámetros

catalog_idstringrutarequerido

Id of the catalog, from crm.catalogs.list.

Respuesta

idstring
namestring
feed_urlstring
frequencyenum

Valores: manual, daily, every_6h

enabled_for_sellersboolean
statusenum

idle (never synced), syncing, ok or error (see last_error).

Valores: idle, syncing, ok, error

product_countnumber
capnumber

Most products a sync keeps; beyond it the feed is cut and last_error says cap_reached.

created_atnumber
updated_atnumber
org_idstring
formatenum | null

Detected on the first sync; null until then.

Valores: google_shopping_xml, csv

last_sync_atnumber | null
last_sync_duration_msnumber | null
last_errorstring | null

Why the last sync failed or stopped (cap_reached, unrecognized_feed_format, no AI credits…).

next_sync_atnumber | null

Next scheduled sync; null for a manual catalog.

created_by_idstring
created_by_namestring | null

Name of who added it, from their profile or the members (never the email).

updated_by_idstring
updated_by_namestring | null

Name of who last changed it.

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/catalogs/{catalog_id}" \
  -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.

curl "https://api.mb-suite.com/v1/crm/catalogs/{catalog_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
PATCH/v1/crm/catalogs/{catalog_id}

Update a synced catalog

crm.catalogs.update

EscrituraIdempotenteDesde 2026-11-01

Updates a catalog's name, sync frequency or whether AI sellers may use it. A new frequency reschedules the next sync: manual stops the scheduled ones; daily or every_6h counts from the last sync (if that time already passed, the hourly scheduler syncs it in its next run, which consumes AI credits for the changed products). The feed URL is changed only from the MB Suite app (403 catalog_feed_url_app_only with an API key or an OAuth app; sending the current URL is ignored): a new feed re-syncs the whole catalog with AI embeddings, and the app checks the AI credits first (402 ai_credits_exhausted if they are used up). Fails with no_changes if nothing is sent. Requires manage_products.

Alcance
crm:write
Permiso
Editar en el módulo · Acción del CRM: manage_products
Tool del MCP
crm_catalogs_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.catalogs.update".

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

Parámetros

catalog_idstringrutarequerido

Id of the catalog, from crm.catalogs.list.

namestringcuerpoopcional

Name shown in the app's tabs (CRM → Settings → Products) and to AI sellers, up to 120 characters.

feed_urlstring (uri)cuerpoopcional

Only from the MB Suite app: an API key or an OAuth app gets 403 catalog_feed_url_app_only (a new feed re-syncs the whole catalog with AI embeddings). Sending the current URL is ignored.

frequencyenumcuerpoopcional

How often it syncs on its own: manual (only with «Sync now» in the app), daily or every_6h.

Valores: manual, daily, every_6h

enabled_for_sellersbooleancuerpoopcional

Whether the AI sellers of the CRM may quote from this catalog.

Respuesta

oktrue

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/catalogs/{catalog_id}" \
  -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.

curl -X PATCH "https://api.mb-suite.com/v1/crm/catalogs/{catalog_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
DELETE/v1/crm/catalogs/{catalog_id}

Delete a synced catalog

crm.catalogs.delete

IrreversibleDesde 2026-11-01

Deletes a catalog: it disappears from the screen, from the scheduler and from what AI sellers can quote, and its synced products are removed right after responding. The catalog itself goes to the 30-day trash; if it is restored, its products come back with its next sync (they are a mirror of the feed), so restoring it needs AI credits left (402 ai_credits_exhausted otherwise). Requires manage_products.

Con una API key, este DELETE se ejecuta directo: el registro queda 30 días en la papelera y la respuesta trae su trash_item_id. Con un token OAuth, y por el MCP, pide dry_run → confirm_token.

Alcance
crm:write y «Permitir eliminar» (crm:delete en OAuth)
Permiso
Editar en el módulo · Acción del CRM: manage_products
Tool del MCP
crm_catalogs_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.catalogs.delete".

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

Parámetros

catalog_idstringrutarequerido

Id of the catalog, from crm.catalogs.list.

Respuesta

oktrue
trash_item_idstring

The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.

trash_item_idsarray<string>

Only when the deletion left more than one copy: all of them, the first being trash_item_id.

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errores

Ejemplo

curl -X DELETE "https://api.mb-suite.com/v1/crm/catalogs/{catalog_id}" \
  -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.

curl -X DELETE "https://api.mb-suite.com/v1/crm/catalogs/{catalog_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"