Escribes en el blog desde el panel de Jazui y lo muestras en tu web con esta API, con tu propio diseño. Cada artículo trae su HTML, su versión en Markdown, el <head> completo para SEO (título, descripción, canonical, hreflang, Open Graph y datos estructurados), el índice, las traducciones y los enlaces para compartir.
Usa el PUBLIC Token: es de solo lectura y se puede poner en el navegador. La API admite peticiones desde cualquier dominio (CORS), solo de lectura.
Direcciones
| Ruta | Parámetros | Devuelve |
|---|---|---|
GET /v2/blog/articles | site, lang, category, tag, q, page (1), pageSize (10, máx. 50) | Página de resúmenes, del más reciente al más antiguo. |
GET /v2/blog/articles/{slug} | site, lang, format | Un artículo completo. |
GET /v2/blog/articles/by-id/{id} | format | Un artículo por su identificador. |
GET /v2/blog/articles/{slug}/related | site, lang, count (4, máx. 12) | Artículos relacionados. |
GET /v2/blog/categories | site, lang | Categorías, también las que aún no tienen artículos. |
GET /v2/blog/tags | site | Etiquetas con artículos. |
GET /v2/blog/feed/{site}/rss | lang | RSS 2.0, sin token. |
GET /v2/blog/feed/{site}/atom | lang | Atom 1.0, sin token. |
site es el dominio del sitio (misitio.com; se aceptan también https://, mayúsculas y rutas, que se quitan). Si gestionas varios sitios, ponlo siempre: así cada web solo ve sus artículos. Solo se devuelven artículos publicados o programados cuya fecha ya ha pasado.
Listado
category incluye también las subcategorías; q busca en el título, el resumen, las etiquetas y el contenido.
curl -H "Authorization: Bearer $JAZUI_PUBLIC_TOKEN" \
"https://api.jazui.com/v2/blog/articles?site=misitio.com&lang=es&category=guias&page=1&pageSize=10"{
"items": [
{
"id": "7c1d0e2f-…",
"slug": "como-funciona-el-prerender",
"url": "https://misitio.com/blog/como-funciona-el-prerender",
"site": "misitio.com",
"language": "es",
"title": "Cómo funciona el prerender",
"summary": "Qué ven los bots de una SPA y cómo servirles el HTML completo.",
"author": "Ana Pérez",
"coverUrl": "https://api.jazui.com/Upload/Blog/…/portada.webp",
"publishedDate": "2026-11-02T10:00:00Z",
"updatedDate": "2026-11-03T08:15:00Z",
"readingMinutes": 6,
"categories": [{ "slug": "guias", "name": "Guías" }],
"tags": [{ "slug": "seo", "name": "SEO" }]
}
],
"page": 1,
"pageSize": 10,
"totalItems": 24,
"totalPages": 3
}Un artículo
format decide qué contenido viene: html (por defecto), md (solo Markdown) o both. markdownUrl viene siempre: es la versión Markdown pública del artículo, pensada para la IA.
curl -H "Authorization: Bearer $JAZUI_PUBLIC_TOKEN" \
"https://api.jazui.com/v2/blog/articles/como-funciona-el-prerender?site=misitio.com&lang=es&format=both"{
"id": "7c1d0e2f-…",
"slug": "como-funciona-el-prerender",
"url": "https://misitio.com/blog/como-funciona-el-prerender",
"title": "Cómo funciona el prerender",
"html": "<h2 id=\"que-ven-los-bots\">Qué ven los bots</h2><p>…</p>",
"markdown": "## Qué ven los bots\n\n…",
"markdownUrl": "https://api.jazui.com/v2/sites/misitio.com/articles/es/como-funciona-el-prerender.md",
"head": "<title>Cómo funciona el prerender</title><meta name=\"description\" …><script type=\"application/ld+json\">…</script>",
"wordCount": 1240,
"tableOfContents": [{ "level": 2, "id": "que-ven-los-bots", "text": "Qué ven los bots" }],
"translations": [{ "language": "en", "slug": "how-prerendering-works", "url": "https://misitio.com/blog/how-prerendering-works" }],
"metaTitle": "Cómo funciona el prerender | Mi sitio",
"metaDescription": "Qué ven los bots de una SPA y cómo servirles el HTML completo.",
"canonical": "https://misitio.com/blog/como-funciona-el-prerender",
"socialImage": "https://api.jazui.com/Upload/Blog/…/portada.webp",
"noIndex": false,
"share": [{ "network": "linkedin", "name": "LinkedIn", "url": "https://www.linkedin.com/sharing/share-offsite/?url=…" }],
"shareHtml": "<div class=\"jazui-share\">…</div>"
}headtrae las etiquetas para el<head>de tu página del artículo: inclúyelas tal cual para que buscadores, redes e IA lo entiendan.tableOfContentsson los títulosh2yh3con suid, para un índice con enlaces.translationslleva el mismo artículo en otros idiomas.- Si tu plan lleva la insignia en los artículos, el HTML termina con «Publicado con Jazui».
Categorías y etiquetas
Las categorías vienen ordenadas por su orden y su nombre, con parentSlug para las subcategorías y articleCount. Las etiquetas solo aparecen si tienen artículos.
[
{
"slug": "guias",
"name": "Guías",
"description": "Paso a paso para sacar partido a tu web.",
"icon": null,
"language": "es",
"site": "misitio.com",
"order": 1,
"parentSlug": null,
"articleCount": 12
}
]RSS y Atom
Los 20 artículos más recientes de un sitio verificado, con el contenido completo. No necesitan token.
# Sin token: para lectores de RSS y agregadores
curl https://api.jazui.com/v2/blog/feed/misitio.com/rss?lang=es
curl https://api.jazui.com/v2/blog/feed/misitio.com/atom?lang=esDesde el navegador
Un ejemplo mínimo con fetch. Si tu web es una SPA, recuerda que los bots ven el blog gracias a tu integración de Jazui:
const API = 'https://api.jazui.com/v2/blog';
const TOKEN = 'TU_PUBLIC_TOKEN'; // solo lectura: se puede usar en el navegador
async function articulos(pagina = 1) {
const url = `${API}/articles?site=misitio.com&lang=es&page=${pagina}&pageSize=9`;
const response = await fetch(url, { headers: { Authorization: `Bearer ${TOKEN}` } });
if (!response.ok) throw new Error(`Blog: ${response.status}`);
return response.json(); // { items, page, pageSize, totalItems, totalPages }
}
async function articulo(slug) {
const url = `${API}/articles/${encodeURIComponent(slug)}?site=misitio.com&lang=es`;
const response = await fetch(url, { headers: { Authorization: `Bearer ${TOKEN}` } });
if (response.status === 404) return null;
const data = await response.json();
document.head.insertAdjacentHTML('beforeend', data.head); // título, metas y JSON-LD
return data;
}Caché
Cada respuesta lleva un ETag. Envíalo en If-None-Match y recibirás 304 sin cuerpo si nada ha cambiado. Los feeds se pueden guardar 15 minutos.
Errores
404 not_found: el artículo no existe o no está publicado.400 ambiguous: hay artículos con eseslugen varios sitios; añade?site=.