Menú de la documentación

Desarrolladores

Artículos

Endpoints GET /blogs/{blogId}/articles y GET /articles/{id} de la API de Blogenia: lista paginada y artículo completo en JSON, HTML o Markdown.

Ver como Markdown

Solo se devuelven artículos publicados. Los borradores, los programados y los pendientes de aprobación no aparecen.

Listar artículos

GET/blogs/{blogId}/articles

Lista los artículos publicados de un blog, del más reciente al más antiguo.

Parámetros de ruta

NombreTipoObligatorioDescripción
blogIdstringSíIdentificador del blog.

Parámetros de consulta

NombreTipoObligatorioDescripción
pageintegerNoPágina, desde 1 (por defecto 1, máximo 500). Ver Paginación.
limitintegerNoArtículos por página, de 1 a 50 (por defecto 20).
categorystringNoSlug de una categoría del blog. Si no existe, la lista llega vacía.
publishedAfterstringNoFecha ISO 8601: solo artículos publicados después.
statusstringNoSi lo envías, solo admite published.

Campos de la respuesta

CampoTipoDescripción
dataarrayArtículos, con los campos de la tabla siguiente.
pageintegerPágina devuelta.
limitintegerTamaño de página aplicado.
totalintegerTotal de artículos que cumplen el filtro.

Campos de cada artículo de la lista

CampoTipoDescripción
idstringIdentificador del artículo (24 caracteres hexadecimales).
titlestringTítulo.
slugstringÚltimo segmento de la URL pública.
urlstringURL pública del artículo en el blog.
excerptstringExtracto. Cadena vacía si no tiene.
publishedAtstringFecha de publicación, ISO 8601 en UTC.
updatedAtstringÚltima modificación del contenido, ISO 8601 en UTC. Si no consta, igual que publishedAt.
categoryobjectCategoría del artículo: { slug, name }. Si no tiene una propia, la categoría principal del blog.
coverImageobject | nullPortada: { url, alt }. null si el artículo no tiene.
readingMinutesnumberMinutos de lectura estimados (mínimo 1).
faqsarrayPreguntas frecuentes: [{ q, a }]. Lista vacía si no tiene.

Respuestas

CódigoCuándo
200Lista devuelta (puede estar vacía).
400Parámetro no válido, por ejemplo limit fuera de 1–50, page mayor que 500 o publishedAfter que no es una fecha.
401Clave ausente, no válida o revocada.
403Plan Free u organización suspendida.
404El blog no existe, es de otra organización o está suspendido.
429Límite del plan superado.
Petición
curl "https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0/articles?limit=5&category=reformas" \
  -H "Authorization: Bearer $BLOGENIA_API_KEY"
const res = await fetch('https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0/articles?limit=5&category=reformas', {
  headers: { Authorization: 'Bearer ' + process.env.BLOGENIA_API_KEY },
});
if (!res.ok) throw new Error('HTTP ' + res.status);
const body = await res.json();
console.log(body);
import os
import requests

res = requests.get(
    "https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0/articles",
    params={"limit": 5, "category": "reformas"},
    headers={"Authorization": "Bearer " + os.environ["BLOGENIA_API_KEY"]},
    timeout=10,
)
res.raise_for_status()
print(res.json())
Respuesta
{
  "data": [
    {
      "id": "66f1c0a2b3c4d5e6f7a8b9c1",
      "title": "¿Cuánto cuesta reformar una cocina?",
      "slug": "cuanto-cuesta-reformar-una-cocina",
      "url": "https://reformas-ejemplo.blogelia.com/cuanto-cuesta-reformar-una-cocina",
      "excerpt": "Precios orientativos y qué incluye cada partida.",
      "publishedAt": "2026-10-01T09:00:00.000Z",
      "updatedAt": "2026-10-02T10:30:00.000Z",
      "category": { "slug": "reformas", "name": "Reformas" },
      "coverImage": { "url": "https://cdn.example.com/cover.webp", "alt": "Cocina reformada" },
      "readingMinutes": 5,
      "faqs": [{ "q": "¿Cuánto tarda una reforma?", "a": "Entre dos y cuatro semanas." }]
    }
  ],
  "page": 1,
  "limit": 5,
  "total": 12
}

Obtener un artículo

GET/articles/{id}

Devuelve un artículo publicado con su contenido.

Parámetros de ruta

NombreTipoObligatorioDescripción
idstringSíIdentificador del artículo (24 caracteres hexadecimales).

Parámetros de consulta

NombreTipoObligatorioDescripción
formatstringNojson (por defecto), html o markdown. Con html o markdown la respuesta es solo el contenido, con Content-Type text/html o text/markdown.

Con format=json la respuesta tiene todos los campos de un artículo de la lista y, además, estos:

Campos adicionales (format=json)

CampoTipoDescripción
contentHtmlstringFragmento HTML saneado, listo para incrustar en tu página.
contentMarkdownstringEl mismo contenido en Markdown.
seoobject{ title, description, canonical }. Si el artículo no define los suyos, se rellenan con el título, el extracto y la url.
sponsoredbooleantrue en artículos patrocinados: sus enlaces externos llevan rel="sponsored".

Respuestas

CódigoCuándo
200Artículo devuelto.
400format no es json, html ni markdown.
401Clave ausente, no válida o revocada.
403Plan Free u organización suspendida.
404No existe, no está publicado, es de otra organización o su blog está suspendido.
429Límite del plan superado.
Petición
curl "https://api.blogelia.com/v1/articles/66f1c0a2b3c4d5e6f7a8b9c1" \
  -H "Authorization: Bearer $BLOGENIA_API_KEY"
const res = await fetch('https://api.blogelia.com/v1/articles/66f1c0a2b3c4d5e6f7a8b9c1', {
  headers: { Authorization: 'Bearer ' + process.env.BLOGENIA_API_KEY },
});
if (!res.ok) throw new Error('HTTP ' + res.status);
const body = await res.json();
console.log(body);
import os
import requests

res = requests.get(
    "https://api.blogelia.com/v1/articles/66f1c0a2b3c4d5e6f7a8b9c1",
    headers={"Authorization": "Bearer " + os.environ["BLOGENIA_API_KEY"]},
    timeout=10,
)
res.raise_for_status()
print(res.json())
Respuesta
{
  "id": "66f1c0a2b3c4d5e6f7a8b9c1",
  "title": "¿Cuánto cuesta reformar una cocina?",
  "slug": "cuanto-cuesta-reformar-una-cocina",
  "url": "https://reformas-ejemplo.blogelia.com/cuanto-cuesta-reformar-una-cocina",
  "excerpt": "Precios orientativos y qué incluye cada partida.",
  "publishedAt": "2026-10-01T09:00:00.000Z",
  "updatedAt": "2026-10-02T10:30:00.000Z",
  "category": { "slug": "reformas", "name": "Reformas" },
  "coverImage": null,
  "readingMinutes": 5,
  "faqs": [],
  "contentHtml": "<h2>Precio medio</h2><p>…</p>",
  "contentMarkdown": "## Precio medio\n\n…",
  "seo": {
    "title": "¿Cuánto cuesta reformar una cocina?",
    "description": "Precios orientativos y qué incluye cada partida.",
    "canonical": "https://reformas-ejemplo.blogelia.com/cuanto-cuesta-reformar-una-cocina"
  },
  "sponsored": false
}
Solo el HTML o el Markdown
curl "https://api.blogelia.com/v1/articles/66f1c0a2b3c4d5e6f7a8b9c1?format=markdown" \
  -H "Authorization: Bearer $BLOGENIA_API_KEY"