Cloudflare R2
Reads objects from an R2 bucket using R2's S3-compatible API.
Shape: credential — connectable headlessly. Provider id: cloudflare_r2.
Credentials
Section titled “Credentials”| Field | Required | Notes |
| --- | --- | --- |
| accessKeyId | ✅ | From an R2 API token |
| secretAccessKey | ✅ | Stored encrypted |
| endpoint | ✅ | Your Cloudflare account ID, not a URL |
| bucket | ✅ | |
Connect
Section titled “Connect”curl -X POST https://api.divinci.app/api/v1/connectors/cloudflare_r2/auth \ -H "Authorization: Bearer $DIVINCI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "credentials": { "accessKeyId": "…", "secretAccessKey": "…", "endpoint": "<cloudflare-account-id>", "bucket": "my-docs" } }'Credentials are validated with a one-object list before they are stored.
Create the token in Cloudflare with Object Read on the bucket; the connector never writes.
What gets ingested
Section titled “What gets ingested”Objects under an optional key prefix (syncFilter), selected on the Connectors
page. As with the other bucket providers, sync runs from the web app — the CLI
and v1 sync routes cover web_crawl and wordpress only.
From the CLI
Section titled “From the CLI”divinci connectors status cloudflare_r2divinci connectors settings cloudflare_r2 --auto-sync on --cadence 1440divinci connectors disconnect cloudflare_r2