# favori.ai > Gateway de publication d'artefacts statiques, agent-native. Publier un > dossier/archive renvoie une URL `https://.preview.favori.ai`. ## Auth Toutes les routes /api/v1/* (hors auth/signup, auth/login) : en-tête `Authorization: Bearer ` (API key `favori_…` recommandée, ou jeton de session via POST /api/v1/auth/login). ## Publier en un appel (recommandé) POST /api/v1/publications/upload (multipart) - mode archive : champ `archive` = .zip / .tar(.gz|.bz2|.xz) - mode fichiers : champs `files` répétés (nom de fichier = chemin relatif) - métadonnées (form) : name, visibility, password, expires_in_days, never_expire - atomique ; fichiers sensibles exclus + signalés (`skipped`) Exemple : tar czf - -C ./site . | curl -H "Authorization: Bearer $FAVORI_API_KEY" \ -F "archive=@-;filename=site.tar.gz" https://api.favori.ai/api/v1/publications/upload ## Erreurs Enveloppe stable : {"error": {"code": "...", "message": "...", "field": "..."}} Tester `code` (stable), pas `message`. ## Skill agent (Claude Code) Installation : curl -fsSL https://api.favori.ai/install.sh | bash - Skill : /skill.md - Index : /.well-known/skills/index.json - Version : /skill/version ## Découverte - OpenAPI : /openapi.json - Doc d'intégration agents : `docs/agents.md` (dépôt)