Tout Quilly,
au bout d’une requête.
Notes, tâches, prompts, tableaux, Drive, partage : ce que fait l’application, une clé le fait aussi — en ton nom, avec tes droits, et sous tes yeux. Ce qu’un script écrit apparaît à l’instant sur tous tes appareils.
/api/v1Démarrer
Trois gestes, et c’est parti
- 1
Crée une clé
Dans Mon compte → Clés API. Choisis lecture seule ou écriture, et une échéance si tu veux.
- 2
Ajoute l’en-tête
Authorization: Bearer aelby_sk_… sur chaque requête. Rien d’autre à configurer.
- 3
Appelle /api/v1
L’index dit à qui est la clé, ce qu’elle peut faire, et où est chaque ressource.
curl "/api/v1" \
-H "Authorization: Bearer $QUILLY_API_KEY"Clés et droits
Une clé agit en ton nom
Une requête de l’API voit exactement ce que tu vois dans l’application : tes notes, tes fichiers, mais aussi ce qu’on te partage — et rien de plus. Les mêmes règles s’appliquent, les mêmes partages, la même réserve. Une clé se révoque d’un geste dans Mon compte, et chacune garde le journal de ses appels.
Lecture seule
Lire, chercher, télécharger, remplir un prompt, corriger un texte. Idéale pour un tableau de bord ou un agent qui consulte.
Écriture
Tout ce que fait l’application : créer, modifier, ranger, partager, supprimer — 78 endpoints de plus.
La clé n’est jamais conservée en clair : seule son empreinte l’est. Garde-la hors de ton code (variable d’environnement), et jamais dans une page publique.
Réponses
Une enveloppe, toujours la même
On teste success, on lit data — ou error, dont le code est stable et le message fait pour être lu. meta.request_id (aussi dans l’en-tête X-Request-Id) retrouve une requête dans les journaux. Les listes se paginent avec limit et offset, et disent s’il en reste (has_more).
{
"success": true,
"data": {
"notes": [
"…"
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 128,
"has_more": true
}
},
"meta": {
"request_id": "5f0c…",
"timestamp": "2026-10-02T09:41:00.000Z"
}
}{
"success": false,
"error": {
"code": "validation_failed",
"message": "« title » : 500 caractères maximum"
},
"meta": {
"request_id": "9a41…",
"timestamp": "2026-10-02T09:41:00.000Z"
}
}Erreurs
Des refus qui disent pourquoi
- 401
unauthorizedunauthorizedPas de clé dans l’en-tête Authorization - 401
invalid_api_keyinvalid_api_keyClé inconnue - 401
api_key_inactiveapi_key_inactiveClé révoquée - 401
api_key_expiredapi_key_expiredClé expirée - 403
insufficient_permissioninsufficient_permissionClé en lecture seule, sur une route qui écrit - 403
forbiddenforbiddenAction non autorisée sur cet élément (partage en lecture…) - 404
resource_not_foundresource_not_foundIntrouvable — ou hors de portée, c’est volontairement pareil - 409
conflictconflictRefus avec une raison : quelqu’un écrit, partage refusé… (details.reason) - 413
payload_too_largepayload_too_largeTrop lourd pour cet appel - 422
validation_failedvalidation_failedUn champ ne convient pas — le message le nomme - 400
invalid_requestinvalid_requestCorps illisible, ou action refusée par la base - 429
rate_limit_exceededrate_limit_exceededTrop de requêtes : voir l’en-tête Retry-After - 507
insufficient_storageinsufficient_storageLa réserve ne suffit pas (details.verdict) - 503
not_configurednot_configuredUn service n’est pas configuré sur ce serveur - 502
upstream_errorupstream_errorUn service tiers (stockage, IA) n’a pas répondu - 500
internal_errorinternal_errorErreur interne —meta.request_idaide à la retrouver
Limites
De la marge, et des garde-fous
240 / min
par clé. Au-delà, 429 et l’en-tête Retry-After dit quand revenir.
4 Mo
pour un fichier envoyé d’un seul appel. Au-delà, l’envoi en trois temps, sans limite pratique.
CORS ouvert
l’API s’appelle depuis n’importe quelle origine : elle ne lit aucun cookie, seulement la clé.
Version 1.0.0. Les codes d’erreur et la forme des réponses sont stables au sein de la v1.
Compte3
Qui parle, avec quels droits, et combien de place reste.
Notes15
Écrire, ranger, retrouver. En HTML, en Markdown ou en texte brut.
Dossiers
Tâches16
Des listes, une échelle de catégories, et la coche qui suit partout — jusque dans Aelby Week.
Listes
Catégories
Prompts14
La bibliothèque, ses variables {{…}}, ses blocs, ses versions — et le remplissage, côté serveur.
Dossiers
Tableaux17
La toile sans bords : cartes, grilles, médias, formes, liens — et l’app entière, vivante, posée dessus.
Éléments
Liens
Dossiers
Drive20
Fichiers et notes rapides, rangés en dossiers — partagés ou non. Les octets ne passent jamais par nous pour les gros envois.
Envoi en trois temps
Dossiers
Dossiers partagés
Partage & contacts22
Des liens qui marchent pendant l’envoi, des contacts, et des objets ouverts à plusieurs.
Liens de partage
Contacts
Objets partagés
Post-its5
Le mur de papiers colorés.
Atelier & dictées5
La feuille d’assemblage, et l’historique de la dictée express.
Outils2
Chercher partout, corriger sans reformuler.