API

API REST v2

Référence des points d'accès /api/v2 : documents, méthodes, métadonnées, comptage et opérations en masse, avec le format des réponses.

API REST v2

Dodock sert deux versions de l'API REST sur le même site :

VersionPréfixeDocumentsRéponse
v1/api/ ou /api/v1//api/resource/<doctype>{"data": ...} ou {"message": ...}
v2/api/v2//api/v2/document/<doctype>{"data": ...}

La v1 est décrite dans API Rest. La v2 utilise les mêmes méthodes d'authentification : session ou jeton Authorization: token api_key:api_secret.

Chaque appel s'exécute avec les permissions de l'utilisateur authentifié.

Documents

MéthodeCheminAction
GET/api/v2/document/<doctype>Liste des documents
POST/api/v2/document/<doctype>Création d'un document
GET/api/v2/document/<doctype>/<name>Lecture d'un document
PATCH ou PUT/api/v2/document/<doctype>/<name>Modification d'un document. Demande l'autorisation Écriture sur le document.
DELETE/api/v2/document/<doctype>/<name>Suppression d'un document (statut HTTP 202)
GET/api/v2/document/<doctype>/<name>/copyCopie d'un document, prête à être créée
GET ou POST/api/v2/document/<doctype>/<name>/method/<method>Appel d'une méthode whitelistée du document

Paramètres de la liste

ParamètreDéfautRôle
fieldsChamps par défautListe JSON des champs, par exemple ["name","customer","grand_total"]
filtersAucunFiltres JSON, par exemple {"status":"Draft"}
order_byTri du type de documentTri, par exemple posting_date desc
start0Décalage pour la pagination
limit20Nombre maximal de lignes
group_byAucunRegroupement
as_dicttrueLignes en objets, ou en listes si false

La réponse contient data, la liste des lignes, et has_next_page, à true s'il reste des lignes après la page.

curl -G "https://votre-site/api/v2/document/Sales%20Invoice" \
  -H "Authorization: token api_key:api_secret" \
  --data-urlencode 'fields=["name","customer","grand_total"]' \
  --data-urlencode 'filters={"docstatus":1}' \
  --data-urlencode 'limit=5'

Appeler une méthode d'un document

Le chemin /method/<method> charge le document et appelle la méthode si elle est whitelistée. GET demande le droit de lecture, POST le droit d'écriture. La réponse contient le résultat dans data, et le document à jour dans docs.

Exemple : valider une facture brouillon.

curl -X POST "https://votre-site/api/v2/document/Sales%20Invoice/ACC-SINV-2026-00012/method/submit" \
  -H "Authorization: token api_key:api_secret"

Méthodes

MéthodeCheminAction
Toutes/api/v2/method/<chemin.de.la.methode>Appel d'une méthode whitelistée, ou d'un script serveur de type API
Toutes/api/v2/method/<doctype>/<method>Appel d'une méthode whitelistée du module du type de document
POST/api/v2/method/upload_fileEnvoi d'un fichier
POST/api/v2/method/logoutDéconnexion
Toutes/api/v2/method/pingTest de disponibilité

Types de documents

MéthodeCheminAction
GET/api/v2/doctype/<doctype>/metaMétadonnées du type de document : champs, propriétés
GET/api/v2/doctype/<doctype>/countNombre de documents, avec les mêmes filters que la liste

Opérations en masse

MéthodeCheminCorps
POST/api/v2/document/<doctype>/bulk_delete{"names": [...]}
POST/api/v2/document/<doctype>/bulk_update{"docs": [{"name": ..., "champ": ...}]}
POST/api/v2/method/bulk_delete{"docs": [{"doctype": ..., "name": ...}]}, sur plusieurs types de documents
POST/api/v2/method/bulk_update{"docs": [{"doctype": ..., "name": ..., "champ": ...}]}, sur plusieurs types de documents

Au-delà de 20 documents, l'opération passe en tâche de fond et la réponse a le statut HTTP 202. La clé bulk_operation_async_threshold de la configuration du site change ce seuil, globalement ou par type de document.