/auth/me
Vérifier le compte et les permissions du jeton.
Réservée aux administrateurs et CDP, cette API permet de connecter les projets, indicateurs de visibilité IA, prompts, campagnes, réponses analysées et citations aux outils internes.
Les comptes utilisateurs, y compris bêta, n’ont pas accès à l’API. Les jetons externes historiques sont refusés.
Démarrage rapide
Un administrateur ou un CDP crée son jeton depuis l’espace API, le conserve dans un gestionnaire de secrets, puis l’envoie dans l’en-tête Authorization.
Un administrateur ou un CDP génère un jeton associé à son compte.
Enregistrez le secret vcp_… côté serveur, jamais dans le navigateur ou Git.
Appelez la collection avec le jeton Bearer interne.
curl 'https://api.viscope.fr/api/v1/client/projects?per_page=25' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <VOTRE_JETON>'
Authentification
Seuls les administrateurs et CDP reçoivent un jeton, avec le scope client:read selon le besoin. Les comptes utilisateurs, y compris bêta, et leurs jetons historiques sont refusés. La gestion des autres jetons exige le scope séparé tokens:manage.
Authorization: Bearer <VOTRE_JETON>
Placez-le immédiatement dans votre gestionnaire de secrets. Ne l’ajoutez jamais à une URL, un fichier versionné, une application frontend ou un journal.
/auth/me
Vérifier le compte et les permissions du jeton.
/auth/tokens
Lister les jetons du compte avec tokens:manage.
/auth/tokens/{token}
Révoquer un jeton du compte avec tokens:manage.
Projets
Un compte ne voit que les projets qui lui appartiennent ou lui ont été partagés. Un identifiant inaccessible ne révèle aucune donnée.
/client/projects
Retourne les projets appartenant au compte ou partagés avec lui.
Filtres : page, per_page (1 à 100), active (true ou false).
/client/projects/{project}
Retourne l’identité de la marque, ses domaines, son marché, ses concurrents et son rythme de mesure.
Remplacez {project} par l’identifiant numérique obtenu dans la liste.
/client/projects/{project}/overview
Retourne les KPI de visibilité, la part de voix, le sentiment, la position, les tendances, marques et sources.
Utilisez cet endpoint pour alimenter un tableau de bord ou un reporting consolidé.
Mesures et réponses
Partez d’une campagne, ouvrez ses réponses puis exploitez l’analyse structurée et les citations qui expliquent les KPI.
/client/projects/{project}/prompts
Retourne les questions suivies, leur thème, leur source et leur état.
Filtres : page, per_page et active.
/client/projects/{project}/runs
Retourne les campagnes mesurées avec leur statut, moteurs, dates et nombre de réponses.
Filtres : page, per_page et status (queued, running, done, failed).
/client/projects/{project}/runs/{run}
Retourne une campagne et toutes les réponses exploitables produites par les moteurs.
Chaque réponse contient son analyse et ses citations lorsqu’elles sont disponibles.
/client/projects/{project}/responses/{response}
Retourne le texte, le moteur, la latence, la mention de marque, la position, le sentiment et les sources.
Les données techniques fournisseurs et les coûts internes ne sont jamais exposés.
/client/projects/{project}/sentiment
Retourne la synthèse, les perceptions, situations, tendances et le panorama des concurrents suivis.
Les résultats proviennent des analyses déjà enregistrées : cet appel ne déclenche aucune dépense.
/client/projects/{project}/competitors
Retourne les concurrents suivis, leurs mentions, positions, sentiments et leur matrice comparative.
Lecture seule, limitée aux données visibles par le compte.
/client/projects/{project}/sources
Retourne la distribution des domaines et des types de sources cités.
Les données techniques des fournisseurs et les coûts internes sont exclus.
/client/projects/{project}/citations
Retourne les citations avec leur domaine, URL, extrait, prompt et réponse associés.
Filtres : page et per_page (100 maximum).
Les champs absents ou non calculés peuvent valoir null.
{
"data": {
"id": 8421,
"run_id": 321,
"engine_key": "chat-gpt",
"engine": "ChatGPT",
"content": "La réponse complète du moteur…",
"latency_ms": 2840,
"analysis": {
"brand_mentioned": true,
"brand_position": 2,
"sentiment": 4.2,
"mention_category": "recommended",
"summary": "La marque est recommandée pour…",
"positive_points": ["Expertise reconnue"],
"negative_points": []
},
"citations": [
{
"position": 1,
"title": "Guide comparatif",
"domain": "exemple.fr",
"url": "https://exemple.fr/guide"
}
]
}
}
Pagination
Les listes acceptent page et per_page. La taille par défaut est 25 et le maximum 100.
{
"data": [ ... ],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 64,
"last_page": 3
},
"links": {
"first": "...page=1",
"last": "...page=3",
"prev": null,
"next": "...page=2"
}
}
Erreurs
Une erreur contient toujours un message. Un code error stable est ajouté lorsqu’il existe, et les validations détaillent leurs champs dans errors.
401
Jeton absent, invalide, expiré ou révoqué.
403
Scope insuffisant ou projet non visible.
404
Ressource absente ou non rattachée au projet demandé.
422
Paramètres ou payload invalides.
429
Limite de requêtes atteinte.
Limite générale : 120 appels par minute et par compte.
Sécurité et intégration
Chaque requête applique les mêmes règles de visibilité que votre compte Viscope.
Seule l’empreinte SHA-256 du jeton est stockée ; le secret brut reste chez vous.
Les coûts internes, payloads fournisseurs et secrets de partage ne sont jamais sérialisés.
Une intégration navigateur nécessite une origine approuvée. Le serveur à serveur fonctionne sans configuration CORS.
Le fichier OpenAPI décrit les endpoints, paramètres, formats et erreurs pour Postman, Swagger, les générateurs de SDK et vos tests automatisés.
Télécharger le contrat client