Programadores

Integre a Inmovilla nas suas ferramentas: API REST documentada com OpenAPI 3.1, servidor MCP para assistentes de IA e endpoints públicos de pesquisa e leads.

Recursos machine-readable

Quickstart

# Público — sin autenticación
curl "https://www.inmovilla.com/api/v1/search?q=crm&locale=es"

# Autenticado — Bearer token (imv_…)
curl -H "Authorization: Bearer imv_TU_TOKEN" \
  "https://www.inmovilla.com/api/v1/docs?limit=5"

# MCP (Streamable HTTP, JSON-RPC 2.0)
curl -X POST https://www.inmovilla.com/api/v1/mcp \
  -H "Authorization: Bearer imv_TU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Autenticação

Os endpoints públicos (pesquisa, contacto, demo, saúde) não requerem autenticação. Os restantes usam Bearer API tokens com prefixo imv_, criados por um administrador no painel. As permissões seguem o formato resource:action (docs:read, blog:write, curingas *:read). Guia completo em /auth.md.

Superfície da API

Módulos documentados na especificação OpenAPI. Cada operação inclui parâmetros tipados, corpo do pedido e esquema de autenticação.

DocsEntradas de documentación de la academia. Soporte multi-idioma con traducciones.GET /api/v1/docs · +7
Doc FAQsPreguntas frecuentes asociadas a entradas de documentación.GET /api/v1/docs/:id/faqs · +4
CoursesCursos de la academia. Soportan capítulos, tests, y multi-idioma.GET /api/v1/courses · +5
Course ChaptersCapítulos/lecciones de un curso.GET /api/v1/courses/:id/chapters · +4
BlogPosts del blog corporativo con soporte multi-idioma.GET /api/v1/blog · +5
Media filesBiblioteca de archivos del equipo (imágenes comprimidas, PDF, ZIP, documentos). Hotlinks de marca en `/file/<public_id>` (302 al bucket público `media-files`).GET /api/v1/media-files · +5
OAuth 2.1 (conectores MCP)Authorization server integrado para clientes MCP (Claude Desktop, ChatGPT). Registro dinámico (RFC 7591), authorization code + PKCE S256, refresh tokens rotativos y revocación (RFC 7009). Los access tokens son tokens `imv_` normales (aparecen en /admin/api con origen OAuth). Discovery: `/.well-known/oauth-authorization-server` y `/.well-known/oauth-protected-resource/api/v1/mcp`.POST /api/v1/oauth/register · +3
RedirectsRedirecciones 301 permanentes para conservar SEO al mover contenido entre URLs públicas.GET /api/v1/redirects · +6
Global BlocksBloques globales compartidos entre páginas del landing builder. Los cambios se propagan a todas las páginas vinculadas.GET /api/v1/global-blocks · +4
Landing PagesPáginas del web-editor. Modelo draft/published por página: cada `landing_page` tiene un `landing_page_version` en estado `draft` y otro en `published`. Las mutaciones impactan al draft; el cambio se hace público con `/publish`. Bloques se gestionan vía `/blocks` (reemplazo masivo) y `/reorder`. El payload de creación admite el JSON completo (slug + seo + theme_config + blocks[]) — mismo shape que el botón "Importar JSON" del editor. Catálogo live de tipos de bloque: `/api/v1/landing-blocks` (MCP: `inmovilla_list_landing_blocks` / `inmovilla_get_landing_block`).GET /api/v1/landing-blocks · +13
Landing Pages (admin-only AI)Endpoints IA del editor web. Solo accesibles con sesión admin (cookie); no expuestos vía Bearer token.POST /api/v1/landing-pages/generate
CategoriesCategorías para documentación. Soportan jerarquía padre-hijo y traducciones.GET /api/v1/categories · +5
Blog CategoriesCategorías específicas para el blog.GET /api/v1/blog-categories · +4
TagsEtiquetas para documentación, cursos y blog.GET /api/v1/tags · +4
Web Editor SettingsConfiguración global del editor web para scripts comunes de toda la web pública.GET /api/v1/web-editor/settings · +1
PromotionsPromociones y banners del sitio.GET /api/v1/promotions · +4
ContactFormulario de contacto público. Endpoint sin auth, rate-limited por IP (5/15min). Persiste el lead en la tabla `lead` (auditoría, siempre) y lo reenvía a los sinks activados en el bloque: webhook interno (CONTACT_FORM_WEBHOOK_URL) y/o Vixiee (CRM).POST /api/v1/contact
DemoFormulario de solicitud de demo. Endpoint público, rate-limited por IP (5/15min). Persiste el lead (auditoría) y lo reenvía a los sinks activados en el bloque: webhook interno (DEMO_FORM_WEBHOOK_URL) y/o Vixiee (CRM).POST /api/v1/demo