> ## Documentation Index
> Fetch the complete documentation index at: https://docs.triglit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retries e Timeouts

> Configure retries automáticos e timeouts

## Retries Automáticos

O SDK implementa retry automático para certos tipos de erros. Por padrão, o SDK tenta novamente **2 vezes** com backoff exponencial curto para:

* Erros de conexão (problemas de rede)
* 408 Request Timeout
* 409 Conflict
* 429 Rate Limit
* Erros >= 500 (Internal Server Error)

### Configurando Retries

Você pode configurar o número de retries:

```typescript theme={null}
// Configurar o padrão para todas as requisições
const client = new Triglit({
  apiKey: 'pk_...',
  maxRetries: 0, // Desabilitar retries (padrão é 2)
});

// Ou configurar por requisição
await client.triggers.create(
  { config: {}, name: 'x', type: 'event', workflowVersionId: 'x' },
  { maxRetries: 5 } // 5 tentativas para esta requisição
);
```

## Timeouts

As requisições têm timeout de **1 minuto** por padrão. Você pode configurar isso:

```typescript theme={null}
// Configurar o padrão para todas as requisições
const client = new Triglit({
  apiKey: 'pk_...',
  timeout: 20 * 1000, // 20 segundos (padrão é 1 minuto)
});

// Ou configurar por requisição
await client.triggers.create(
  { config: {}, name: 'x', type: 'event', workflowVersionId: 'x' },
  { timeout: 5 * 1000 } // 5 segundos para esta requisição
);
```

Quando ocorre timeout, um `APIConnectionTimeoutError` é lançado. Requisições que dão timeout são automaticamente tentadas novamente (conforme configuração de retries).

## Rate Limiting

A API do Triglit implementa rate limiting. Quando o limite é excedido, o SDK lança um `RateLimitError` (429), que é automaticamente retentado conforme a configuração de retries.

### Limites de Rate Limit

* **Chave Pública (`pk_`)**: 100 requisições por minuto
* **Chave Secreta (`sk_`)**: 1000 requisições por minuto

<Tip>
  Para operações críticas, considere aumentar o número de retries. Para operações que devem falhar rapidamente, desabilite os retries ou reduza o timeout.
</Tip>
