POST
/
v1
/
integrations
/
s3
{
  "400": {},
  "401": {},
  "403": {},
  "integrationId": "<string>",
  "status": "<string>",
  "testResult": {
    "connected": true,
    "bucketAccessible": true,
    "permissions": {},
    "error": "<string>"
  },
  "createdAt": "<string>"
}

Configure S3 Integration

Set up or update S3/MinIO storage integration for automatic audio file synchronization and storage.

Request

endpoint
string
required
S3-compatible endpoint URL (e.g., https://s3.amazonaws.com or https://minio.example.com)
accessKeyId
string
required
S3 access key ID
secretAccessKey
string
required
S3 secret access key
bucket
string
required
S3 bucket name for audio storage
region
string
default:"us-east-1"
AWS region (not required for MinIO)
pathPrefix
string
Optional path prefix for organization (e.g., “authentivoice/audio/”)
options
object
Additional configuration options

Response

integrationId
string
Unique identifier for the integration
status
string
Integration status: active, inactive, error
testResult
object
Connection test results
createdAt
string
Integration creation timestamp

Examples

# Configure AWS S3
curl -X POST https://api.authentivoice.com/v1/integrations/s3 \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "https://s3.amazonaws.com",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
    "bucket": "company-audio-files",
    "region": "us-west-2",
    "pathPrefix": "authentivoice/recordings/",
    "options": {
      "autoImport": true,
      "importFolders": ["new-calls", "unprocessed"]
    }
  }'

Response Example

{
  "integrationId": "int_s3_abc123",
  "status": "active",
  "testResult": {
    "connected": true,
    "bucketAccessible": true,
    "permissions": {
      "read": true,
      "write": true,
      "delete": true,
      "list": true
    }
  },
  "createdAt": "2024-01-15T14:00:00Z",
  "configuration": {
    "endpoint": "https://s3.amazonaws.com",
    "bucket": "company-audio-files",
    "region": "us-west-2",
    "pathPrefix": "authentivoice/recordings/",
    "autoImport": true
  }
}

Auto-Import Configuration

When auto-import is enabled, the system will:
  1. Monitor specified folders in your S3 bucket
  2. Detect new audio files (MP3, WAV, M4A, OGG)
  3. Import files automatically for processing
  4. Maintain folder structure in AuthentiVoice
  5. Track import status to avoid duplicates

Import Rules

{
  "options": {
    "autoImport": true,
    "importFolders": ["new-calls", "unprocessed"],
    "importFilter": {
      "extensions": [".mp3", ".wav", ".m4a", ".ogg"],
      "minSize": 10240,        // 10KB minimum
      "maxSize": 524288000,    // 500MB maximum
      "modifiedWithin": 86400  // Files modified in last 24 hours
    },
    "deleteAfterImport": false,
    "moveToFolder": "processed"  // Move files after import
  }
}

Update Existing Integration

To update an existing integration, use the same endpoint:
curl -X POST https://api.authentivoice.com/v1/integrations/s3 \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "integrationId": "int_s3_abc123",
    "bucket": "new-bucket-name",
    "options": {
      "autoImport": false
    }
  }'

Error Responses

400
Bad Request
Invalid configuration
{
  "error": {
    "code": "INVALID_ENDPOINT",
    "message": "Invalid S3 endpoint URL format"
  }
}
401
Unauthorized
Invalid credentials
{
  "error": {
    "code": "S3_AUTH_FAILED",
    "message": "Failed to authenticate with S3. Check your access keys."
  }
}
403
Forbidden
Insufficient permissions
{
  "error": {
    "code": "BUCKET_ACCESS_DENIED",
    "message": "Access denied to bucket. Check bucket permissions and policies."
  }
}