PlainMote

API HTTP

Les scripts appellent /api/v1 avec un jeton d’accès personnel, obtenu par autorisation d’appareil comme le fait plainmote login.

Obtenir un jeton
  1. Demandez un code. scope vaut read ou write ; device est le nom affiché lors de l’approbation et dans Applications autorisées.

    $ curl -X POST -H 'Content-Type: application/json' \ -d '{"scope": "read", "device": "my-script"}' https://plainmote.link/api/v1/device/code
  2. Ouvrez https://plainmote.link/cli/device dans un navigateur connecté, saisissez le user_code de la réponse et autorisez.

  3. Interrogez avec le device_code toutes les interval secondes. Tant que le code n’est pas autorisé, la réponse est 400 authorization_pending ; ensuite elle contient access_token.

    $ curl -X POST -H 'Content-Type: application/json' \ -d '{"device_code": "…"}' https://plainmote.link/api/v1/device/token
  4. Envoyez le jeton dans l’en-tête Authorization. Un jeton dans l’adresse ou dans un cookie n’est pas accepté.

    $ curl -H "Authorization: Bearer $PLAINMOTE_TOKEN" https://plainmote.link/api/v1/resources
Points d’accès
RequêteAccèsRôle
POST /api/v1/device/codeSans jetonDemander un code
POST /api/v1/device/tokenSans jetonÉchanger le code contre un jeton
GET /api/v1/mereadLe compte et le jeton utilisés
GET /api/v1/keyringreadLe trousseau du compte, pour les ressources chiffrées
GET /api/v1/resourcesreadLister les ressources ; q filtre par nom, tag par étiquette
GET /api/v1/resources/{id}readDétails d’une ressource
GET /api/v1/resources/{id}/contentreadLire le contenu octet pour octet
PUT /api/v1/resources/{id}/contentwriteEnregistrer une nouvelle version ; If-Match indique la version de départ
POST /api/v1/resourceswriteCréer une ressource à partir d’un fichier content en multipart ; les champs tag l’étiquettent
PATCH /api/v1/resources/{id}/tagswriteAjouter et retirer les étiquettes d’une ressource
GET /api/v1/tagsreadLister les étiquettes du compte avec leur nombre
POST /api/v1/quick-shareswriteCréer un partage rapide et renvoyer son lien
DELETE /api/v1/tokenreadRévoquer le jeton utilisé
Conventions
FormatJSON, sauf la lecture et l’enregistrement du contenu, en octets bruts. Les dates sont en RFC 3339, UTC.
Erreurs{"error": "<code>", "message": "…"}
JetonsValables 90 jours après la connexion. Un jeton en lecture seule reçoit 403 des points d’accès d’écriture.
Limite de débit300 requêtes par jeton et par minute ; au-delà, 429 rate_limited.
Contenu chiffréRenvoyé chiffré ; le client le déchiffre avec le mot de passe principal.
Non disponibleSupprimer des ressources, gérer les liens de partage, consulter l’historique des accès.

La référence complète, avec les formats de requête et de réponse, se trouve dans le code source : docs/api.md