API de Amazi
Datos públicos
Consulta planes, documentos legales, banners y cuestionarios sin autenticación.
Puntos finales anónimos disponibles
Utilice estos puntos finales para mostrar la información pública actual de Amazi en su sitio web o en una aplicación. La base API externa URL es https://api.amazi.ai/v1.. La tabla muestra las rutas completas relativas a https://api.amazi.ai;, no agregue un prefijo /api adicional ni repita /v1.
Actualice las integraciones existentes de /public/plans, /public/privacy-policy, /public/terms-of-use, /public/chat-banners, /public/chat-banners/page-top y /public/poll a las rutas /v1 correspondientes a continuación. Las URL anteriores se eliminan y devuelven HTTP 404; no hay redirecciones ni alias de compatibilidad.
| Método y camino | Respuesta | Acceso al navegador desde otro sitio web |
|---|---|---|
| OBTENER /v1/planes | Objeto con freePlan y planes. | Cualquier origen, sin cookies |
| OBTENER /v1/política-de-privacidad | Política de privacidad | Cualquier origen, sin cookies |
| OBTENER /v1/términos-de-uso | Condiciones de uso | Cualquier origen, sin cookies |
| OBTENER /v1/banners de chat | Conjunto de banners de chat activos | Cualquier origen, sin cookies |
| OBTENER /v1/chat-banners/parte superior de la página | Conjunto de banners activos en la parte superior de la página | Cualquier origen, sin cookies |
| OBTENER /v1/encuesta | Objeto con el cuestionario habilitado en encuesta, o encuesta: nulo | Cualquier origen, sin cookies |
Las seis solicitudes no requieren inicio de sesión, clave API, cuerpo de solicitud ni parámetros de consulta. Leen información y no la cambian. No tienen paginación documentada ni parámetros de filtrado. HEAD devuelve encabezados sin cuerpo. OPCIONES maneja la verificación previa del navegador; no recupera datos.
Idioma y formato
Las solicitudes GET exitosas devuelven HTTP 200 con JSON. Envíe Accept-Language: en, Accept-Language: es o Accept-Language: ru. Los idiomas faltantes o no admitidos vuelven al inglés. Un parámetro de consulta de configuración regional no selecciona el idioma en estos puntos finales.
Los campos con un sufijo de idioma, como titleEn, titleRu y titleEs, contienen las traducciones publicadas. El campo sin sufijo, como title, contiene el idioma solicitado. Si ese texto está vacío, la API usa el inglés y después otra traducción disponible. Las respuestas varían según Accept-Language; mantén separadas las entradas de caché de cada idioma.
Planes: OBTENER /v1/planes
La respuesta contiene freePlan, un objeto que describe el plan gratuito y planes, una serie de planes pagos activos en orden de catálogo. Se excluyen las duraciones archivadas y las opciones de crédito; También se excluyen las duraciones sin opciones restantes. Las matrices pueden estar vacías. Lea los valores actuales del API en lugar de incorporar precios o límites en su aplicación.
Tanto los planes gratuitos como los de pago contienen:
| Campos | Significado |
|---|---|
| title, titleEn, titleRu, titleEs | Nombre del plan |
| descriptionLineOne, descriptionLineOneEn, descriptionLineOneRu, descriptionLineOneEs, descriptionLineTwo, descriptionLineTwoEn, descriptionLineTwoRu, descriptionLineTwoEs | Dos líneas descriptivas; cada nombre indica un campo separado |
| includedSections | Matriz de secciones con title, titleEn, titleRu, titleEs y contentMarkdown, contentMarkdownEn, contentMarkdownRu, contentMarkdownEs |
| availableFunctions | Conjunto de claves de funciones, como canManageProjectCode o canShareProject |
| maxProjects, maxAppsPerProject | Límites del plan entero; nulo significa que el plan no establece ese límite |
| mainColor | Color de visualización del plano |
freePlan también tiene importes de crédito enteros: monthlyCredits, registrationCredits, paidPlanCompletionCredits y phoneVerificationCredits. Estos describen los valores del catálogo, no el saldo de un visitante. Consulte Planes y créditos para saber cómo funcionan los créditos.
Cada elemento de planes también contiene id (UUID), order (entero), isActive, isPopular, creditsDoNotExpire (booleanos) y duraciones (matriz).
Cada duración tiene id, meses, creditAccumulationMonths, creditsDoNotExpire, creditOptions y opcional isArchived. Cada opción de crédito tiene id, créditos, precio, isNegotiatedPrice y opcional isArchived. Para las opciones fijas, los créditos y el precio son números enteros no negativos. En api.amazi.pro, el precio es el precio total en rublos durante el período seleccionado, no en kopeks ni en un precio mensual. Si isNegotiatedPrice es verdadero, los créditos y el precio son nulos: muestra los términos negociados en lugar de cero. Utilice la configuración de vencimiento del crédito de la duración seleccionada.
Para las opciones fijas, los créditos son la asignación de crédito mensual, mientras que los meses son la duración del plazo de compra. creditAccumulationMonths describe el período de prórroga del crédito; creditsDoNotExpire marca créditos sin vencimiento.
Este punto final no devuelve la suscripción, el saldo, los descuentos personales ni el resultado del pago de un usuario que haya iniciado sesión.
Documentos legales
Utilice GET /v1/privacy-policy para la política de privacidad o GET /v1/terms-of-use para los términos de uso. Cada punto final devuelve solo el documento solicitado como un objeto con campos de cadena:
| Campos | Significado |
|---|---|
| contentMarkdownRu, contentMarkdownEn, contentMarkdownEs | El documento solicitado en ruso, inglés y español. |
| contentMarkdown | El documento solicitado seleccionado para el idioma de solicitud. |
| acceptanceUpdateTitle | Título de la última solicitud para aceptar documentos actualizados; puede estar vacío |
Los cuerpos de los documentos son Markdown. Un cuerpo vacío significa que el texto no ha sido publicado. La lectura del punto final no registra la aceptación de nadie. La respuesta utiliza Cache-Control: no-store; no la conserve como una copia en caché de la política actual.
Reemplace las llamadas a la ruta anterior /public/documents con el punto final del documento que necesita. La ruta anterior ya no está disponible.
Banners de chat: OBTENER /v1/chat-banners
La respuesta es una matriz, sin objeto envolvente. Contiene banners de chat no archivados en el orden almacenado. Una matriz vacía significa que no hay banners de chat activos. No incluye banners en la parte superior de la página ni el estado de despido de un visitante.
| Campos en cada banner | Significado |
|---|---|
| identificación | Pancarta UUID |
| contentMarkdownRu, contentMarkdownEn, contentMarkdownEs, contentMarkdown | Texto Markdown y su valor de idioma seleccionado |
| iconName | Identificador de icono |
| iconColor | Color del icono #RRGGBB opcional; nulo u omisión utiliza el color del icono predeterminado de la interfaz |
| linkUrl | HTTP(S) URL o ruta relativa a la raíz |
| openInNewTab | Si abrir el enlace en una nueva pestaña |
| archivado | Booleano opcional; los banners archivados se filtran |
| pancarta | Configuraciones de visualización opcionales: backgroundColor y textColor como cadenas #RRGGBB, peso como un número entero |
Los valores linkUrl relativos a la raíz se refieren a la aplicación web Amazi. Resuélvalos con https://app.amazi.pro, para que /settings no envíe visitantes a la página de configuración de su propio sitio web.
Banners en la parte superior de la página: GET /v1/chat-banners/page-top
La respuesta es una matriz de banners superiores de página no archivados en el orden almacenado, o una matriz vacía. Los campos coinciden con los banners de chat, excepto que linkUrl puede ser una cadena vacía (sin destino) y se requiere banner con backgroundColor, textColor y peso. El peso almacenado no determina el orden de visualización. La selección de idioma funciona de la misma manera.
Este punto final contiene anuncios configurados en la parte superior de la página. No incluye avisos de mantenimiento, invitaciones a cuestionarios, mensajes de bandeja de entrada ni estado de salida de un visitante. Leerlo no descarta una pancarta.
Cuestionario: GET /v1/encuesta
La respuesta es { "poll": null } cuando el cuestionario está deshabilitado o no se ha configurado. De lo contrario, encuesta contiene revisión (entero no negativo), completionEpoch opcional (entero no negativo) y definición, el cuestionario habilitado. La respuesta utiliza Cache-Control: no-store.
| Campos en definición | Significado |
|---|---|
| title, titleEn, titleRu, titleEs, iconName | Título de la invitación e identificador de icono |
| iconColor | Color del icono #RRGGBB opcional; nulo u omisión utiliza el color del icono predeterminado de la interfaz |
| previewTitle, previewTitleEn, previewTitleRu, previewTitleEs, previewDescription, previewDescriptionEn, previewDescriptionRu, previewDescriptionEs | Título y descripción de la introducción; puede estar vacío |
| habilitado, bonusCredits | Bandera habilitada; recompensa de finalización en créditos, o nula si no hay recompensa |
| pancarta | backgroundColor y textColor opcionales como cadenas #RRGGBB y peso entero |
| startQuestionId, preguntas | Primera pregunta UUID y serie de preguntas |
Cada pregunta tiene id, title, titleEn, titleRu, titleEs, type (single o multiple), options y nextQuestionId (UUID o nulo). Cada opción tiene id, label, labelEn, labelRu, labelEs, opcional isCustom y nextQuestionId (UUID, final o nulo). Las respuestas de opción única siguen la transición de la opción, volviendo a la transición de la pregunta; Las respuestas de opción múltiple utilizan la transición de la pregunta. Una transición final nula o fin finaliza el cuestionario. Una opción personalizada permite al visitante ingresar texto.
La respuesta no contiene respuestas, estado de finalización ni otros datos del usuario, incluso cuando la solicitud tiene una sesión de usuario. No envía respuestas ni otorga créditos. Las recompensas por enviar respuestas y completarlas requieren una cuenta iniciada a través del flujo de trabajo del cuestionario existente; no hay un punto final de envío público.
Solicitar ejemplos
Estas solicitudes de terminal o backend funcionan sin credenciales:
Para los seis puntos finales, un navegador puede solicitar el API directamente:
~~~javascript const respuesta = await fetch("https://api.amazi.ai/v1/plans", { headers: { "Accept-Language": "en" }, credenciales: "omitir", }); if (!response.ok) throw new Error("No se pueden cargar planes: " + respuesta.status); const { freePlan, planes } = await response.json(); console.log(freePlan.title, planes.map((plan) => plan.title)); ~~~
## Acceso al navegador y errores
Los seis puntos finales públicos, incluidos los documentos legales, permiten GET, HEAD y OPTIONS de origen cruzado desde cualquier sitio web sin credenciales. Utilice credenciales: "omitir" y no envíe cookies ni Authorization para estas lecturas. Los documentos legales todavía no se almacenan para que los visitantes reciban el texto actual.
Verifique el estado del HTTP antes de leer una respuesta como datos exitosos. Distinga los errores HTTP de las fallas de red o CORS y muestre un estado no disponible cuando falla una solicitud. Render devolvió Markdown con un renderizador Markdown seguro. Acepte campos JSON desconocidos y tamaños de catálogo variables; Los campos opcionales y las matrices vacías son normales. Los datos del catálogo público no otorgan permisos de cuenta o proyecto.