Skip to content

Widgets Embebibles

Cread y gestionad widgets embebibles para vuestro sitio web. Los widgets proporcionan componentes de interfaz de usuario listos para usar con funcionalidades astrológicas que pueden integrarse en cualquier página web con una sola etiqueta de script.

Módulo Requerido

Todos los endpoints de widgets requieren el módulo module:embeddable-widgets activado para vuestra organización.


Tipos de Widget

Los siguientes tipos de widget están disponibles según vuestros módulos activos:

TipoDescripciónMódulo Requerido
natalCarta natal interactivanatal:calc
synastryCarta de comparación de sinastríasynastry:calc
transitSuperposición de carta de tránsitotransit:calc
compositeCarta compuesta de relacióncomposite:calc
moonphaseVisualización de la fase lunarmoonphase:calc
daily-horoscopeHoróscopo diario para todos los signosmodule:daily-report
numerologyFormulario de perfil numerológicomodule:numerology
compatibilityCompatibilidad de signos solarescompatibility:calc
moon-calendarCalendario lunar mensualmoon-calendar:calc

Gestión de Widgets

Listar Widgets

bash
curl "https://api.astroapi.cloud/api/widgets" \
  -H "X-Api-Key: your-api-key"

Obtener Widget

bash
curl "https://api.astroapi.cloud/api/widgets/wgt_abc123" \
  -H "X-Api-Key: your-api-key"

Crear Widget

Los widgets se crean usando el formato JSON:API:

bash
curl -X POST "https://api.astroapi.cloud/api/widgets" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "widgets",
      "attributes": {
        "name": "My Natal Chart Widget",
        "widgetType": "natal",
        "allowedDomains": ["example.com", "www.example.com"],
        "customization": {
          "language": "en",
          "layout": "card",
          "colors": {
            "primary": "#5b2d8e",
            "background": "#ffffff",
            "text": "#1a1a1a"
          },
          "widgetOptions": {
            "showAspects": true,
            "showPoints": true,
            "showHouses": true,
            "chartSize": 500,
            "theme": "light"
          }
        }
      }
    }
  }'

Actualizar Widget

bash
curl -X PATCH "https://api.astroapi.cloud/api/widgets/wgt_abc123" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "widgets",
      "id": "wgt_abc123",
      "attributes": {
        "name": "Updated Widget Name",
        "customization": {
          "language": "nl"
        }
      }
    }
  }'

Eliminar Widget

bash
curl -X DELETE "https://api.astroapi.cloud/api/widgets/wgt_abc123" \
  -H "X-Api-Key: your-api-key"

Respuesta del Widget

json
{
    "data": {
        "type": "widgets",
        "id": "wgt_abc123",
        "attributes": {
            "name": "My Natal Chart Widget",
            "widgetType": "natal",
            "allowedDomains": ["example.com", "www.example.com"],
            "embedCode": "<script src=\"https://cdn.astroapi.cloud/widget.js\" data-widget-id=\"wgt_abc123\"></script>",
            "customization": {
                "language": "en",
                "layout": "card",
                "colors": {
                    "primary": "#5b2d8e",
                    "background": "#ffffff",
                    "text": "#1a1a1a"
                },
                "widgetOptions": {
                    "showAspects": true,
                    "showPoints": true,
                    "showHouses": true,
                    "chartSize": 500,
                    "theme": "light"
                }
            },
            "createdAt": "2024-06-15T12:00:00Z",
            "updatedAt": "2024-06-15T12:00:00Z"
        }
    }
}

Regenerar Clave de API

Regenerad la clave de API embebida del widget. Usad esto si la clave ha sido comprometida:

bash
curl -X POST "https://api.astroapi.cloud/api/widgets/wgt_abc123/regenerate-key" \
  -H "X-Api-Key: your-api-key"

Rotación de Claves

Después de regenerar la clave, los embeds existentes que usen la clave antigua dejarán de funcionar inmediatamente. No necesitáis actualizar el código de embed — el ID del widget permanece igual.


Opciones de Widget Disponibles

Recuperad los tipos de widget disponibles para vuestra organización según vuestros módulos activos:

bash
curl "https://api.astroapi.cloud/api/widgets/options" \
  -H "X-Api-Key: your-api-key"

Respuesta

json
{
    "data": {
        "availableTypes": ["natal", "moonphase", "daily-horoscope"],
        "planFeatures": {
            "canRemoveBranding": false,
            "canUseCustomLogo": false,
            "canUseCustomCss": true,
            "maxDomains": 5
        }
    }
}

Funcionalidades del Plan

FuncionalidadDescripción
canRemoveBrandingSi se puede ocultar la marca de AstroAPI
canUseCustomLogoSi se puede mostrar un logo personalizado en lugar del predeterminado
canUseCustomCssSi se puede inyectar CSS personalizado en el widget
maxDomainsNúmero máximo de dominios permitidos por widget

Objeto de Personalización

El objeto customization controla la apariencia y el comportamiento del widget:

json
{
    "colors": {
        "primary": "#5b2d8e",
        "secondary": "#a07cc5",
        "background": "#ffffff",
        "text": "#1a1a1a",
        "border": "#e0e0e0"
    },
    "fonts": {
        "family": "Inter, sans-serif",
        "size": "14px"
    },
    "borders": {
        "radius": "8px",
        "width": "1px"
    },
    "spacing": {
        "padding": "16px",
        "gap": "12px"
    },
    "shadows": {
        "card": "0 2px 8px rgba(0,0,0,0.1)"
    },
    "layout": "card",
    "interaction": {
        "allowUserInput": true,
        "showTooltips": true
    },
    "branding": {
        "showPoweredBy": true,
        "logoUrl": null
    },
    "language": "en",
    "customCss": ".astroapi-widget { font-weight: 500; }",
    "widgetOptions": {
        "showAspects": true,
        "showPoints": true,
        "showHouses": true,
        "chartSize": 500,
        "theme": "light"
    }
}

Campos de Personalización

CampoTipoDescripción
colors.primarystringColor de acento principal (hex)
colors.secondarystringColor de acento secundario (hex)
colors.backgroundstringColor de fondo del widget (hex)
colors.textstringColor del texto principal (hex)
colors.borderstringColor del borde (hex)
fonts.familystringValor CSS font-family
fonts.sizestringTamaño de fuente base (valor CSS)
borders.radiusstringRadio del borde para tarjetas e inputs (valor CSS)
borders.widthstringAncho del borde (valor CSS)
spacing.paddingstringRelleno interno (valor CSS)
spacing.gapstringSeparación entre elementos (valor CSS)
shadows.cardstringCSS box-shadow para elementos de tarjeta
layoutstringEstilo de diseño del widget (ver más abajo)
interaction.allowUserInputbooleanSi los usuarios pueden introducir sus propios datos de nacimiento
interaction.showTooltipsbooleanMostrar tooltips al pasar el ratón
branding.showPoweredBybooleanMostrar el distintivo "Powered by AstroAPI"
branding.logoUrlstring | nullURL del logo personalizado (requiere canUseCustomLogo)
languagestringCódigo de idioma de visualización
customCssstring | nullInyección de CSS personalizado (requiere canUseCustomCss)
widgetOptions.showAspectsbooleanMostrar líneas de aspectos en las cartas
widgetOptions.showPointsbooleanMostrar símbolos planetarios en las cartas
widgetOptions.showHousesbooleanMostrar divisiones de casas en las cartas
widgetOptions.chartSizenumberTamaño de la carta en píxeles
widgetOptions.themestringTema de color ("light" o "dark")

Opciones de Diseño

ValorDescripción
compactEspacio mínimo, adecuado para barras laterales
cardTarjeta redondeada con sombra (predeterminado)
fullAncho completo, sin bordes
minimalSin fondo, sin bordes

Incrustar un Widget

Después de crear un widget, copiad el embedCode de la respuesta y pegadlo en el HTML de vuestro sitio web:

html
<!-- Colocad esto donde queréis que aparezca el widget -->
<div id="astroapi-widget-container"></div>

<!-- Cargad el script del widget -->
<script
    src="https://cdn.astroapi.cloud/widget.js"
    data-widget-id="wgt_abc123">
</script>

Lista de Dominios Permitidos

Los widgets solo se cargarán en los dominios listados en allowedDomains. Aseguraos de añadir todos los dominios (incluidas las variantes con www) donde planeáis incrustar el widget.

AstroAPI Documentation