Aller au contenu
Développeurs

Ton agence, branchée à tes IA

Demande à Claude le CA de la semaine par modèle, ou envoie un rappel de tournage depuis Make. Tu choisis ce que chaque clé peut faire.

Ce que tu peux faire

Interroger tes chiffres

« Qui a le plus vendu sur MYM ce mois-ci ? » Claude lit les totaux et répond en une phrase.

Préparer le contenu

L'IA écrit des posts pour le feed. Ils arrivent en brouillon, ton équipe relit et publie.

Prévenir une modèle

Un rappel de tournage, un horaire qui change : le message part dans l'app. Pas d'envoi en masse, 50 notifications par jour au plus.

Automatiser

Make, Zapier, n8n ou ton script lisent les ventes et les tournages par l'API REST.

Créer ta clé

  1. Connecte-toi à la console en Propriétaire ou Admin, avec la double authentification active.
  2. Ouvre Réglages, puis Développeurs, et clique sur Créer une clé.
  3. Donne-lui un nom clair. Coche seulement ce dont ton outil a besoin.
  4. Tape ton code de double authentification. La clé ne s'affiche qu'une fois : copie-la tout de suite.
  5. Colle-la dans l'en-tête Authorization de ton outil : Bearer, puis la clé.

Une clé commence par vlr_live_, suivi de 43 caractères. Ensuite, la console n'en montre que le début, pour la reconnaître.

Brancher une IA par MCP

MCP est le standard qui laisse une IA utiliser des outils. L'adresse du serveur est la même pour tous les clients. Dans les exemples, remplace <domaine> par l'adresse de ta console, et la clé par la tienne.

https://<domaine>/api/mcp

Claude Code

Une commande dans ton terminal, puis /mcp pour vérifier que Velora est connecté.

claude mcp add --transport http velora https://<domaine>/api/mcp \
  --header "Authorization: Bearer vlr_live_…"

Claude Desktop

Ouvre Réglages, Développeur, Modifier la configuration. Colle ce bloc dans claude_desktop_config.json, puis redémarre Claude. Le relais mcp-remote ajoute ta clé à chaque appel.

{
  "mcpServers": {
    "velora": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://<domaine>/api/mcp",
        "--header", "Authorization:${VELORA_AUTH}"
      ],
      "env": { "VELORA_AUTH": "Bearer vlr_live_…" }
    }
  }
}

Cursor

Dans ~/.cursor/mcp.json (ou .cursor/mcp.json dans un projet). Les outils apparaissent dans Réglages, MCP.

{
  "mcpServers": {
    "velora": {
      "url": "https://<domaine>/api/mcp",
      "headers": { "Authorization": "Bearer vlr_live_…" }
    }
  }
}

ChatGPT

Les connecteurs MCP de ChatGPT ne savent pas encore envoyer de clé. Passe par un GPT personnalisé. Dans Actions, importe le schéma depuis l'adresse ci-dessous. Choisis ensuite Authentification, Clé API, type Bearer, et colle ta clé.

https://<domaine>/api/v1/openapi.json

Les outils MCP

Une clé ne voit que les outils de ses droits. Ceux de lecture sont marqués en lecture seule : ton IA peut s'en servir sans te demander.

Outil MCPDroit
list_creators
Les modèles de l'agence, les plus récentes d'abord. Sans e-mail ni téléphone.
read:creators
get_creator
Une modèle, avec ses plateformes de vente branchées.
read:creators
list_sales
Les ventes OnlyFans (via Infloww), MYM et Reveal, les plus récentes d'abord. Jamais le nom des fans.
read:sales
sales_summary
Les totaux d'une période, par modèle et par plateforme, corrections manuelles comprises.
read:stats
send_notification
Une notification dans l'app, pour une modèle ou pour toutes. Les heures calmes et la limite par modèle comptent. 50 par jour au plus pour l'agence.
write:notifications
list_shoots
Les tournages prévus sur une période, du plus proche au plus lointain. Jamais les notes internes.
read:shoots
list_feed
Les posts du feed de l'agence, épinglés d'abord.
read:feed
create_feed_draft
Crée un brouillon dans le feed. Les modèles ne voient rien tant que ton équipe ne l'a pas publié.
write:feed

API REST

Pour tes scripts et tes automatisations. Réponses en JSON, montants en centimes.

Chaque appel porte l'en-tête Authorization: Bearer vlr_live_…. Les appels depuis un navigateur sont refusés : passe par un serveur.

curl https://<domaine>/api/v1/stats/summary?from=2026-10-01&to=2026-10-31 \
  -H "Authorization: Bearer vlr_live_…"

Une liste renvoie 50 éléments au plus et un nextCursor. Passe-le dans cursor pour la page suivante. Il vaut null à la fin.

En cas d'erreur, la réponse donne un code et un message. Les codes : unauthorized (401), insufficient_scope et browser_not_allowed (403), not_found (404), invalid_request (400), rate_limited et notification_cap_reached (429).

{ "error": { "code": "insufficient_scope", "message": "This key lacks the read:sales scope." } }

Le schéma OpenAPI 3.1 complet

Référence

GET/api/v1/creators

Les modèles de l'agence, les plus récentes d'abord. Sans e-mail ni téléphone.

Droit read:creators · Outil MCP list_creators

ParamètreTypeOù
status
Seulement les modèles dans cet état.
INVITED | ACTIVE | PAUSEDURL, facultatif
tag
Seulement les modèles qui ont ce tag.
stringURL, facultatif
cursor
Le nextCursor de la page précédente.
stringURL, facultatif
limit
Taille de la page, de 1 à 50 (25 par défaut).
integerURL, facultatif

GET/api/v1/creators/{id}

Une modèle, avec ses plateformes de vente branchées.

Droit read:creators · Outil MCP get_creator

ParamètreTypeOù
id
Identifiant de la modèle.
stringchemin, obligatoire

GET/api/v1/sales

Les ventes OnlyFans (via Infloww), MYM et Reveal, les plus récentes d'abord. Jamais le nom des fans.

Droit read:sales · Outil MCP list_sales

ParamètreTypeOù
creatorId
Seulement les ventes de cette modèle.
stringURL, facultatif
platform
Seulement cette plateforme.
ONLYFANS | MYM | REVEALURL, facultatif
from
Ventes à partir de cet instant (ISO 8601).
date-timeURL, facultatif
to
Ventes avant cet instant (ISO 8601).
date-timeURL, facultatif
cursor
Le nextCursor de la page précédente.
stringURL, facultatif
limit
Taille de la page, de 1 à 50 (25 par défaut).
integerURL, facultatif

GET/api/v1/stats/summary

Les totaux d'une période, par modèle et par plateforme, corrections manuelles comprises.

Droit read:stats · Outil MCP sales_summary

ParamètreTypeOù
from
Premier jour, AAAA-MM-JJ, à l'heure de l'agence (par défaut il y a 29 jours).
stringURL, facultatif
to
Dernier jour inclus (par défaut aujourd'hui). 366 jours au plus.
stringURL, facultatif

POST/api/v1/notifications

Une notification dans l'app, pour une modèle ou pour toutes. Les heures calmes et la limite par modèle comptent. 50 par jour au plus pour l'agence.

Droit write:notifications · Outil MCP send_notification

ParamètreTypeOù
title
Titre, 60 caractères au plus.
stringcorps JSON, obligatoire
body
Texte, 240 caractères au plus.
stringcorps JSON, obligatoire
creatorId
Envoie à cette modèle seulement.
stringcorps JSON, facultatif
all
true pour envoyer à toutes les modèles actives. Donne creatorId ou all, pas les deux.
booleancorps JSON, facultatif
linkPath
Écran de l'app à ouvrir, par exemple /feed.
stringcorps JSON, facultatif

GET/api/v1/shoots

Les tournages prévus sur une période, du plus proche au plus lointain. Jamais les notes internes.

Droit read:shoots · Outil MCP list_shoots

ParamètreTypeOù
from
Tournages qui commencent à partir de cet instant (par défaut maintenant).
date-timeURL, facultatif
to
Tournages qui commencent avant cet instant (par défaut 31 jours plus tard, 62 au plus).
date-timeURL, facultatif
creatorId
Seulement les tournages de cette modèle.
stringURL, facultatif
status
Seulement les tournages dans cet état.
SCHEDULED | DONE | CANCELEDURL, facultatif
cursor
Le nextCursor de la page précédente.
stringURL, facultatif
limit
Taille de la page, de 1 à 50 (25 par défaut).
integerURL, facultatif

GET/api/v1/feed

Les posts du feed de l'agence, épinglés d'abord.

Droit read:feed · Outil MCP list_feed

ParamètreTypeOù
status
Seulement les posts dans cet état (par défaut tout sauf ARCHIVED).
DRAFT | SCHEDULED | PUBLISHED | ARCHIVEDURL, facultatif
cursor
Le nextCursor de la page précédente.
stringURL, facultatif
limit
Taille de la page, de 1 à 50 (25 par défaut).
integerURL, facultatif

POST/api/v1/feed

Crée un brouillon dans le feed. Les modèles ne voient rien tant que ton équipe ne l'a pas publié.

Droit write:feed · Outil MCP create_feed_draft

ParamètreTypeOù
type
ANNOUNCEMENT par défaut.
ANNOUNCEMENT | POLL | WIN | TIP | EVENTcorps JSON, facultatif
title
Titre, 120 caractères au plus.
stringcorps JSON, obligatoire
body
Texte, 4 000 caractères au plus.
stringcorps JSON, facultatif
emoji
Un emoji affiché avec le post.
stringcorps JSON, facultatif
audienceCreatorIds
Les modèles qui le verront. Vide = toutes.
string[]corps JSON, facultatif
pollOptions
Obligatoire pour un POLL : 2 à 6 réponses.
string[]corps JSON, facultatif

Limites

  • 120 appels par minute et par clé, 600 par minute pour toute l'agence.
  • 50 notifications par jour pour l'agence, toutes clés confondues. La limite par modèle réglée dans la console s'ajoute.
  • Au-delà : réponse 429 avec l'en-tête Retry-After. Attends ce nombre de secondes.
  • 20 clés actives au plus par agence.

Sécurité

  • On ne garde que l'empreinte de ta clé. Même nous, on ne peut pas la relire.
  • Chaque clé est liée à ton agence. La base refuse elle-même de montrer les données d'une autre agence.
  • Une clé n'a que les droits cochés. Une clé de lecture ne modifie rien.
  • Si l'admin qui l'a créée quitte l'équipe ou perd son rôle, la clé ne marche plus.
  • Chaque envoi et chaque brouillon est noté dans le journal de l'agence, avec la clé utilisée.
  • L'API ne donne jamais d'e-mail, de téléphone, de nom de fan, de note interne ni de fichier.
  • Clé perdue ou partagée par erreur ? Révoque-la dans la console, c'est immédiat.

Prêt à brancher ton IA ?

Ta première clé en deux minutes, depuis la console.