Skip to content

Connectors

Connect external storage providers to import documents into the dataroom. Supported providers: Google Drive, OneDrive, SharePoint, Dropbox, and Amazon S3.

See Connector provider and Connection status for accepted enum values.

GET /connectors/oauth/providers

List available OAuth providers.

Response 200

json
{
  "providers": [
    { "provider": "google_drive", "label": "Google Drive" },
    { "provider": "onedrive", "label": "OneDrive" }
  ]
}

GET /connectors/oauth/{provider}/authorize

Start an OAuth flow for a storage provider.

Query parameters

ParamTypeRequiredDescription
login_hintstringnoEmail hint passed to the OAuth provider's consent screen
site_idstringconditionalRequired for sharepoint — the SharePoint site ID to connect
return_tostringnoFrontend path to redirect after the OAuth callback completes

Response 200

json
{
  "authorize_url": "https://accounts.google.com/..."
}

GET /connectors/oauth/{provider}/callback

OAuth provider redirect callback. Unauthenticated; state-verified.

Response 200 (JSON) or 303 (redirect to frontend).

POST /connectors/s3/connections

Create an S3 connection.

Request body

FieldTypeRequired
display_namestringyes
credentialsobjectyes
configobjectno

credentials and config are provider-specific objects. Required keys depend on the connector type; values are stored encrypted server-side.

Response 201 — connection object.

GET /connectors/connections

List all connections for the current user.

Response 200

json
{
  "items": [
    {
      "id": "uuid",
      "provider": "google_drive",
      "display_name": "My Drive",
      "status": "active",
      "last_error": null,
      "credentials_masked": { "email": "j***@example.com" },
      "config": {},
      "user_id": "uuid",
      "created_at": "2026-01-05T08:00:00Z",
      "updated_at": "2026-01-05T08:00:00Z"
    }
  ]
}

GET /connectors/connections/

Get connection details.

Response 200 — connection object.

PATCH /connectors/connections/{connection_id}/refresh

Re-validate stored credentials for a connection and update its status.

Response 200 — updated connection object. The status field is "active" when validation succeeds, or "needs_reauth" when credentials are invalid or expired.

PATCH /connectors/connections/

Update a connection.

Request body

FieldType
display_namestring
credentialsobject
configobject

All fields optional.

Response 200 — updated connection object.

DELETE /connectors/connections/

Response 204 No content.

POST /connectors/connections/{connection_id}/browse

Browse the remote file tree.

Request body

FieldTypeDefault
pathstring"" (root)

Response 200

json
{
  "path": "Documents/Reports",
  "files": [
    {
      "file_id": "drive-file-id",
      "name": "Q1 Report.pdf",
      "path": "Documents/Reports/Q1 Report.pdf",
      "mime_type": "application/pdf",
      "size_bytes": 245000,
      "is_folder": false
    }
  ]
}