Intégrez ZyloPro dans vos applications
https://api.zylopro.comInscrivez-vous sur ZyloPro pour créer votre compte et organisation. Vous pourrez ensuite vous connecter via l'API pour obtenir un token d'accès.
L'API utilise des tokens JWT (Bearer). Incluez le token dans le header Authorization de vos requêtes :
Une fois authentifié, vous pouvez lister les agents disponibles, exécuter des analyses et récupérer les résultats.
Les endpoints d'authentification permettent de gérer les comptes utilisateurs, les tokens d'accès et les mots de passe.
/api/auth/registerInscription d'une nouvelle organisation avec son propriétaire
{
"email": "string",
"password": "string",
"firstName": "string",
"lastName": "string",
"organizationName": "string"
}{ success: boolean, token?: string, refreshToken?: string, user?: UserDto }/api/auth/loginConnexion d'un utilisateur
{
"email": "string",
"password": "string"
}{ success: boolean, token?: string, refreshToken?: string, user?: UserDto }/api/auth/refreshRafraîchir le token d'accès avec un refresh token
{
"refreshToken": "string"
}{ success: boolean, token?: string, refreshToken?: string }/api/auth/revokeRévoquer un refresh token (déconnexion)
{
"refreshToken": "string"
}{ message: string }/api/auth/verify-emailVérifier l'adresse email avec le token reçu par mail
{
"token": "string"
}{ message: string }/api/auth/forgot-passwordDemander une réinitialisation de mot de passe
{
"email": "string"
}{ message: string }/api/auth/reset-passwordRéinitialiser le mot de passe avec le token reçu par mail
{
"token": "string",
"newPassword": "string"
}{ message: string }/api/auth/change-passwordChanger le mot de passe (utilisateur connecté)
{
"currentPassword": "string",
"newPassword": "string"
}{ message: string }Les endpoints des agents permettent de lister, s'abonner et exécuter les 10 modules IA de la plateforme.
/api/agentsObtenir tous les agents disponibles sur la plateforme
AgentDto[]/api/agents/organizationObtenir les agents souscrits par l'organisation (Admin)
AgentDto[]/api/agents/myObtenir les agents accessibles par l'utilisateur connecté
AgentDto[]/api/agents/{agentId}/subscribeS'abonner à un agent (niveau organisation)
{
"agentId": "int"
}{ message: string }/api/agents/{agentId}/unsubscribeSe désabonner d'un agent
{
"agentId": "int"
}{ message: string }/api/agents/{code}/executeExécuter un agent avec des données d'entrée
{
"code": "string (ex: proposalcraft)"
}{
"inputData": "string",
"projectId": "guid? (optionnel)",
"metadata": "Record<string, string>? (optionnel)"
}{ success: boolean, status: string, executionId: guid, outputData?: string, error?: string }/api/agents/executions/{executionId}Obtenir le statut d'une exécution
{
"executionId": "guid"
}AgentExecutionDto/api/agents/executions/{executionId}/cancelAnnuler une exécution en cours
{
"executionId": "guid"
}{ message: string }/api/agents/executionsObtenir l'historique des exécutions de l'utilisateur
{
"limit": "int (défaut: 20)"
}AgentExecutionDto[]// Exemple de connexion
const response = await fetch('https://api.zylopro.com/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'user@example.com',
password: 'votre-mot-de-passe'
})
});
const data = await response.json();
// Stocker le token pour les requêtes ultérieures
const accessToken = data.token;// Exemple d'exécution d'un agent
const response = await fetch('https://api.zylopro.com/api/agents/proposalcraft/execute', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`
},
body: JSON.stringify({
inputData: "Contenu de l'appel d'offres à analyser...",
metadata: {
projectName: "Étude satisfaction client 2025",
clientName: "ACME Corp"
}
})
});
const result = await response.json();
console.log('Exécution ID:', result.executionId);
console.log('Statut:', result.status);// Exemple de polling pour suivre une exécution
async function waitForCompletion(executionId, accessToken) {
while (true) {
const response = await fetch(
`https://api.zylopro.com/api/agents/executions/${executionId}`,
{
headers: { 'Authorization': `Bearer ${accessToken}` }
}
);
const execution = await response.json();
if (execution.status === 'Completed') {
return execution;
}
if (execution.status === 'Failed') {
throw new Error(execution.errorMessage);
}
// Attendre 2 secondes avant le prochain check
await new Promise(resolve => setTimeout(resolve, 2000));
}
}{
id: number
code: string
name: string
shortDescription: string
longDescription: string
category: string
inputType: string
outputType: string
monthlyPrice: number
includedExecutions: number
extraExecutionPrice: number
iconName: string
color: string
isActive: boolean
isBeta: boolean
isSubscribed: boolean
hasAccess: boolean
}{
id: guid
agentCode: string
agentName: string
status: "Pending" | "Running" |
"Completed" | "Failed" |
"Cancelled"
createdAt: datetime
startedAt: datetime | null
completedAt: datetime | null
durationSeconds: number | null
inputTokens: number | null
outputTokens: number | null
outputFilePath: string | null
errorMessage: string | null
}| Code HTTP | Description |
|---|---|
| 200 | Succès |
| 400 | Requête invalide (paramètres manquants ou incorrects) |
| 401 | Non authentifié (token manquant ou expiré) |
| 403 | Accès interdit (permissions insuffisantes) |
| 404 | Ressource non trouvée |
| 429 | Trop de requêtes (rate limiting) |
| 500 | Erreur serveur interne |
{
"message": "Description de l'erreur",
"errors": {
"fieldName": ["Détail de l'erreur de validation"]
}
}L'API est limitée à 100 requêtes par minute par utilisateur. Les headers X-RateLimit-* indiquent l'état de votre quota.
Chaque plan dispose d'un nombre d'exécutions mensuelles par agent. Consultez votre tableau de bord pour suivre votre consommation.
Notre équipe technique est disponible pour vous accompagner dans l'intégration de l'API ZyloPro.