Lisez un commerce Rndez depuis votre code : le commerce, ses services et son équipe, les disponibilités, les rendez-vous et les clients. Gratuit avec tous les forfaits, Gratuit compris.
Version 1 · lecture seulement pour l’instant
Commencer en 5 minutes
Connectez-vous à Rndez. Ouvrez Configuration → Connexions.
Touchez Créer une clé. Nommez-la, laissez « Voir le commerce » et « Voir les rendez-vous » cochés. Activez Clé de test pour l’essayer sur un commerce fictif.
Toutes les routes sont sous https://rndez.com/api/v1/open. Les réponses sont en JSON. L’argent est en cents. Les dates sont AAAA-MM-JJ ; les heures sont en minutes après minuit dans le fuseau du commerce, et aussi en heure ISO UTC.
Envoyez la clé à chaque appel : Authorization: Bearer rndez_live_…. Gardez-la sur votre serveur, jamais dans une page Web ou une app téléchargée : quiconque a la clé lit ce qu’elle peut lire.
shop:read : Voir le commerce (coordonnées, services, équipe, heures, jours fermés, disponibilités)
bookings:read : Voir les rendez-vous (avec seulement le nom du client)
clients:read : Voir les clients (courriels, téléphones, notes, visites ; aussi les coordonnées du client sur les rendez-vous)
Un employé peut créer une clé pour lui seulement. Elle voit le commerce et ses propres rendez-vous, jamais la liste des clients ni l’argent.
Le propriétaire voit quand chaque clé a servi la dernière fois et chaque appel des 30 derniers jours, et peut désactiver une clé d’un toucher. Une clé désactivée arrête tout de suite.
Mode test
Une clé qui commence par rndez_test_ atteint une copie privée du commerce de démonstration, faite pour votre commerce : équipe, services, rendez-vous et clients fictifs. Elle n’atteint jamais de vraies données et n’envoie jamais de courriel ni de texto. Passez à une clé rndez_live_ quand votre code fonctionne.
Limites
Gratuit : 60 appels par minute par clé.
Solo : 300 par minute.
Salon : 1 000 par minute, par emplacement.
Chaque réponse dit où vous en êtes : X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Au-delà, vous recevez 429 et un en-tête Retry-After avec les secondes à attendre. Le commerce continue de fonctionner.
Erreurs
Chaque refus a la même forme, en anglais et en français, avec le paramètre fautif :
{ "error": { "code": "invalid", "message": "limit must be a number from 1 to 500.", "messageFr": "Demande invalide.", "field": "limit" } }
400 invalid : un mauvais paramètre.
401 unauthorized : aucune clé, une mauvaise clé, ou une clé désactivée.
403 scope : la clé n’a pas cette permission.
404 not_found : rien avec cet id dans ce commerce.
Les listes répondent { "data": [...], "next": "…" }. Passez next dans ?cursor= pour la page suivante ; il vaut null à la dernière. 100 par page ; ?limit= jusqu’à 500.
Pour garder une copie à jour, notez l’heure de votre dernier appel et demandez seulement ce qui a changé : ?updatedSince=2026-10-13T09:00:00Z. Les rendez-vous annulés restent dans la liste avec status: "cancelled".
let cursor = null;
const all = [];
do {
const url = new URL("https://rndez.com/api/v1/open/bookings");
url.searchParams.set("updatedSince", lastSync);
if (cursor) url.searchParams.set("cursor", cursor);
const answer = await fetch(url, { headers: { Authorization: `Bearer ${process.env.RNDEZ_KEY}` } });
if (answer.status === 429) { await new Promise((r) => setTimeout(r, Number(answer.headers.get("retry-after")) * 1000)); continue; }
const page = await answer.json();
all.push(...page.data);
cursor = page.next;
} while (cursor);
Toutes les routes
Toutes sont en GET pour l’instant. Créer et changer des rendez-vous et des clients, et les webhooks, viennent ensuite.
Disponibilités. Les mêmes heures libres que la page de réservation (mêmes règles : heures, délai, période de réservation, jamais deux rendez-vous en même temps).
Permission : shop:read (Voir le commerce)
service(obligatoire): Un id de service de /services.
staff: Un id d’employé. Omettez-le pour n’importe qui.