Volver al inicio

Documentación API

Integre ZyloPro en sus aplicaciones

v1.0URL base: https://api.zylopro.com

Inicio rápido

1. Obtener sus credenciales

Regístrese en ZyloPro para crear su cuenta y organización. Luego podrá conectarse a través de la API para obtener un token de acceso.

2. Autenticación

La API utiliza tokens JWT (Bearer). Incluya el token en el header Authorization de sus peticiones:

Authorization: Bearer <votre-token>

3. Hacer su primera petición

Una vez autenticado, puede listar los agentes disponibles, ejecutar análisis y recuperar resultados.

Autenticación

Los endpoints de autenticación permiten gestionar cuentas de usuario, tokens de acceso y contraseñas.

POST/api/auth/register
Public

Registro de una nueva organización con su propietario

Cuerpo de la petición

{
  "email": "string",
  "password": "string",
  "firstName": "string",
  "lastName": "string",
  "organizationName": "string"
}

Respuesta

{ success: boolean, token?: string, refreshToken?: string, user?: UserDto }
POST/api/auth/login
Public

Inicio de sesión de un usuario

Cuerpo de la petición

{
  "email": "string",
  "password": "string"
}

Respuesta

{ success: boolean, token?: string, refreshToken?: string, user?: UserDto }
POST/api/auth/refresh
Public

Refrescar el token de acceso con un refresh token

Cuerpo de la petición

{
  "refreshToken": "string"
}

Respuesta

{ success: boolean, token?: string, refreshToken?: string }
POST/api/auth/revoke
Auth

Revocar un refresh token (cerrar sesión)

Cuerpo de la petición

{
  "refreshToken": "string"
}

Respuesta

{ message: string }
GET/api/auth/verify-email
Public

Verificar la dirección de email con el token recibido por correo

Query Params

{
  "token": "string"
}

Respuesta

{ message: string }
POST/api/auth/forgot-password
Public

Solicitar un restablecimiento de contraseña

Cuerpo de la petición

{
  "email": "string"
}

Respuesta

{ message: string }
POST/api/auth/reset-password
Public

Restablecer la contraseña con el token recibido por correo

Cuerpo de la petición

{
  "token": "string",
  "newPassword": "string"
}

Respuesta

{ message: string }
POST/api/auth/change-password
Auth

Cambiar la contraseña (usuario conectado)

Cuerpo de la petición

{
  "currentPassword": "string",
  "newPassword": "string"
}

Respuesta

{ message: string }

Módulos IA

Los endpoints de agentes permiten listar, suscribirse y ejecutar los 10 módulos IA de la plataforma.

GET/api/agents
Auth

Obtener todos los agentes disponibles en la plataforma

Respuesta

AgentDto[]
GET/api/agents/organization
Admin

Obtener los agentes suscritos por la organización (Admin)

Respuesta

AgentDto[]
GET/api/agents/my
Auth

Obtener los agentes accesibles por el usuario conectado

Respuesta

AgentDto[]
POST/api/agents/{agentId}/subscribe
Owner

Suscribirse a un agente (nivel organización)

Parámetros URL

{
  "agentId": "int"
}

Respuesta

{ message: string }
POST/api/agents/{agentId}/unsubscribe
Owner

Desuscribirse de un agente

Parámetros URL

{
  "agentId": "int"
}

Respuesta

{ message: string }
POST/api/agents/{code}/execute
Auth

Ejecutar un agente con datos de entrada

Parámetros URL

{
  "code": "string (ex: proposalcraft)"
}

Cuerpo de la petición

{
  "inputData": "string",
  "projectId": "guid? (optionnel)",
  "metadata": "Record<string, string>? (optionnel)"
}

Respuesta

{ success: boolean, status: string, executionId: guid, outputData?: string, error?: string }
GET/api/agents/executions/{executionId}
Auth

Obtener el estado de una ejecución

Parámetros URL

{
  "executionId": "guid"
}

Respuesta

AgentExecutionDto
POST/api/agents/executions/{executionId}/cancel
Auth

Cancelar una ejecución en curso

Parámetros URL

{
  "executionId": "guid"
}

Respuesta

{ message: string }
GET/api/agents/executions
Auth

Obtener el historial de ejecuciones del usuario

Query Params

{
  "limit": "int (défaut: 20)"
}

Respuesta

AgentExecutionDto[]

Ejemplos de código

Conexión y recuperación del token
// 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;
Ejecución de un agente
// 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);
Seguimiento de una ejecución (polling)
// 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));
  }
}

Tipos de datos

AgentDto

{
  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
}

AgentExecutionDto

{
  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
}

Gestión de errores

Código HTTPDescripción
200Éxito
400Petición inválida (parámetros faltantes o incorrectos)
401No autenticado (token faltante o expirado)
403Acceso prohibido (permisos insuficientes)
404Recurso no encontrado
429Demasiadas peticiones (limitación de tasa)
500Error interno del servidor

Formato de errores

{
  "message": "Description de l'erreur",
  "errors": {
    "fieldName": ["Détail de l'erreur de validation"]
  }
}

Límites y cuotas

Limitación de tasa

La API está limitada a 100 peticiones por minuto por usuario. Los headers X-RateLimit-* indican el estado de su cuota.

Cuotas de ejecución

Cada plan tiene un número de ejecuciones mensuales por agente. Consulte su panel de control para seguir su consumo.

¿Necesita ayuda?

Nuestro equipo técnico está disponible para acompañarle en la integración de la API ZyloPro.