L'API REST WordPress a transformé le CMS en plateforme headless. En 2026, elle est le socle de la majorité des architectures decoupled, des applications mobiles, des dashboards Vue.js/React, et des intégrations SaaS.
Pourtant, beaucoup l'utilisent sans comprendre les mécanismes sous-jacents : authentication, permission callbacks, pagination, caching, rate limiting. Et ça finit en endpoints exposés sans contrôle, en requêtes N+1, en failles de sécurité.
Ce guide couvre tout ce qu'il faut savoir pour maîtriser l'API REST WordPress en 2026 ?" des endpoints natifs à la création de routes personnalisées, en passant par l'authentification JWT et l'API WooCommerce.
Creez un compte Volade gratuit
Debloquez les ressources membres de cet article et le pack complet Volade.
Sans carte bancaire · Les checklists publiques restent gratuites.
Les endpoints natifs de l'API REST WordPress
Ressources principales
| Endpoint | Ressource | Méthodes |
|---|---|---|
/wp/v2/posts | Articles | GET, POST |
/wp/v2/pages | Pages | GET, POST |
/wp/v2/users | Utilisateurs | GET, POST |
/wp/v2/media | Médias | GET, POST |
/wp/v2/categories | Catégories | GET, POST |
/wp/v2/tags | ?tiquettes | GET, POST |
/wp/v2/comments | Commentaires | GET, POST |
/wp/v2/block-patterns | Motifs de blocs | GET |
/wp/v2/templates | Templates | GET, POST |
/wp/v2/navigation | Menus de navigation | GET, POST |
/wp/v2/global-styles | Styles globaux (FSE) | GET, POST |
/wp/v2/plugins | Plugins | GET, POST, DELETE |
/wp/v2/settings | Réglages site | GET, PUT |
/wp/v2/themes | Thèmes | GET |
/wp/v2/search | Recherche | GET |
Utilisation basique
# Récupérer les 10 derniers articles avec pagination
curl https://votre-site.com/wp-json/wp/v2/posts?per_page=10&page=1
# Récupérer un article spécifique avec ses meta
curl https://votre-site.com/wp-json/wp/v2/posts/123?_embed=wp:term
# Créer un article (nécessite authentification)
curl -X POST https://votre-site.com/wp-json/wp/v2/posts \
-H 'Content-Type: application/json' \
-d '{"title": "Mon article", "content": "Mon contenu", "status": "publish"}'
Authentification
Comparatif des méthodes
| Méthode | Complexité | Usage typique | Sécurité |
|---|---|---|---|
| Cookie (nonce) | Faible | Thèmes, plugins côté admin | Limitée (CSRF + nonce) |
| Basic Auth | Faible | Tests, développement | Faible (en HTTPS uniquement) |
| JWT (JSON Web Token) | Moyenne | Apps headless, mobiles | ?levée (expiration, refresh) |
| OAuth 2.0 | ?levée | Apps tierces, SaaS | Très élevée (Authorization Code Flow) |
| Application Password | Faible | WP-CLI, scripts | Bonne (révocable, scope limité) |
JWT ?" configuration et utilisation
?tape 1 ?" Installer un plugin JWT (ex: JWT Authentication for WP-API)
?tape 2 ?" Configurer dans wp-config.php :
define('JWT_AUTH_SECRET_KEY', 'votre-clé-secrète-très-longue');
define('JWT_AUTH_CORS_ENABLE', true);
?tape 3 ?" Obtenir un token :
curl -X POST https://votre-site.com/wp-json/jwt-auth/v1/token \
-H 'Content-Type: application/json' \
-d '{"username": "admin", "password": "mon-mot-de-passe"}'
# Réponse : {"token": "eyJhbGciOiJIUzI1NiIs...", "user_email": "admin@site.com"}
?tape 4 ?" Utiliser le token dans les requêtes authentifiées :
curl https://votre-site.com/wp-json/wp/v2/posts \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIs...'
?tape 5 ?" Rafraîchir le token (avant expiration) :
curl -X POST https://votre-site.com/wp-json/jwt-auth/v1/token/refresh \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIs...'
Comparaison JWT vs OAuth 2.0
| Critère | JWT | OAuth 2.0 |
|---|---|---|
| Facilité d'implémentation | Simple | Complexe |
| Performance (pas de DB lookup) | Oui (token auto-portant) | Non (vérification serveur) |
| Révocation immédiate | Non (sauf blacklist) | Oui (Authorization Server) |
| Idéal pour | Apps first-party, mobile | Apps tierces, API publique |
| Expiration | Intégrée (claim exp) | Via Access Token + Refresh Token |
| Maturité sur WordPress | Très bonne (plugins matures) | Support natif depuis WP 7.0 |
Pour bien démarrer avec JWT, ne stockez jamais le token dans localStorage côté client ?" utilisez un cookie HttpOnly sécurisé. Configurez une expiration courte (15 minutes pour le token, 7 jours pour le refresh token) avec le filtre jwt_auth_expire. En production, whitelistez vos domaines avec JWT_AUTH_CORS_ENABLE et définissez JWT_AUTH_SECRET_KEY via une variable d'environnement, pas en dur dans wp-config.php.
Créer un endpoint CRUD personnalisé
Structure d'une route personnalisée
add_action('rest_api_init', function () {
register_rest_route('volade/v1', '/produits', [
[
'methods' => 'GET',
'callback' => 'volade_get_produits',
'permission_callback' => '__return_true',
],
[
'methods' => 'POST',
'callback' => 'volade_create_produit',
'permission_callback' => 'volade_check_admin_permission',
],
]);
});
Callback GET avec paramètres
function volade_get_produits($request) {
$args = [
'post_type' => 'produit',
'posts_per_page' => $request->get_param('per_page') ?: 10,
'paged' => $request->get_param('page') ?: 1,
'meta_query' => [
[
'key' => 'prix',
'value' => $request->get_param('prix_min'),
'type' => 'NUMERIC',
'compare' => '>='
]
]
];
$query = new WP_Query($args);
$produits = [];
foreach ($query->posts as $post) {
$produits[] = [
'id' => $post->ID,
'titre' => $post->post_title,
'prix' => get_post_meta($post->ID, 'prix', true),
];
}
return new WP_REST_Response([
'produits' => $produits,
'total' => $query->found_posts,
'pages' => $query->max_num_pages,
], 200);
}
Permission callback typique
function volade_check_admin_permission() {
if (!current_user_can('manage_options')) {
return new WP_Error(
'rest_forbidden',
'Vous devez être administrateur.',
['status' => 403]
);
}
return true;
}
Endpoint POST pour créer une ressource
function volade_create_produit($request) {
$body = json_decode($request->get_body(), true);
if (empty($body['titre']) || empty($body['prix'])) {
return new WP_Error(
'missing_fields',
'Les champs "titre" et "prix" sont obligatoires.',
['status' => 400]
);
}
$post_id = wp_insert_post([
'post_title' => sanitize_text_field($body['titre']),
'post_content' => sanitize_textarea_field($body['description'] ?? ''),
'post_type' => 'produit',
'post_status' => 'publish',
]);
if (is_wp_error($post_id)) {
return new WP_Error('creation_failed', 'Impossible de créer le produit.', ['status' => 500]);
}
update_post_meta($post_id, 'prix', floatval($body['prix']));
return new WP_REST_Response([
'id' => $post_id,
'titre' => $body['titre'],
'prix' => $body['prix'],
'lien' => rest_url("volade/v1/produits/{$post_id}"),
], 201);
}
Tableau récapitulatif des patterns REST
| Pattern | Usage | Méthode |
|---|---|---|
GET /volade/v1/produits | Liste des produits | GET |
GET /volade/v1/produits/{id} | Produit spécifique | GET |
POST /volade/v1/produits | Créer un produit | POST |
PUT /volade/v1/produits/{id} | Mettre à jour un produit | PUT |
DELETE /volade/v1/produits/{id} | Supprimer un produit | DELETE |
API WooCommerce
WooCommerce expose sa propre API REST sur les endpoints /wc/v3/.
Endpoints principaux
| Endpoint | Ressource |
|---|---|
/wc/v3/products | Produits |
/wc/v3/orders | Commandes |
/wc/v3/customers | Clients |
/wc/v3/categories | Catégories |
/wc/v3/shipping/zones | Zones de livraison |
/wc/v3/payment-gateways | Passerelles de paiement |
/wc/v3/reports | Rapports |
/wc/v3/coupons | Codes promo |
/wc/v3/taxes | Taxes |
/wc/v3/refunds | Remboursements |
Authentification WooCommerce API
Deux méthodes :
1. API Keys (recommandé)
curl -X GET https://votre-site.com/wp-json/wc/v3/products \
-u "ck_votre_consumer_key:cs_votre_consumer_secret"
2. JWT (si vous utilisez déjà un token headless)
L'API WooCommerce respecte le même token JWT que l'API WordPress standard.
Exemple : créer une commande via l'API
curl -X POST https://votre-site.com/wp-json/wc/v3/orders \
-u "ck_key:cs_secret" \
-H 'Content-Type: application/json' \
-d '{
"payment_method": "bacs",
"payment_method_title": "Virement bancaire",
"set_paid": false,
"billing": {
"first_name": "Jean",
"last_name": "Dupont",
"address_1": "12 rue de la Paix",
"city": "Paris",
"country": "FR",
"email": "jean@example.com",
"phone": "0123456789"
},
"line_items": [
{
"product_id": 123,
"quantity": 2
}
]
}'
Sécurisation de l'API REST
Checklist de sécurisation
- Désactiver les endpoints non utilisés (via filtre
rest_endpoints) - Limiter les méthodes exposées (
GETseulement si nécessaire) - Valider et assainir toutes les entrées (sanitize/validate callbacks)
- Implémenter un rate limiting personnalisé (ou utiliser un plugin)
- Utiliser HTTPS strict
- Protéger l'endpoint
/users(ne pas exposer les emails) - Désactiver XMLRPC si non utilisé (ancienne surface d'attaque)
- Journaliser les tentatives d'accès non autorisées
Mettez en place un rate limiting dès le premier jour, même en développement. Utilisez le plugin WP Rate Limiter ou implémentez votre propre middleware via le filtre rest_pre_dispatch : limitez à 60 requêtes/minute pour les utilisateurs non authentifiés et 200 pour les authentifiés. Ajoutez un header X-RateLimit-Remaining dans vos réponses pour que vos clients API puissent anticiper la limite. Cette habitude vous évitera de devoir sécuriser des milliers de requêtes après un pic de trafic.
Ce qu'on retient
L'API REST WordPress est devenue un élément central de l'écosystème en 2026. Que vous construisiez une app headless, un tableau de bord custom, ou que vous intégriez WooCommerce à un CRM, la maîtrise des endpoints, de l'authentification et des permissions est indispensable.
Commencez par comprendre les endpoints natifs ?" ils couvrent 80 % des besoins sans code personnalisé.
Choisissez la bonne méthode d'authentification : JWT pour les apps headless, OAuth 2.0 pour les apps tierces, Application Passwords pour les scripts internes.
Construisez vos endpoints personnalisés avec les bonnes pratiques : permission callbacks stricts, validation des entrées, pagination, réponses structurées.
Sécurisez tout ce que vous exposez ?" une API REST mal configurée est une porte ouverte sur votre site.
Article mis à jour le 9 juillet 2026. Sources : documentation WordPress REST API Handbook, WooCommerce REST API docs, tests terrain Volade.
FAQ — API REST WordPress 2026 :
Qu'est-ce que API REST WordPress 2026 : ?
L'API REST WordPress a transformé le CMS en plateforme headless. En 2026, elle est le socle de la majorité des architectures decoupled, des applications mobiles, des dashboards Vue.js/React, et des intégrations SaaS.
Les endpoints natifs de l'API REST WordPress : quels sont les points clés ?
Ressources principales Ressource Articles Pages Utilisateurs Médias Catégories ?tiquettes Commentaires Motifs de blocs Templates Menus de navigation Styles globaux (FSE) Plugins Réglages site Thèmes Recherche Depuis WordPress 6.7, les endpoints templates, navigation et global-styles sont pleinement stables. Ils permettent de manipuler les thèmes FSE sans passer par l'éditeur visuel. ### Utilis
Authentification : quels sont les points clés ?
Comparatif des méthodes Complexité Sécurité Faible Limitée (CSRF + nonce) Faible Faible (en HTTPS uniquement) Moyenne ?levée (expiration, refresh) ?levée Très élevée (Authorization Code Flow) Faible Bonne (révocable, scope limité) ### JWT ?" configuration et utilisation
?tape 1 ?" Installer un plugin JWT (ex: JWT Authentication for WP-API)
?tape 2 ?" Configurer dans wp-config.php :
php
define(
Créer un endpoint CRUD personnalisé : quels sont les points clés ?
Structure d'une route personnalisée
php
add_action('rest_api_init', function () { register_rest_route('volade/v1', '/produits', 'methods' => 'GET', 'callback' => 'volade_get_produits', 'permission_callback' => '__return_true', , 'methods' => 'POST', 'callback' => 'volade_create_produit', 'permission_callback' => 'volade_check_admin_permission', , );
}); ### Callback GET avec paramètres
php
fun
API WooCommerce : quels sont les points clés ?
WooCommerce expose sa propre API REST sur les endpoints /wc/v3/. ### Endpoints principaux Ressource Produits Commandes Clients Catégories Zones de livraison Passerelles de paiement Rapports Codes promo Taxes Remboursements ### Authentification WooCommerce API
Deux méthodes :
- API Keys (recommandé)
bash
curl -X GET https://votre-site.com/wp-json/wc/v3/products \ -u "ck_votre_consumer_key:cs_votre
Sécurisation de l'API REST : quels sont les points clés ?
Checklist de sécurisation
Désactiver les endpoints non utilisés (via filtre rest_endpoints)
Limiter les méthodes exposées (GET seulement si nécessaire)
Valider et assainir toutes les entrées (sanitize/validate callbacks)
Implémenter un rate limiting personnalisé (ou utiliser un plugin)
Utiliser HTTPS strict
Protéger l'endpoint /users (ne pas exposer les emails)
Désactiver XMLRPC si non utilisé
Ce qu'on retient : quels sont les points clés ?
L'API REST WordPress est devenue un élément central de l'écosystème en 2026. Que vous construisiez une app headless, un tableau de bord custom, ou que vous intégriez WooCommerce à un CRM, la maîtrise des endpoints, de l'authentification et des permissions est indispensable. Commencez par comprendre les endpoints natifs ?" ils couvrent 80 % des besoins sans code personnalisé.
Quels sont les prérequis pour se lancer ?
Avant de commencer, assurez-vous d'avoir les bases : un site ou projet bien défini, des objectifs clairs, et les ressources nécessaires (temps, budget, compétences). Le reste s'acquiert en chemin.
Combien de temps faut-il pour voir des résultats ?
Les premiers résultats peuvent apparaître en 2 à 4 semaines pour les actions rapides. Pour les efforts plus profonds, comptez 3 à 6 mois. La régularité est le facteur clé.
Par où commencer après avoir lu cet article ?
Identifiez votre besoin prioritaire, choisissez 2-3 actions concrètes de cet article, et lancez-vous cette semaine. Fixez-vous un point dans 30 jours pour ajuster. L'important est de passer à l'action.
Pret a passer a l'action ?
Explorez le catalogue Volade — sans compte pour commencer.
Votre avis compte
Commentez « API REST WordPress 2026 : guide complet ?" endpoints, authentification JWT, CRUD, WooCommerce API » ou notez cet article pour aider la communauté.
personnes ont partagé cet article