Un'unica API, cinque modi per chiamarla#
EnConvert è un'unica API HTTP su https://api.enconvert.com. Il server MCP, la CLI, il node n8n e i dieci SDK sono client di quell'API, non prodotti separati. Raggiungono gli stessi endpoint con la stessa chiave.
REST è il substrato#
Ogni chiamata finisce nella stessa forma: una richiesta HTTPS verso https://api.enconvert.com con un header X-API-Key. Il gateway non sa quale client l'ha inviata, a parte la stringa User-Agent, e l'unico motivo per cui quella stringa esiste è l'attribuzione: ogni SDK invia enconvert-sdk/<version> (<language>) così il traffico può essere conteggiato per linguaggio.
Nessun client ha un endpoint tutto suo. Non esiste alcuna operazione API raggiungibile tramite la CLI o il server MCP che tu non possa eseguire con curl e le pagine di questo sito.
Il contrario va detto chiaramente, perché è qui che le persone restano sorprese: i client incapsulano REST a profondità diverse.
- La CLI è la più ampia. Ha verbi per le route di conversione e per perceive, discover, lookup, distill e ingest, più
enconvert apicome passthrough in stile gh che raggiunge tutto ciò per cui non ha ancora un verbo. - Il server MCP registra 24 strumenti. Lascia deliberatamente fuori gli endpoint del signing secret dei webhook (
GET /v2/ingest/webhook-secrete il suo corrispettivo di rotazione), perché un signing secret non dovrebbe essere leggibile da un modello. - Il node n8n espone 6 risorse e 16 operazioni, modellate sui passaggi di un workflow anziché sulla copertura completa dell'API.
- Gli SDK coprono gli endpoint di conversione e gli endpoint web V2 in tutti e dieci i linguaggi.
Quando un client è più ristretto dell'API, scendi a REST per quella singola chiamata. Mescolare va bene. Chiamate SDK e chiamate HTTP scritte a mano possono condividere un progetto e una chiave senza alcuna gestione particolare.
Una sola chiave, ogni superficie#
Ogni superficie si autentica con la stessa chiave API privata (sk_...), inviata nell'header X-API-Key. Generane una nella dashboard e funziona in curl, in enconvert auth login, in una configurazione MCP, in una credenziale n8n e nel costruttore di un SDK. Ruotarla le ruota tutte.
L'unica cosa che cambia è dove viene conservata la chiave.
| Superficie | Dove risiede la chiave | Override da ambiente |
|---|---|---|
| REST | Ovunque il tuo codice conservi i segreti | -- |
| SDK | Passata al costruttore del client | -- |
| CLI | credentials.toml, permessi file 0600 |
ENCONVERT_API_KEY |
| server MCP | ~/.enconvert/config.json, permessi file 600 |
ENCONVERT_API_KEY |
| node n8n | La credenziale enconvertApi dentro n8n |
-- |
sk_.... Una chiave pubblica pk_ serve al codice del browser che genera un JWT a breve scadenza, e la credenziale n8n rifiuta senza appello le chiavi pk_. Consulta Autenticazione.
Anche l'utilizzo è condiviso. Un'unica quota mensile di ops copre ogni superficie, e un'operazione costa lo stesso sia che arrivi da un programma Go sia che arrivi da un terminale. Consulta Rate limit e quote.
Quando scegliere ciascuna#
| Superficie | Cos'è | Scegliila quando |
|---|---|---|
| REST | L'API stessa: corpi JSON e multipart su HTTPS | Stai scrivendo codice applicativo, non vuoi dipendenze, oppure il tuo linguaggio non ha un SDK |
| SDK | Client tipizzati per dieci linguaggi | Vuoi l'autocompletamento su ogni parametro e un recupero dai timeout che non hai dovuto scrivere tu |
| CLI | Il binario enconvert, da Homebrew, Scoop, uno script shell di installazione o npm |
Stai scrivendo uno script shell, esegui un lavoro una tantum o lavori in CI |
| server MCP | @enconvert/mcp, un server stdio locale per assistenti AI |
Un agente di coding deve decidere da solo quando chiamare l'API |
| node n8n | @enconvert/n8n-nodes-enconvert, un community node |
Il workflow vive già in n8n e vuoi il risultato come dati binary n8n |
Due di queste scelte sono di solito ovvie. Se a digitare è una persona, è la CLI; se a decidere è un modello, è MCP. La domanda REST o SDK è l'unica su cui valga la pena ragionare, e dipende da quanto codice di retry e di polling vuoi mantenere tu.
La stessa lettura, in tre modi#
Leggere https://example.com/pricing in Markdown è una sola richiesta POST /v2/perceive. Eccola come HTTP grezzo:
curl -X POST https://api.enconvert.com/v2/perceive \
-H "X-API-Key: sk_your_private_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/pricing",
"outputs": ["markdown"]
}'
La CLI emette lo stesso POST /v2/perceive. Il comando da solo non invia outputs, quindi ottiene il valore predefinito del server: Markdown più il blocco strutturato inline:
enconvert perceive https://example.com/pricing
Con MCP la chiamata non la scrivi affatto. Chiedi all'assistente di leggere la pagina, lui sceglie lo strumento perceive_url, e gli argomenti che contano vengono fuori così:
{
"name": "perceive_url",
"arguments": {
"url": "https://example.com/pricing",
"outputs": ["markdown"]
}
}
Dove andare adesso#
La configurazione si trova nelle guide alle integrazioni, una pagina per superficie:
- Integrazioni è l'hub, e copre anche i widget web incorporabili.
- Impostazione MCP installa
@enconvert/mcpin Claude Code, Cursor, Windsurf e altri sei client connpx @enconvert/mcp setup. - n8n installa il community node e ti accompagna tra le sei risorse.
- CLI copre l'installazione,
enconvert auth login, i flag per lo scripting e i codici di uscita. - SDK elenca tutti e dieci i pacchetti, con una pagina ciascuno.
Per l'API in sé, Endpoint è il riferimento e Autenticazione spiega i due tipi di chiave.
Domande frequenti#
Il server MCP è un'API diversa dall'API REST?#
No. @enconvert/mcp è un processo stdio locale che chiama gli stessi endpoint REST pubblici documentati su questo sito, usando la tua chiave API privata. Ogni strumento corrisponde a una richiesta /v1/convert/* o /v2/*, quindi attinge dalla stessa quota e restituisce gli stessi errori.
Mi servono API key separate per la CLI, per MCP e per la mia applicazione?#
No. Un'unica chiave privata (sk_...) le autentica tutte, e puoi riusare la stessa chiave su tutte le superfici. Chiavi separate restano comunque utili se vuoi revocare una superficie senza toccare le altre, per esempio una chiave di CI che puoi ruotare indipendentemente da quella del tuo portatile.
Posso usare una chiave pubblica pk_ con la CLI o con un SDK?#
No. Le chiavi pubbliche esistono per il codice del browser, dove generano un JWT a breve scadenza invece di essere inviate direttamente. La CLI, il server MCP, il node n8n e gli SDK si aspettano tutti una chiave privata sk_..., e la credenziale n8n rifiuta una chiave pk_ già in fase di validazione.
C'è qualcosa disponibile solo tramite gli SDK o solo tramite la CLI?#
Nessuna operazione API. Quello che gli SDK aggiungono è lato client: opzioni type-safe, download in streaming su disco e fallback automatico al polling di GET /v1/convert/status/{job_id} quando una conversione lunga supera il timeout del proxy. Tutto questo puoi scriverlo tu direttamente su REST grezzo.
Quale superficie dovrei usare dentro una pipeline di CI?#
La CLI, con ENCONVERT_API_KEY impostata dal secret store della tua CI e --no-input così nessun prompt può bloccare l'esecuzione. I suoi codici di uscita sono un contratto pubblicato e stabile, quindi una conversione fallita fa fallire lo step senza dover analizzare l'output.