Before You Begin to Use a Wasabi API

Prev Next

Each of these items is described in detail after the following list:

  • A Wasabi account with access to the Wasabi Management Console.

  • Your Access Key ID and Secret Access Key for API authentication that were generated in the Wasabi Console.

  • A regional service endpoint (for example, s3.us-east-1.wasabisys.com).

  • An API client:

    • AWS CLI

    • SDK (for example, boto3, AWS SDK for JavaScript, etc.)

    • HTTP client (for example, Postman, cURL)

Wasabi does not charge for egress or API requests, making it ideal for high-access workloads.

Create a Wasabi Account

Go to https://console.wasabi.com and sign up for a free trial or log in to your organization’s account.

Generate Access and Secret Keys

Log in to the Wasabi Console, then:

  1. Click Access Keys in the Console navigation panel.

  2. Create new access and secret keys or use existing keys.

  3. Copy both keys to a safe place.

Choose Your Regional Service Endpoint

Refer to Service URLs for Wasabi’s Storage Regions.

Connect an API Client

Connect an API client using SDK or S3-compliant tools. Wasabi is S3-compatible, so you can use AWS SDKs and tools.

Using the Wasabi API Client (via HTTP)

You can use any HTTP client to interact with Wasabi using signed S3 requests.

Example: Upload with cURL

Requires pre-signed URL or AWS Signature v4 headers (generated using SDKs or tools like Postman, boto3, etc.)

curl -X PUT \
  --upload-file ./myfile.txt \
  "https://s3.us-west-1.wasabisys.com/my-wasabi-bucket/myfile.txt" \
  -H "Authorization: AWS <ACCESS_KEY>:<SIGNATURE>" \
  -H "x-amz-date: <ISO_TIMESTAMP>"

Because manually signing requests is complex, it’s easier to use SDKs or CLI unless you're automating or integrating at a low level.

Using AWS SDKs (Python with boto3)

Install boto3

pip install boto3

Example Python Script

import boto3

session = boto3.session.Session()

s3 = session.client(
    service_name='s3',
    aws_access_key_id='YOUR_ACCESS_KEY',
    aws_secret_access_key='YOUR_SECRET_KEY',
    endpoint_url='https://s3.us-west-1.wasabisys.com'
)

# Upload a file
s3.upload_file('localfile.txt', 'my-wasabi-bucket', 'remote/path/localfile.txt')

# List files
response = s3.list_objects_v2(Bucket='my-wasabi-bucket')
for obj in response.get('Contents', []):
    print(obj['Key'])