Skip to main content
Beyond a one-shot POST /api/kiwi/import, KiwiFS supports a small import pipeline for interactive tools and agents.

Browse metadata

POST /api/kiwi/import/browse lists tables or collections for a connected source. Supported from values today include postgres, mysql, mongodb, and firestore. The body mirrors connection fields (dsn, uri, database, project, credentials, and so on) documented in Import and export. Response shape:
{ "tables": [{ "name": "users" }, { "name": "orders" }] }

Preview rows

POST /api/kiwi/import/preview streams a few records through the same importer stack and returns path, frontmatter, and a short body_preview for each — without writing pages. Optional limit (capped) controls sample size.

Saved connections

When a connection store is enabled, the server can persist metadata only (no secrets):
MethodPathPurpose
GET/api/kiwi/import/connectionsList saved connections.
POST/api/kiwi/import/connectionsSave or update metadata.
DELETE/api/kiwi/import/connections/:idRemove a saved connection.
POST/api/kiwi/import/connections/:id/runRun import again; credentials must be supplied in the body for each run.
POST/api/kiwi/import/connections/:id/syncEnable, pause, or change auto-sync interval.
See Import and export for the same endpoints with request detail.

Auto-sync

Sources that change over time support periodic re-import: postgres, mysql, mongodb, firestore, notion, airtable, and Airbyte firebase-rtdb.
1

Save a connection

Create a saved connection from the Data sources panel in the web UI or via POST /import/connections.
2

Enable sync

Toggle auto-sync in the connection detail view, or call POST /import/connections/:id/sync with { "enabled": true, "interval": "1h" }. Valid intervals include 5m, 1h, 6h, and 24h.
3

Monitor status

Check GET /api/kiwi/import/sync/status or the connection badge in the web UI for idle, running, or error states.

Full-sync archival

When auto-sync runs, KiwiFS performs a full sync: pages imported from the source in previous runs that no longer appear in the latest import are tombstoned with an _archived_at frontmatter field rather than deleted. Re-importing a row clears the archive marker. The import response includes an archived count when tombstoning occurs:
{ "imported": 12, "skipped": 40, "archived": 3, "errors": [] }
Full-sync archival applies to syncable live sources without a row limit. One-shot CLI imports with --limit do not tombstone missing pages.

File ingestion

POST /api/kiwi/ingest converts supported office and document formats into markdown pages via the MarkItDown pipeline. See Import and export.

Airbyte import

Docker and Cloud connectors.

Web UI

Data sources panel and import wizard.
Last modified on May 23, 2026