{"openapi":"3.1.0","info":{"title":"Posty API","version":"1.0.0","description":"API HTTP de Posty para consultar proyectos, workflows y publicaciones, y ejecutar acciones autorizadas.","contact":{"email":"support@posty.fun","url":"https://posty.fun"}},"servers":[{"url":"https://posty.fun","description":"Posty producción"}],"externalDocs":{"description":"Guía para agentes y MCP","url":"https://posty.fun/developers"},"tags":[{"name":"Public","description":"Descubrimiento y capabilities sin autenticación."},{"name":"Content","description":"Contenido del workspace autenticado."},{"name":"Workflows","description":"Workflows del workspace autenticado."}],"security":[{"bearerAuth":[]}],"paths":{"/api/v1/health":{"get":{"tags":["Public"],"operationId":"getAgenticHealth","summary":"Comprueba disponibilidad de la API","description":"Devuelve una respuesta mínima para comprobar que la API pública de Posty está disponible.","security":[],"responses":{"200":{"description":"Servicio disponible","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/api/v1/capabilities":{"get":{"tags":["Public"],"operationId":"getAgenticCapabilities","summary":"Descubre las capacidades de Posty","description":"Devuelve las capacidades que un agente puede descubrir antes de autenticarse.","security":[],"responses":{"200":{"description":"Capacidades públicas","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Capabilities"}}}}}}},"/api/state":{"get":{"tags":["Content"],"operationId":"getWorkspaceState","summary":"Lista proyectos, publicaciones y workflows del workspace","description":"Lista el estado visible del workspace asociado al token, incluyendo proyectos, publicaciones y workflows activos.","responses":{"200":{"description":"Estado del workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceState"}}}},"401":{"description":"Token inválido o sesión vencida","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/workflows":{"get":{"tags":["Workflows"],"operationId":"listWorkflows","summary":"Lista workflows del workspace","description":"Lista los workflows activos del workspace asociado al token.","responses":{"200":{"description":"Workflows del workspace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowList"}}}}}},"post":{"tags":["Workflows"],"operationId":"createWorkflow","summary":"Crea un workflow con revisión y programación","description":"Crea un workflow en una marca accesible al token. El servidor valida permisos, límites del plan y configuración de programación.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowInput"}}}},"responses":{"201":{"description":"Workflow creado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflow"}}}},"400":{"description":"Payload inválido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/posts/{id}":{"get":{"tags":["Content"],"operationId":"getPost","summary":"Obtiene una publicación del workspace","description":"Obtiene una publicación visible para el workspace asociado al token.","parameters":[{"$ref":"#/components/parameters/PostId"}],"responses":{"200":{"description":"Publicación","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"404":{"description":"Publicación no encontrada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/posts/{id}/approve":{"post":{"tags":["Content"],"operationId":"approvePost","summary":"Aprueba una publicación","description":"Aprueba una publicación que está esperando revisión, respetando el rol del usuario y la marca.","parameters":[{"$ref":"#/components/parameters/PostId"}],"responses":{"200":{"description":"Publicación aprobada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"404":{"description":"Publicación no encontrada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/posts/{id}/schedule":{"post":{"tags":["Content"],"operationId":"schedulePost","summary":"Programa una publicación en una fecha futura","description":"Programa una publicación en una fecha ISO 8601 válida después de ejecutar las validaciones del servidor.","parameters":[{"$ref":"#/components/parameters/PostId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleInput"}}}},"responses":{"200":{"description":"Publicación programada","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"400":{"description":"Fecha inválida","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/posts/{id}/publish":{"post":{"tags":["Content"],"operationId":"publishPost","summary":"Publica una publicación aprobada","description":"Envía una publicación aprobada a las redes compatibles y devuelve el resultado del preflight y de la publicación.","parameters":[{"$ref":"#/components/parameters/PostId"}],"responses":{"200":{"description":"Publicación enviada a la red","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"400":{"description":"Preflight o plataforma inválida","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"posty_…","description":"Token generado en Ajustes → Conector MCP/API. Nunca lo compartas en URLs."}},"parameters":{"PostId":{"name":"id","in":"path","required":true,"description":"Identificador de la publicación.","schema":{"type":"string","minLength":1}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Mensaje de error legible."}}},"Health":{"type":"object","required":["ok","service"],"properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"apiVersion":{"type":"string"}}},"Capabilities":{"type":"object","required":["service","apiVersion","authentication","capabilities"],"properties":{"service":{"type":"string"},"apiVersion":{"type":"string"},"authentication":{"type":"object","properties":{"type":{"type":"string"},"documentation":{"type":"string","format":"uri"}}},"capabilities":{"type":"array","items":{"type":"string"}}}},"Project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"timezone":{"type":"string"}}},"Post":{"type":"object","properties":{"id":{"type":"string"},"brandId":{"type":"string"},"status":{"type":"string"},"copy":{"type":"object"},"createdAt":{"type":"string","format":"date-time"}}},"Workflow":{"type":"object","properties":{"id":{"type":"string"},"brandId":{"type":"string"},"name":{"type":"string"},"active":{"type":"boolean"},"trigger":{"type":"object"},"ideas":{"type":"object"},"scheduleOut":{"type":"object"}}},"WorkflowList":{"type":"object","required":["workflows"],"properties":{"workflows":{"type":"array","items":{"$ref":"#/components/schemas/Workflow"}}}},"WorkflowInput":{"type":"object","required":["name","brandId"],"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"brandId":{"type":"string"},"platforms":{"type":"array","items":{"type":"string"}},"trigger":{"type":"object"},"ideas":{"type":"object"},"review":{"type":"object"},"scheduleOut":{"type":"object"}}},"ScheduleInput":{"type":"object","required":["scheduledAt"],"properties":{"scheduledAt":{"type":"string","format":"date-time"}}},"WorkspaceState":{"type":"object","properties":{"brands":{"type":"array","items":{"$ref":"#/components/schemas/Project"}},"posts":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"workflows":{"type":"array","items":{"$ref":"#/components/schemas/Workflow"}}}}}}}