EvoluAIv2 Docs

Errors

Error Codes

HTTP Status Codes

CodeMeaning
200OK
400Bad Request - Invalid parameters
401Unauthorized - Authentication failed
403Forbidden - No permission
404Not Found - Resource does not exist
429Too Many Requests - Rate limit
500Internal Server Error

Error Codes

401 - Unauthorized

{
  "error": {
    "message": "Unauthorized",
    "code": "UNAUTHORIZED"
  }
}

Cause: Invalid or missing API Key


403 - Forbidden

{
  "error": {
    "message": "Access denied",
    "code": "FORBIDDEN"
  }
}

Cause: User lacks permission for action


404 - Not Found

{
  "error": {
    "message": "Analysis not found",
    "code": "NOT_FOUND"
  }
}

Cause: ID does not exist


400 - Bad Request

{
  "error": {
    "message": "Invalid input",
    "code": "BAD_REQUEST",
    "issues": [{
      "path": ["salespersonId"],
      "message": "Required"
    }]
  }
}

Cause: Invalid or missing parameters


429 - Rate Limit

{
  "error": {
    "message": "Rate limit exceeded",
    "code": "TOO_MANY_REQUESTS"
  }
}

Limit: 60 requests/minute


Retry with Backoff

async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      const res = await fetch(url, options);
      
      if (res.ok) return res;
      
      if (res.status === 429) {
        const delay = Math.pow(2, i) * 1000;
        await new Promise(r => setTimeout(r, delay));
        continue;
      }
      
      throw new Error(`HTTP ${res.status}`);
    } catch (error) {
      if (i === maxRetries - 1) throw error;
    }
  }
}

Limits

ResourceLimit
Requests/minute60
File size40MB
Audio duration2 hours
Active API Keys10

Base URL: https://api.evolu-ai.com/trpc

On this page