Catálogo de módulos
Lista os módulos disponíveis na plataforma, os instalados na loja e o catálogo com o estado de instalação de cada um.
Três formas de olhar para os módulos. catalog é a principal: todos os módulos da plataforma, cada um com o estado de instalação na sua loja (not_installed, installed_enabled, installed_disabled). available lista os módulos do catálogo sem estado. modules lista só o que já está instalado, ligado ou não. Para instalar, use o id devolvido por aqui em Instalar, configurar e remover.
Catálogo com estado
/api/v1/admin/modules/catalogAdminCatálogo com o estado de instalação
Exemplo de requisição (catálogo)
bash
curl "$BASE_URL/api/v1/admin/modules/catalog" \
-H "Authorization: Bearer $TOKEN"Resposta (catálogo)
200Catálogo (um módulo, cortado)
json
{
"modules": [
{
"id": "2c7168e9-7572-4e6b-9615-9758d55e9e35",
"name": "Payout Batches",
"slug": "payout-batches",
"version": "1.0.0",
"description": "Pagamento de sellers em lote com arquivo bancário.",
"author": "Venddor",
"category": "payments",
"is_active": true,
"config_schema": { "fields": [] },
"dependencies": ["vendor-payouts"],
"extension_points": null,
"docs_url": "/docs/guide/modules/payout-batches",
"created_at": "2026-03-25T19:32:08Z",
"updated_at": "2026-03-25T19:32:08Z",
"install_status": "installed_enabled"
}
],
"total": 59
}Campos da resposta
modulesarrayMódulos da plataforma que a loja pode ver (a operadora da plataforma pode esconder módulos de uma loja).
modules[].iduuidId do módulo no catálogo central.
modules[].namestringNome.
modules[].slugstringIdentificador de texto estável.
modules[].versionstringVersão do módulo.
modules[].descriptionstringDescrição.
modules[].authorstringAutor.
modules[].categorystringCategoria:
payments, shipping, storefront, marketing, sales, sales_channels, integrations, erp_integrations, content, checkout, analytics, productivity, admin ou general.modules[].is_activebooleanSe o módulo está ativo no catálogo da plataforma.
modules[].config_schemaobjectDescreve os campos de configuração:
fields[], cada um com key, label, type (text, number, boolean, select, password, textarea, order_status) e default.modules[].dependenciesarraySlugs dos módulos de que este depende.
modules[].extension_pointsarray|nullPontos de extensão que o módulo usa.
modules[].docs_urlstringCaminho da documentação do módulo, quando existe.
modules[].created_atstringCriação, RFC 3339.
modules[].updated_atstringÚltima alteração, RFC 3339.
modules[].install_statusstringnot_installedinstalled_enabledinstalled_disabledEstado na sua loja.
modules[].settingsobjectAjustes da instalação, quando instalado.
totalintegerQuantidade de módulos listados.
Erros (catálogo)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Módulos disponíveis
/api/v1/admin/modules/availableAdminMódulos do catálogo da plataforma
Exemplo de requisição (disponíveis)
bash
curl "$BASE_URL/api/v1/admin/modules/available" \
-H "Authorization: Bearer $TOKEN"Resposta (disponíveis)
200Módulos disponíveis (cortado)
json
{
"modules": [{
"id": "5413e5ab-abc1-46d0-986b-b186f0ec2fb3",
"name": "Google Analytics",
"slug": "google-analytics",
"version": "1.0.0",
"description": "Mede visitas e conversões da loja com o Google Analytics.",
"author": "Venddor",
"category": "marketing",
"is_active": true,
"config_schema": { "fields": [ { "key": "ga_measurement_id", "label": "ID de métrica", "type": "text", "default": "" } ] },
"dependencies": [],
"extension_points": null,
"created_at": "2026-03-21T17:48:49Z",
"updated_at": "2026-03-21T17:48:49Z"
}],
"total": 58
}Campos da resposta
modulesarrayMódulos ativos do catálogo, sem estado de instalação.
modules[].iduuidId do módulo no catálogo central.
modules[].namestringNome.
modules[].slugstringIdentificador de texto estável.
modules[].versionstringVersão do módulo.
modules[].descriptionstringDescrição.
modules[].authorstringAutor.
modules[].categorystringCategoria:
payments, shipping, storefront, marketing, sales, sales_channels, integrations, erp_integrations, content, checkout, analytics, productivity, admin ou general.modules[].is_activebooleanSe o módulo está ativo no catálogo da plataforma.
modules[].config_schemaobjectDescreve os campos de configuração:
fields[], cada um com key, label, type (text, number, boolean, select, password, textarea, order_status) e default.modules[].dependenciesarraySlugs dos módulos de que este depende.
modules[].extension_pointsarray|nullPontos de extensão que o módulo usa.
modules[].docs_urlstringCaminho da documentação do módulo, quando existe.
modules[].created_atstringCriação, RFC 3339.
modules[].updated_atstringÚltima alteração, RFC 3339.
totalintegerQuantidade.
Erros (disponíveis)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Módulos instalados
/api/v1/admin/modulesAdminMódulos instalados na loja
Exemplo de requisição (instalados)
bash
curl "$BASE_URL/api/v1/admin/modules" \
-H "Authorization: Bearer $TOKEN"Resposta (instalados)
200Instalados (um, cortado)
json
{
"modules": [{
"id": "cb14bf5e-44ba-4134-b4e5-cdeab08a8276",
"tenant_id": "dfe2555e-bfd0-41a8-9fa1-9586999f3798",
"module_id": "f72a3022-fcbd-4b2e-a516-8de94828357e",
"module_name": "Configuração de métricas",
"module_slug": "metrics-config",
"is_enabled": true,
"config": {},
"settings": {},
"installed_at": "2026-10-11T21:18:36.184951Z",
"updated_at": "2026-10-11T21:18:36.184951Z"
}],
"total": 46
}Campos da resposta
modulesarrayInstalações, ligadas ou desligadas.
modules[].iduuidId da instalação (diferente do id do módulo).
modules[].tenant_iduuidLoja.
modules[].module_iduuidId do módulo no catálogo central.
modules[].module_namestringNome do módulo.
modules[].module_slugstringSlug do módulo.
modules[].is_enabledbooleanSe está ligado na loja. Instalado não significa ligado.
modules[].configobjectConfiguração da instalação.
modules[].settingsobjectAjustes próprios do módulo (veja Ajustes do módulo).
modules[].installed_atstringQuando foi instalado.
modules[].updated_atstringÚltima alteração.
totalintegerQuantidade.
Erros (instalados)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |