Connectors API
Manage cloud storage connectors programmatically. All endpoints require authentication and are scoped to the user’s workspace.
List Connectors
GET /api/v1/connectorsReturns all connectors in the user’s workspace.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
provider | string | Filter by provider (aws, gcp, azure) |
status | string | Filter by status (active, disconnected, error) |
limit | integer | Page size (default: 20, max: 100) |
cursor | string | Pagination cursor |
Response:
{
"status": "success",
"data": [
{
"id": "conn-abc123",
"name": "Production S3",
"provider": "aws",
"status": "active",
"config": {
"role_arn": "arn:aws:iam::123456789012:role/SlimIOScanner",
"region": "us-east-1",
"buckets": ["prod-data", "prod-exports"]
},
"last_scan": "2024-03-15T10:00:00Z",
"findings_count": 1247,
"risk_score": 62,
"created_at": "2024-01-10T08:00:00Z"
}
],
"pagination": {
"limit": 20,
"has_more": false
}
}Create Connector
POST /api/v1/connectorsCreate a new cloud storage connector.
Request Body:
{
"name": "Production S3",
"provider": "aws",
"config": {
"role_arn": "arn:aws:iam::123456789012:role/SlimIOScanner",
"external_id": "ext-abc123",
"region": "us-east-1",
"buckets": ["prod-data", "prod-exports"],
"prefixes": ["data/", "exports/"],
"file_types": ["csv", "json", "parquet"]
}
}Provider-Specific Config:
For AWS:
role_arn(required) — IAM Role ARNexternal_id(required) — STS External IDregion(required) — AWS region
For GCP:
project_id(required) — GCP project IDservice_account_email(required) — Service account emailwif_provider(required) — WIF provider resource name
For Azure:
tenant_id(required) — Azure AD tenant IDclient_id(required) — App registration client IDclient_secret(required) — Client secret valuestorage_account(required) — Storage account name
Response: 201 Created
{
"status": "success",
"data": {
"id": "conn-def456",
"name": "Production S3",
"provider": "aws",
"status": "pending_test",
"created_at": "2024-03-15T14:30:00Z"
}
}Get Connector
GET /api/v1/connectors/:idRetrieve details for a specific connector.
Response:
{
"status": "success",
"data": {
"id": "conn-abc123",
"name": "Production S3",
"provider": "aws",
"status": "active",
"config": { ... },
"scan_history": [
{
"scan_id": "scan-001",
"status": "completed",
"started_at": "2024-03-15T10:00:00Z",
"completed_at": "2024-03-15T10:15:00Z",
"files_processed": 5420,
"findings_count": 1247
}
],
"risk_score": 62,
"created_at": "2024-01-10T08:00:00Z",
"updated_at": "2024-03-15T10:15:00Z"
}
}Delete Connector
DELETE /api/v1/connectors/:idPermanently delete a connector and all associated scan history and findings.
Deleting a connector is irreversible. All scan history and findings associated with this connector will be permanently removed. Consider disconnecting the connector instead if you may need the data later.
Response: 200 OK
{
"status": "success",
"data": {
"id": "conn-abc123",
"deleted": true
}
}Test Connector
POST /api/v1/connectors/:id/testTest the connector’s credentials by attempting to list objects in the configured scope. This does not trigger a scan.
Response:
{
"status": "success",
"data": {
"connected": true,
"buckets_accessible": ["prod-data", "prod-exports"],
"sample_objects": 15420,
"latency_ms": 245
}
}Trigger Scan
POST /api/v1/connectors/:id/scanTrigger a scan on the connector. See Scans API for detailed scan management.
Request Body:
{
"type": "full",
"options": {
"max_files": 50000,
"file_types": ["csv", "json"]
}
}Response: 201 Created
{
"status": "success",
"data": {
"scan_id": "scan-ghi789",
"connector_id": "conn-abc123",
"status": "queued",
"created_at": "2024-03-15T14:30:00Z"
}
}