API de Blog Admin
Endpoints platform-admin para el blog de Rankion: posts, categorías, gestión de autores.
La API de Blog Admin gobierna el blog de marketing propio de Rankion en rankion.ai/blog — no los artículos de tus proyectos. Es accesible exclusivamente para platform admins (redacción interna, equipo de marketing); los tokens regulares de team obtienen 403. Si lo que buscas es la API de contenidos: esa es la API de Artículos.
Contexto del módulo: Blog (Admin).
Categorías
Estructura jerárquica de tags para blog posts (p. ej. AI Visibility, Backlinks, Case Studies).
| Method | Endpoint | Descripción |
|---|---|---|
| GET | /v1/blog/categories |
Todas las categorías (ordenadas por position) |
| POST | /v1/blog/categories |
Nueva categoría. Body: {name, slug?, parent_id?, color?} |
| PUT | /v1/blog/categories/{id} |
Update |
| DELETE | /v1/blog/categories/{id} |
Eliminar — devuelve 409 si aún hay posts asignados |
curl -X POST "$BASE/blog/categories" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"name": "AI Visibility", "slug": "ai-visibility", "color": "#7C3AED"}'
Posts
Un post equivale a un artículo de blog indexable públicamente en rankion.ai/blog/{slug}.
| Method | Endpoint | Descripción |
|---|---|---|
| GET | /v1/blog/posts |
Lista, paginada. Filtros: ?status=draft|published|archived, ?category=, ?author=, ?q= |
| POST | /v1/blog/posts |
Nuevo post (ver body abajo) |
| GET | /v1/blog/posts/{id} |
Detalle con campos SEO, autor, categorías |
| PUT | /v1/blog/posts/{id} |
Update |
| DELETE | /v1/blog/posts/{id} |
Soft-delete |
Crear post
curl -X POST "$BASE/blog/posts" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"title": "Wie GEO-Scoring 2026 funktioniert",
"slug": "wie-geo-scoring-2026-funktioniert",
"content": "<p>Markdown oder HTML…</p>",
"excerpt": "GEO ist nicht nur ein Buzzword — so misst Rankion AI Visibility…",
"status": "draft",
"category_ids": [3, 7],
"author_id": 12,
"featured_image_url": "https://cdn.rankion.ai/blog/geo-2026.png",
"meta_title": "GEO-Scoring 2026 — Rankion",
"meta_description": "Wie wir AI-Visibility messen, was GEO von SEO unterscheidet, …",
"scheduled_publish_at": "2026-05-15T09:00:00Z"
}'
Response 201:
{
"data": {
"id": 188,
"slug": "wie-geo-scoring-2026-funktioniert",
"status": "draft",
"public_url": "https://rankion.ai/blog/wie-geo-scoring-2026-funktioniert",
"created_at": "2026-05-01T10:14:00Z"
}
}
Lifecycle de status
draft ─► scheduled ─► published ─► archived
│
└─► draft (rollback vía PUT)
scheduled_publish_atse voltea automáticamente apublishedal alcanzar la fecha (basado en cron, granularidad 1 min).archivedpermanece visible en la lista admin, pero responde 410 a visitantes públicos.
Gestión de autores
Los autores son usuarios de Rankion con is_blog_author=true. Un endpoint propio de autores (a fecha 2026-05) no está expuesto públicamente — la asignación va por author_id en el body del post. Los datos maestros del autor (nombre, avatar, bio) viven en el perfil de usuario.
Notas
- Solo platform admins. Todos los endpoints comprueban
is_platform_adminen el usuario del token. Los tokens regulares de team (incluso team owner) reciben403 Forbidden. - Los slugs son únicos a nivel global, no por team — si tu slug colisiona con un post existente, la API devuelve
422con un slug sugerido. - El soft-delete es reversible vía
PUT {status: "draft"}sobre el ID. El public slug queda bloqueado 30 días para que las URLs no las robe inmediatamente un nuevo post. - La featured image URL debe ser accesible por CDN — al publicar, Rankion recarga la imagen una vez vía
og-image-cachepara garantizar las previews OG. scheduled_publish_ates UTC. Convierte explícitamente desde tu zona local, si no, el post saldrá demasiado pronto/tarde.- Sin hard-delete por API. La eliminación definitiva solo es posible por el panel admin interno — la ruta DELETE es siempre soft-delete.
Relacionado: API de Artículos · Blog (Admin).