Store API Responses in Your Own S3 Bucket

API responses stored in YOUR cloud storage — AWS S3, MinIO, Backblaze, 28+ providers. You control your data, always.

Live Demo — This demo runs on a testnet using test USDC. When you install your own Sertone, it connects to the production blockchain with real USDC.

How BYO-Cloud Delivery Works

Consumer Your Sertone request Sertone Encrypted tunnel forward API Owner Owner's Sertone encrypted response S3 Bucket MinIO / AWS / B2 Consumer-owned AES-256-GCM encrypted consumer downloads & decrypts

Responses are encrypted end-to-end and stored in the consumer's own S3-compatible bucket. The consumer downloads and decrypts locally.

Why BYO-Cloud Delivery?

When API responses contain sensitive data — financial records, medical results, proprietary datasets — you don't want them sitting on someone else's infrastructure. Sertone BYO-Cloud delivery stores encrypted responses directly in your own S3-compatible storage bucket. You choose the provider, you hold the keys, you control retention.

This is ideal for enterprises with strict data residency requirements, regulated industries that mandate data sovereignty, or any team that refuses to let API response data touch third-party servers. Supported providers include AWS S3, MinIO, Backblaze B2, Wasabi, DigitalOcean Spaces, Cloudflare R2, and 22+ more.

When a consumer makes an API call with cloud delivery enabled, the response is AES-256-GCM encrypted and uploaded to the configured MinIO bucket. The consumer then downloads and decrypts it locally — the platform never sees the plaintext data.

Live Demo — S3 Bucket Delivery

Call API with Cloud Delivery

Click "Run Demo" to make an API call with S3 delivery.

The response will show the encrypted object stored in MinIO, along with the decrypted data and latency metrics.

Code Samples

# Call API with S3 delivery via your local Sertone wrapper
$ curl -X POST https://localhost:3000/internal/call \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_CONSUMER_SECRET" \
  -d '{
    "api_id_public": "bb-webhook-receiver",
    "method": "GET",
    "path": "/status"
  }'

# Response includes S3 object metadata
{
  "status": 200,
  "delivery": "s3",
  "bucket": "demo-responses",
  "objectKey": "resp_1711612800_abc123.enc",
  "encrypted": true,
  "cipher": "AES-256-GCM"
}
// JavaScript — fetch with S3 delivery
const response = await fetch('https://localhost:3000/internal/call', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_CONSUMER_SECRET'
  },
  body: JSON.stringify({
    api_id_public: 'bb-webhook-receiver',
    method: 'GET',
    path: '/status'
  })
});

const { data } = await response.json();
console.log('Result:', data.result);

// Download and decrypt from your bucket
// const s3Object = await s3Client.getObject({ Bucket: 'demo-responses', Key: data.result.objectKey });
// const decrypted = decrypt(s3Object.Body, yourPrivateKey);
# Python — requests with S3 delivery
import requests
import boto3

response = requests.post(
    'https://localhost:3000/internal/call',
    headers={
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_CONSUMER_SECRET',
    },
    json={
        'api_id_public': 'bb-webhook-receiver',
        'method': 'GET',
        'path': '/status',
    },
)

result = response.json().get('data', {}).get('result', {})
print(f"S3 Object: {result.get('objectKey')}")
print(f"Cipher: {result.get('cipher')}")

# Download from your MinIO / S3 bucket
# s3 = boto3.client('s3', endpoint_url='https://minio.your-server.com')
# obj = s3.get_object(Bucket='demo-responses', Key=result['objectKey'])

Self-Host with Your Own S3 Storage

1

Run the Docker Container

Pull and run the free Sertone wrapper on your own infrastructure. One command sets everything up.

docker run -d --name sertone \
  -p 3000-3003:3000-3003 -p 3005-3006:3005-3006 \
  -v sertone-data:/app/data \
  sertone/wrapper:latest
2

Open the Web Console

Navigate to https://localhost:3002/panel to access your Sertone control center. Create your account and connect your wallet on first launch.

3

Browse the Catalog

Click Catalog & SDKs in the sidebar. Search for APIs, try them in demo mode (free), then switch to production when ready.

4

Make Your First Call

Copy your consumer secret from Settings > Security, then use the code samples above to call any API from your own code.