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

# Developer Platform

> Integre laudos e PACS com seu sistema hospitalar

# Developer Platform

A API do Laudos.AI permite integrar laudos radiologicos, templates e envio para PACS/RIS diretamente no seu sistema hospitalar.

<Note>
  Todas as requisicoes requerem autenticacao via API Key. Obtenha sua chave em **Configuracoes > Integracoes**.
</Note>

***

## Recursos da API

<CardGroup cols={2}>
  <Card title="Laudos" icon="file-medical" href="/developers/api-reports">
    CRUD completo de laudos radiologicos com suporte a HTML e metadados DICOM
  </Card>

  <Card title="Templates" icon="copy" href="/developers/api-templates">
    Gerencie templates de laudos com categorias e tipos de exame
  </Card>

  <Card title="PACS/RIS" icon="server" href="/developers/api-pacs">
    Envie laudos via HL7 ORU^R01, DICOMweb STOW-RS ou MV Soul XML
  </Card>

  <Card title="Webhooks" icon="webhook" href="/developers/webhooks">
    Receba notificacoes em tempo real sobre eventos
  </Card>
</CardGroup>

***

## Quick Start

### 1. Obtenha sua API Key

Acesse [copilot.laudos.ai/settings/integrations](https://copilot.laudos.ai/settings/integrations) e gere uma nova chave. Sua chave tera o formato:

```
sk_live_SUA_CHAVE_AQUI
```

### 2. Faca sua primeira requisicao

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://copilot.laudos.ai/api/v1/reports?limit=10" \
    -H "Authorization: Bearer sk_live_xxx"
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch('https://copilot.laudos.ai/api/v1/reports?limit=10', {
    headers: { 'Authorization': 'Bearer sk_live_xxx' },
  });
  const { data, meta } = await response.json();
  console.log(`Total: ${meta.total} laudos`);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://copilot.laudos.ai/api/v1/reports",
      headers={"Authorization": "Bearer sk_live_xxx"},
      params={"limit": 10}
  )
  data = response.json()
  print(f"Total: {data['meta']['total']} laudos")
  ```
</CodeGroup>

***

## Base URL

```
https://copilot.laudos.ai/api/v1
```

***

## Autenticacao

Todas as requisicoes requerem autenticacao via Bearer token:

```
Authorization: Bearer sk_live_SUA_CHAVE_AQUI
```

API Keys sao geradas em **Configuracoes > Integracoes** na plataforma. Cada chave possui permissoes configuradas: `reports`, `templates`, `pacs`.

<Warning>
  Nunca exponha sua API Key em codigo client-side ou repositorios publicos. Use variaveis de ambiente no servidor.
</Warning>

***

## Rate Limits

| Plano          | Requisicoes/min |
| -------------- | --------------- |
| **Free**       | 10              |
| **Pro**        | 60              |
| **Enterprise** | 300             |

Headers de rate limit incluidos em todas as respostas:

```http theme={null}
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1705312800
```

Ao receber HTTP 429, aguarde o tempo indicado no header `Retry-After` antes de tentar novamente.

***

## Formato de Resposta

### Sucesso

```json theme={null}
{
  "data": { ... },
  "meta": {
    "total": 100,
    "limit": 10,
    "offset": 0
  }
}
```

### Erro

```json theme={null}
{
  "error": "Mensagem descrevendo o problema"
}
```

***

## Codigos de Erro

| Codigo HTTP | Descricao                       |
| ----------- | ------------------------------- |
| `400`       | Requisicao malformada           |
| `401`       | API Key invalida ou ausente     |
| `403`       | Sem permissao para este recurso |
| `404`       | Recurso nao encontrado          |
| `409`       | Conflito (ex: nome duplicado)   |
| `429`       | Limite de requisicoes excedido  |
| `500`       | Erro interno do servidor        |

***

## Seguranca

* Todas as conexoes usam TLS 1.3
* API Keys sao armazenadas com hash SHA-256
* Dados em conformidade com LGPD
* Armazene chaves em variaveis de ambiente ou secrets managers
* Implemente retry com backoff exponencial para falhas transientes
* Valide webhooks usando o header `X-Laudos-Signature`

***

## Suporte

* **Email**: [dev@laudos.ai](mailto:dev@laudos.ai)
* **Documentacao**: [manual.laudos.ai](https://manual.laudos.ai)
