L'API Notiondesk ti permette di pubblicare le modifiche apportate a Notion non appena sono pronte: sincronizza un intero centro assistenza, una raccolta o un singolo articolo, tramite uno script, una pipeline CI o il tuo strumento personalizzato. Puoi anche attivare o disattivare la sincronizzazione programmata. Il tuo contenuto rimane in Notion; la sincronizzazione lo legge nuovamente e pubblica le modifiche.
| Metodo | Sentiero | Ambito di applicazione | Fa |
|---|---|---|---|
POST | /sites/{site_id}/sync | sync | Sincronizza l'intero centro assistenza |
POST | /sites/{site_id}/categories/{category_id}/sync | sync | Sincronizza una raccolta e i suoi articoli |
POST | /sites/{site_id}/articles/{article_id}/sync | sync | Sincronizza un articolo |
PATCH | /sites/{site_id}/settings/auto-sync | sync | Attiva o disattiva la sincronizzazione programmata |
Non hai mai utilizzato la sincronizzazione? Prima di iniziare, leggi Come sincronizzare il tuo centro assistenza con Notion .
Sincronizza un intero centro assistenza
Notiondesk legge nuovamente ogni articolo e raccolta da Notion e pubblica le modifiche. Il percorso risponde a 204 No Content non appena la sincronizzazione viene messa in coda e la sincronizzazione viene eseguita in background.
È in esecuzione una sola sincronizzazione del sito alla volta. Mentre una sincronizzazione del centro assistenza è in coda o in esecuzione, sia che sia stata pianificata, avviata dalla dashboard o tramite API, un altro trigger risponde con il codice 409 conflict_error. Attendi qualche minuto e riprova.
I contenuti che non sono cambiati dall'ultima sincronizzazione non vengono tradotti nuovamente.
Sincronizza una raccolta
Utilizza il id della collezione dall'elenco delle collezioni . Notiondesk legge nuovamente la collezione e ciascuno dei suoi articoli da Notion, quindi pubblica solo gli articoli modificati dall'ultima sincronizzazione. Gli articoli non modificati non vengono tradotti o fatturati nuovamente.
Sincronizza un articolo
Utilizzare l'articolo id dall'elenco degli articoli .
curl -i -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Idempotency-Key: 9b2e4c1a-sync-after-notion-edit"curl -i -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/categories/1761493027/sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Idempotency-Key: 2c8e5b7d-sync-billing"curl -i -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles/1761580412/sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Idempotency-Key: 4d7a0f3e-sync-getting-started"In che modo la sincronizzazione di raccolte e articoli differisce dalla sincronizzazione del sito?
| Sincronizzazione del sito | Sincronizzazione della raccolta o dell'articolo | |
|---|---|---|
| Leggi da Notion | Ogni articolo e collezione | Una collezione e i suoi articoli, oppure un articolo |
| Mentre è in corso un'altra sincronizzazione dello stesso elemento | Risposte 409 __PRESERVATO_45__ | Mette in coda un'altra sincronizzazione. Non risponde mai conflict_error |
| Limitato da | Una sincronizzazione alla volta | Il tuo budget di scrittura per la chiave è di 20 richieste al minuto |
Ogni sincronizzazione completata aggiorna l'intero centro assistenza. Avvia la sincronizzazione una sola volta dopo ogni modifica in Notion, non tramite un timer. Per aggiornamenti regolari, utilizza invece la sincronizzazione programmata.
Conferma la sincronizzazione
Un trigger di sincronizzazione risponde con 204 quando la sincronizzazione viene messa in coda, non quando termina. Le sincronizzazioni avviate tramite API non vengono visualizzate nello stato di sincronizzazione , che elenca solo le esecuzioni pianificate.
Per confermare la sincronizzazione, leggi il contenuto pubblicato:
- Avvia la sincronizzazione e annota l'ora.
- Leggi l'articolo modificato con
GET /sites/{site_id}/articles/{article_id}ogni 30 secondi.
- Fermati quando
last_updatedè successivo all'ora che hai annotato, oppure quandotextmostra la tua modifica.
- Se
sync_failedètrue,sync_error_codespiega il perché. Correggi l'articolo in Notion e sincronizza di nuovo.
Attiva o disattiva la sincronizzazione programmata
curl -i -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/settings/auto-sync" \
-H "Authorization: Bearer $NOTIONDESK_API_KEY" \
-H "nd-version: 2026-10-16" \
-H "Content-Type: application/json" \
-d '{"auto_sync_enabled": true}'| Campo | Tipo | Note |
|---|---|---|
auto_sync_enabled | booleano | Se Notiondesk si sincronizza da Notion secondo una pianificazione |
Il percorso risponde a 204 No Content. Leggi il nuovo stato in auto_sync_enabled del centro assistenza e la pianificazione nel suo stato di sincronizzazione.
- Invia i valori booleani JSON
trueofalse. I valori0e"false"vengono letti cometrue.
- La frequenza di sincronizzazione non può essere modificata tramite API: l'invio di
auto_sync_frequencyrestituisce 400validation_error. Modificala nella dashboard.
- Il tuo piano deve includere la sincronizzazione programmata.
- Attivando la sincronizzazione programmata, le sincronizzazioni non presidiate possono avviare le traduzioni a pagamento anche quando la traduzione automatica è attiva.
Questo percorso necessita dell'ambito sync, non di write, perché decide quando vengono eseguite le sincronizzazioni automatiche.
Errori
| Stato | Quando | code |
|---|---|---|
| 400 | Sincronizzazione automatica soltanto: il corpo contiene un campo sconosciuto, incluso auto_sync_frequency | validation_error |
| 403 | La chiave non ha l'ambito sync | insufficient_scope |
| 403 | Il centro assistenza è disabilitato, il tuo piano non include la sincronizzazione programmata oppure il creatore della chiave non può sincronizzare questo centro assistenza | permission_denied |
| 404 | Il centro assistenza, la raccolta o l'articolo non sono presenti nel tuo spazio di lavoro | not_found |
| 409 | Sincronizzazione del sito soltanto: la sincronizzazione del centro assistenza è già in coda o in corso | conflict_error |
| 409 | Una richiesta con lo stesso Idempotency-Key è ancora in fase di elaborazione | request_in_progress |
conflict_error e request_in_progress sono errori diversi con lo stesso stato: branch su code. Vedi Gestione degli errori API, dei limiti di frequenza e dei tentativi di ripetizione per Notiondesk .
Domande frequenti
È sicuro riprovare ad attivare la sincronizzazione?
Sì, con un Idempotency-Key. Un nuovo tentativo con la stessa chiave risponde a 204 con X-Idempotent-Replay: true e non mette in coda nulla, anche se la prima sincronizzazione è ancora in corso.
Come faccio a sapere quando una sincronizzazione è terminata?
Leggi l'articolo o la raccolta sincronizzata finché last_updated non è successivo al tuo trigger, oppure finché text non mostra la tua modifica. Non fare affidamento solo su sync_in_progress: può rimanere false per alcuni secondi dopo il trigger, prima che inizi la sincronizzazione in coda. Le sincronizzazioni attivate tramite API non sono elencate nello stato di sincronizzazione.
Devo sincronizzare un solo articolo o l'intero centro assistenza?
Sincronizza un singolo articolo dopo averlo modificato e una raccolta dopo aver modificato diversi articoli al suo interno. Sincronizza l'intero centro assistenza dopo modifiche sostanziali, come lo spostamento di articoli tra le raccolte.
Posso sincronizzare da GitHub Actions?
Sì. Archivia la chiave come segreto del repository e richiama il percorso di sincronizzazione del sito in una fase del flusso di lavoro. Vedi Automatizzare le attività comuni del centro assistenza con l'API Notiondesk .