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 caminoRespuestaAcceso al navegador desde otro sitio web
OBTENER /v1/planesObjeto con freePlan y planes.Cualquier origen, sin cookies
OBTENER /v1/política-de-privacidadPolítica de privacidadCualquier origen, sin cookies
OBTENER /v1/términos-de-usoCondiciones de usoCualquier origen, sin cookies
OBTENER /v1/banners de chatConjunto de banners de chat activosCualquier origen, sin cookies
OBTENER /v1/chat-banners/parte superior de la páginaConjunto de banners activos en la parte superior de la páginaCualquier origen, sin cookies
OBTENER /v1/encuestaObjeto con el cuestionario habilitado en encuesta, o encuesta: nuloCualquier 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:

CamposSignificado
title, titleEn, titleRu, titleEsNombre del plan
descriptionLineOne, descriptionLineOneEn, descriptionLineOneRu, descriptionLineOneEs, descriptionLineTwo, descriptionLineTwoEn, descriptionLineTwoRu, descriptionLineTwoEsDos líneas descriptivas; cada nombre indica un campo separado
includedSectionsMatriz de secciones con title, titleEn, titleRu, titleEs y contentMarkdown, contentMarkdownEn, contentMarkdownRu, contentMarkdownEs
availableFunctionsConjunto de claves de funciones, como canManageProjectCode o canShareProject
maxProjects, maxAppsPerProjectLímites del plan entero; nulo significa que el plan no establece ese límite
mainColorColor 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:

CamposSignificado
contentMarkdownRu, contentMarkdownEn, contentMarkdownEsEl documento solicitado en ruso, inglés y español.
contentMarkdownEl documento solicitado seleccionado para el idioma de solicitud.
acceptanceUpdateTitleTí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 bannerSignificado
identificaciónPancarta UUID
contentMarkdownRu, contentMarkdownEn, contentMarkdownEs, contentMarkdownTexto Markdown y su valor de idioma seleccionado
iconNameIdentificador de icono
iconColorColor del icono #RRGGBB opcional; nulo u omisión utiliza el color del icono predeterminado de la interfaz
linkUrlHTTP(S) URL o ruta relativa a la raíz
openInNewTabSi abrir el enlace en una nueva pestaña
archivadoBooleano opcional; los banners archivados se filtran
pancartaConfiguraciones 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ónSignificado
title, titleEn, titleRu, titleEs, iconNameTítulo de la invitación e identificador de icono
iconColorColor del icono #RRGGBB opcional; nulo u omisión utiliza el color del icono predeterminado de la interfaz
previewTitle, previewTitleEn, previewTitleRu, previewTitleEs, previewDescription, previewDescriptionEn, previewDescriptionRu, previewDescriptionEsTítulo y descripción de la introducción; puede estar vacío
habilitado, bonusCreditsBandera habilitada; recompensa de finalización en créditos, o nula si no hay recompensa
pancartabackgroundColor y textColor opcionales como cadenas #RRGGBB y peso entero
startQuestionId, preguntasPrimera 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.