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

# Status da API

> O endpoint de status permite verificar se a API do HYDRA HUB está operacional. Útil para monitoramento e verificação de disponibilidade do serviço.

## Endpoint

```bash
GET /api/v1/status
```

## Autenticação

Este endpoint **não requer autenticação**, facilitando a verificação do status do serviço sem a necessidade de credenciais.

## Response

```json
{
  "status": "online",
  "timestamp": "2023-05-15T10:30:45Z",
  "version": "1.9.2",
  "environment": "production",
  "services": {
    "gateway": "online",
    "database": "online",
    "tokenizer": "online",
    "notifications": "online"
  },
  "latency": {
    "gateway": 45,
    "database": 120,
    "tokenizer": 38,
    "notifications": 78
  }
}
```

### Campos da Resposta

| Campo       | Tipo   | Descrição                                         |
| ----------- | ------ | ------------------------------------------------- |
| status      | string | Status geral da API: "online" ou "degraded"       |
| timestamp   | string | Data e hora da verificação (formato ISO 8601)     |
| version     | string | Versão atual da API                               |
| environment | string | Ambiente atual ("production" ou "sandbox")        |
| services    | object | Status dos serviços individuais                   |
| latency     | object | Latência atual em milissegundos para cada serviço |

## Possíveis Status

* **online**: O serviço está funcionando normalmente
* **degraded**: O serviço está operacional, mas com performance reduzida
* **offline**: O serviço está indisponível (apenas para serviços individuais)

## Uso Recomendado

### Monitoramento de Disponibilidade

Você pode implementar verificações regulares para garantir que o serviço esteja operacional:

```javascript
async function checkApiStatus() {
  try {
    const response = await fetch('https://api.hydrahub.com.br/api/v1/status');
    const data = await response.json();
    
    if (data.status === 'online') {
      console.log('HYDRA HUB API está online e operacional');
      return true;
    } else {
      console.warn('HYDRA HUB API está com performance degradada');
      // Notificar equipe ou tomar ação apropriada
      return false;
    }
  } catch (error) {
    console.error('HYDRA HUB API está indisponível:', error);
    // Implementar mecanismo de fallback ou alertar equipe
    return false;
  }
}

// Verificar a cada 5 minutos
setInterval(checkApiStatus, 5 * 60 * 1000);
```

### Verificação Pré-Transação

É recomendável verificar o status da API antes de iniciar operações críticas:

```javascript
async function processPayment(paymentData) {
  // Verificar status da API antes de processar pagamento
  const statusCheck = await checkApiStatus();
  
  if (!statusCheck) {
    // Informar ao usuário sobre problemas com o processador de pagamentos
    return {success: false, message: 'Serviço temporariamente indisponível'};
  }
  
  // Prosseguir com o processamento do pagamento
  // ...
}
```

## Limites de Taxa

Este endpoint tem um limite mais alto de requisições por minuto em comparação com outros endpoints:

* 60 requisições por minuto por IP
* 300 requisições por hora por IP

Exceder esses limites resultará em um erro HTTP 429 (Too Many Requests).

## Boas Práticas

1. **Não abuse deste endpoint** com verificações muito frequentes
2. **Implemente backoff exponencial** em caso de falhas
3. **Defina alertas** baseados no status e latência retornados
4. **Use timeouts adequados** ao verificar o status (recomendado: 5 segundos)
5. **Verifique individualmente** os status dos serviços para diagnósticos mais precisos

<Tip>
  O ambiente de Sandbox pode ocasionalmente apresentar latências maiores ou status "degraded" durante manutenções programadas. Isso não afeta o ambiente de produção.
</Tip>
