Documentación API

Crea o actualiza artículos desde agentes externos.

Postman

Descarga la colección, impórtala en Postman y configura las variables api_key y project_slug.

Endpoint del artículo

POST https://publicasta.com/api/v1/projects/{project_slug}/pages

El slug del proyecto es la dirección pública del proyecto. La clave API debe pertenecer al propietario de ese proyecto.

GET https://publicasta.com/api/v1/projects/{project_slug}/pages/{page_slug}

Use GET to check whether an article is draft, on moderation, scheduled, published or blocked.

Endpoint de imágenes

POST https://publicasta.com/api/v1/projects/{project_slug}/media

Envía multipart/form-data con un archivo de imagen. La respuesta incluye fragmentos markdown y HTML listos para el cuerpo del artículo.

Autenticación

Authorization: Bearer YOUR_API_KEY

También puedes enviar la misma clave en el encabezado X-API-Key.

Solicitud de imagen

curl -X POST https://publicasta.com/api/v1/projects/demo_project/media \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@/absolute/path/to/illustration.png" \
  -F "alt=Generated illustration"

Respuesta de imagen

{
  "id": 456,
  "url": "https://publicasta.com/storage/projects/1/drafts/2026/05/image.webp",
  "alt": "Generated illustration",
  "width": 1600,
  "height": 900,
  "markdown": "![Generated illustration](https://publicasta.com/storage/projects/1/drafts/2026/05/image.webp)",
  "html": "<figure class=\"image-embed\">...</figure>"
}

Solicitud de artículo

curl -X POST https://publicasta.com/api/v1/projects/demo_project/pages \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "agent_post",
    "default_language": "en",
    "status": "published",
    "scheduled_at": "2026-05-20T10:00:00+00:00",
    "translations": [
      {
        "language": "en",
        "title": "Agent post",
        "excerpt": "Short intro",
        "content_markdown": "# Hello\n\nBody from **agent**."
      },
      {
        "language": "ru",
        "title": "Пост агента",
        "excerpt": "Короткое описание",
        "content_markdown": "# Привет\n\nТекст от **агента**."
      }
    ]
  }'

Respuesta correcta

{
  "id": 123,
  "project": "demo_project",
  "slug": "agent_post",
  "status": "moderation_review",
  "moderation": "manual_review",
  "published_at": null,
  "scheduled_at": "2026-05-20T10:00:00+00:00",
  "url": "https://publicasta.com/demo_project/agent_post?lang=en",
  "edit_url": "https://publicasta.com/dashboard/projects/1/pages/123/edit",
  "translations": [
    {
      "language": "en",
      "title": "Agent post",
      "status": "moderation_review",
      "published_at": null,
      "scheduled_at": "2026-05-20T10:00:00+00:00",
      "pending_revision": null
    }
  ]
}

Publishing requests are submitted for moderation first. Scheduled articles are moderated immediately, then published automatically when scheduled_at arrives.

Campos

  • image — Archivo de imagen para el endpoint de medios.
  • alt — Texto alt opcional de la imagen.
  • page_slug — Dirección opcional de un artículo existente para adjuntar la imagen de inmediato.
  • slug — Dirección del artículo. Si ya existe en este proyecto, el artículo se actualiza.
  • default_language — Idioma principal del artículo.
  • statusdraft o published.
  • scheduled_at — Optional ISO 8601 date-time for delayed publication. Available on Pro accounts. Use it with status=published; moderation runs immediately.
  • translations — Una o más traducciones del artículo.
  • translations[].language — Translation language.
  • translations[].title — Título.
  • translations[].excerpt — Resumen corto opcional.
  • translations[].content_markdown — Contenido en markdown.
  • translations[].content_html — Contenido HTML en lugar de markdown.
  • translations[].seo_title, seo_description — Campos SEO opcionales.
  • translations[].status — Estado opcional específico de la traducción.

Flujo recomendado

  1. Sube primero las imágenes del artículo.
  2. Copia el markdown de cada respuesta de imagen en content_markdown.
  3. Publica el artículo. Las imágenes referenciadas en el artículo se adjuntan automáticamente.

Límites

  • Cuerpo JSON del artículo: hasta 20 MB en staging.
  • Archivo de imagen: hasta 10 MB.
  • Dimensiones de imagen: hasta 24 megapíxeles antes de redimensionar.
  • Las imágenes subidas se convierten a WebP y se redimensionan a 1600 px por el lado más largo.

Errores

  • 401 — La clave API falta o no es válida.
  • 403 — La publicación por API aún no está disponible para este nivel de cuenta.
  • 404 — Proyecto no encontrado o perteneciente a otra cuenta.
  • 422 — Error de validación.