# Blogs

> Endpoint GET /blogs/{blogId} de la API de Blogenia: datos públicos de un blog de tu organización.

Versión web: https://blogelia.com/docs/blogs

Un blog es el sitio donde Blogenia publica tus artículos. Esta ruta devuelve sus datos públicos.

## Obtener un blog

**`GET /blogs/{blogId}`**: Devuelve un blog de tu organización.

**Parámetros de ruta**

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `blogId` | string | Sí | Identificador del blog (24 caracteres hexadecimales). |

**Campos de la respuesta**

| Campo | Tipo | Descripción |
| --- | --- | --- |
| `id` | string | Identificador del blog. |
| `name` | string | Nombre. |
| `slug` | string | Identificador corto usado en la URL pública. |
| `url` | string | URL pública del blog (el dominio propio si está activo). |
| `description` | string | Descripción del negocio. Puede estar vacía. |
| `language` | string | Idioma del blog, por ejemplo `es`. |
| `category` | object | Categoría principal: `{ slug, name }`. |
| `author` | object | Autor que firma los artículos: `{ name, bio }`. |
| `articleCount` | integer | Artículos publicados. |

**Petición**

*curl*

```bash
curl "https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0" \
  -H "Authorization: Bearer $BLOGENIA_API_KEY"
```

*Node.js*

```js
const res = await fetch('https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0', {
  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);
```

*Python*

```python
import os
import requests

res = requests.get(
    "https://api.blogelia.com/v1/blogs/66f1c0a2b3c4d5e6f7a8b9c0",
    headers={"Authorization": "Bearer " + os.environ["BLOGENIA_API_KEY"]},
    timeout=10,
)
res.raise_for_status()
print(res.json())
```

**Respuesta**

```json
{
  "id": "66f1c0a2b3c4d5e6f7a8b9c0",
  "name": "Reformas Ejemplo",
  "slug": "reformas-ejemplo",
  "url": "https://reformas-ejemplo.blogelia.com",
  "description": "Reformas integrales en Madrid desde 2008.",
  "language": "es",
  "category": { "slug": "reformas", "name": "Reformas" },
  "author": {
    "name": "Reformas Ejemplo",
    "bio": "Reformas integrales en Madrid desde 2008."
  },
  "articleCount": 12
}
```

**Respuestas**

| Código | Cuándo |
| --- | --- |
| `200` | El blog existe y es de tu organización. |
| `401` | Clave ausente, no válida o revocada. |
| `403` | Plan Free u organización suspendida. |
| `404` | El blog no existe, es de otra organización o está suspendido. |
| `429` | Límite del plan superado. |
