Integrate ZyloPro into your applications
https://api.zylopro.comSign up on ZyloPro to create your account and organization. You can then log in via the API to obtain an access token.
The API uses JWT (Bearer) tokens. Include the token in the Authorization header of your requests:
Once authenticated, you can list available agents, run analyses, and retrieve results.
Authentication endpoints manage user accounts, access tokens, and passwords.
/api/auth/registerRegister a new organization with its owner
{
"email": "string",
"password": "string",
"firstName": "string",
"lastName": "string",
"organizationName": "string"
}{ success: boolean, token?: string, refreshToken?: string, user?: UserDto }/api/auth/loginLog in a user
{
"email": "string",
"password": "string"
}{ success: boolean, token?: string, refreshToken?: string, user?: UserDto }/api/auth/refreshRefresh the access token with a refresh token
{
"refreshToken": "string"
}{ success: boolean, token?: string, refreshToken?: string }/api/auth/revokeRevoke a refresh token (logout)
{
"refreshToken": "string"
}{ message: string }/api/auth/verify-emailVerify email address with the token received by email
{
"token": "string"
}{ message: string }/api/auth/forgot-passwordRequest a password reset
{
"email": "string"
}{ message: string }/api/auth/reset-passwordReset password with the token received by email
{
"token": "string",
"newPassword": "string"
}{ message: string }/api/auth/change-passwordChange password (logged-in user)
{
"currentPassword": "string",
"newPassword": "string"
}{ message: string }Agent endpoints allow you to list, subscribe to, and execute the platform's 10 AI modules.
/api/agentsGet all available agents on the platform
AgentDto[]/api/agents/organizationGet agents subscribed by the organization (Admin)
AgentDto[]/api/agents/myGet agents accessible by the logged-in user
AgentDto[]/api/agents/{agentId}/subscribeSubscribe to an agent (organization level)
{
"agentId": "int"
}{ message: string }/api/agents/{agentId}/unsubscribeUnsubscribe from an agent
{
"agentId": "int"
}{ message: string }/api/agents/{code}/executeExecute an agent with input data
{
"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}Get the status of an execution
{
"executionId": "guid"
}AgentExecutionDto/api/agents/executions/{executionId}/cancelCancel an ongoing execution
{
"executionId": "guid"
}{ message: string }/api/agents/executionsGet the user's execution history
{
"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
}| HTTP Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad request (missing or invalid parameters) |
| 401 | Unauthenticated (missing or expired token) |
| 403 | Forbidden (insufficient permissions) |
| 404 | Resource not found |
| 429 | Too many requests (rate limiting) |
| 500 | Internal server error |
{
"message": "Description de l'erreur",
"errors": {
"fieldName": ["Détail de l'erreur de validation"]
}
}The API is limited to 100 requests per minute per user. The X-RateLimit-* headers indicate your quota status.
Each plan has a monthly execution limit per agent. Check your dashboard to monitor your usage.
Our technical team is available to assist you with ZyloPro API integration.