{"openapi":"3.1.0","info":{"title":"PubDia API","version":"1.0.0","description":"Agendador de posts para redes sociais. Erros no formato { erro: { codigo, mensagem, fix? } }. Criações aceitam Idempotency-Key. Rate limit por plano em X-RateLimit-Remaining."},"servers":[{"url":"https://pubdia.com"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"security":[{"bearer":[]}],"paths":{"/api/v1/accounts":{"get":{"summary":"Listar contas conectadas","tags":["accounts"]}},"/api/v1/accounts/connect-link":{"post":{"summary":"Gerar link de conexão OAuth","tags":["accounts"]}},"/api/v1/platforms/{rede}/rules":{"get":{"summary":"Regras da rede (limites e formatos)","tags":["platforms"]}},"/api/v1/media":{"get":{"summary":"Listar mídias","tags":["media"]},"post":{"summary":"Enviar mídia (multipart: arquivo, tipo)","tags":["media"]}},"/api/v1/posts":{"get":{"summary":"Listar posts","tags":["posts"]},"post":{"summary":"Criar post (aceita Idempotency-Key)","tags":["posts"]}},"/api/v1/posts/validate":{"post":{"summary":"Validar post contra as regras (dry-run)","tags":["posts"]}},"/api/v1/posts/bulk":{"post":{"summary":"Criar até 100 posts (aceita Idempotency-Key)","tags":["posts"]}},"/api/v1/posts/{id}":{"get":{"summary":"Status do post","tags":["posts"]},"patch":{"summary":"Atualizar/reagendar post","tags":["posts"]},"delete":{"summary":"Cancelar agendamento","tags":["posts"]}},"/api/v1/posts/{id}/publish":{"post":{"summary":"Publicar agora","tags":["posts"]}},"/api/v1/calendar":{"get":{"summary":"Posts por período (calendário)","tags":["calendar"]}},"/api/v1/queue":{"get":{"summary":"Horários fixos da fila","tags":["queue"]},"put":{"summary":"Definir horários fixos da fila","tags":["queue"]}},"/api/v1/usage":{"get":{"summary":"Consumo do plano","tags":["usage"]}}}}