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

# API screenshot di siti web

> L'API screenshot di siti web Cleariflow cattura immagini pixel-perfect di qualsiasi URL pubblico tramite un'interfaccia JSON RESTful moderna con protezione SSRF, controllo del viewport e opzioni di automazione del browser.

## Per iniziare

<Card title="Screenshot sincrono" icon="camera" href="screenshot/screenshot">
  L'endpoint `screenshot` esegue una sessione del browser e restituisce un'immagine codificata in base64 in JSON — ideale per integrazioni programmatiche e l'API Tester.
</Card>

<Card title="Job asincroni" icon="clock" href="screenshot/jobs">
  Gli endpoint `jobs` accodano attività di screenshot e permettono di verificare stato e risultati — ideali per alto volume o pagine lente.
</Card>

### Architettura REST

L'API screenshot di siti web segue i principi REST, con URL prevedibili orientati alle risorse e codici di stato HTTP standard per un'integrazione fluida e la gestione degli errori.

### Sicurezza HTTPS

Tutte le comunicazioni API sono protette con TLS 1.2 o superiore per garantire integrità e privacy dei dati.

### Versioning API

L'API screenshot di siti web mantiene la retrocompatibilità tramite versioning e attualmente opera in Version 1.

### Autenticazione

La chiave API è l'unica credenziale per accedere all'API screenshot di siti web. Ogni servizio Cleariflow richiede una chiave univoca. Includi la chiave nel corpo JSON come `api_key`, o come parametro query per l'endpoint GET legacy.

### URL base

```
https://screenshot.cleariflow.com
```

### Rendering delle pagine

Le pagine vengono renderizzate in un browser headless reale. JavaScript viene eseguito completamente prima della cattura dello screenshot. La protezione SSRF integrata blocca le richieste a localhost e intervalli IP privati.

## Codici di risposta ed errore

Quando le richieste falliscono, l'API restituisce risposte di errore JSON strutturate con codici e descrizioni specifici per una risoluzione efficace dei problemi.

| Codice | Tipo                  | Dettagli                                                                                                   |
| ------ | --------------------- | ---------------------------------------------------------------------------------------------------------- |
| 200    | OK                    | Screenshot acquisito con successo.                                                                         |
| 202    | Accepted              | Il job asincrono è stato accodato con successo.                                                            |
| 400    | Bad request           | Richiesta non valida — URL non valido, destinazione bloccata o payload malformato.                         |
| 401    | Unauthorized          | La richiesta non era accettabile. Di solito a causa di una chiave API mancante o errata.                   |
| 422    | Quota reached         | La richiesta è stata interrotta per crediti API insufficienti. (Piani gratuiti)                            |
| 429    | Too many requests     | Raggiunto il limite di richieste al secondo. Nei piani gratuiti le richieste sono limitate a 1 al secondo. |
| 500    | Internal server error | La richiesta non è stata completata a causa di un errore del server.                                       |
