# Listar tribunais

`GET /v1/tribunais`

Tribunais e sistemas atendidos hoje, com o tipo de acesso (`certificado` ou `credencial`) e se o tribunal pede segundo fator.

## Respostas

| HTTP | Significa |
|---|---|
| 200 | OK |
| 422 | Corpo ou parâmetros com formato inválido (`detail` lista os campos) |

### Exemplo de resposta

```json
[
  {
    "tribunal": "8.05",
    "sigla": "TJBA",
    "nome": "Tribunal de Justiça da Bahia",
    "sistema": "PJE",
    "acesso": "certificado",
    "segundo_fator": true
  },
  {
    "tribunal": "8.05",
    "sigla": "TJBA",
    "nome": "Tribunal de Justiça da Bahia",
    "sistema": "PROJUDI",
    "acesso": "credencial",
    "segundo_fator": false
  }
]
```

## Erros

Recusas vêm como `{"detail": {"erro": "<código>", "mensagem": "…"}}`.

| HTTP | `erro` | Significa |
|---|---|---|
| 401 | — | Chave ausente ou inválida |

## Exemplos de requisição

### Bash

```bash
curl 'https://sync.lops.com.br/v1/tribunais' \
  -H "Authorization: Bearer $SYNC_CHAVE"
```

### JavaScript

```javascript
const resposta = await fetch("https://sync.lops.com.br/v1/tribunais", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.SYNC_CHAVE}`,
  },
});
console.log(resposta.status, await resposta.json());
```

### Python

```python
import os

import requests

resposta = requests.get(
    "https://sync.lops.com.br/v1/tribunais",
    headers={"Authorization": f"Bearer {os.environ['SYNC_CHAVE']}"},
)
print(resposta.status_code, resposta.json())
```

### PHP

```php
<?php
$ch = curl_init('https://sync.lops.com.br/v1/tribunais');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('SYNC_CHAVE'),
    ],
]);
$corpo = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
var_dump($status, json_decode($corpo, true));
```
