HTTP API

Blob Storage

GET/api/v1/blobs
GET
/api/v1/blobs

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Query Parameters

prefix?string

Prefix to filter blobs by

page_size?integer

Number of items per page (default 50, max 1000)

Formatint32
Range0 <= value
cursor?string

Cursor for pagination (from previous response)

Response Body

application/json

curl -X GET "https://example.com/api/v1/blobs"
{  "blobs": [    {      "content_type": "string",      "expires_at": 0,      "last_modified": 0,      "path": "string",      "size": 0    }  ],  "cursor": "string",  "has_more": true,  "page_size": 0,  "prefix": "string"}
POST/api/v1/blobs/batch-delete
POST
/api/v1/blobs/batch-delete

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to delete multiple blobs in a single call

Response Body

application/json

curl -X POST "https://example.com/api/v1/blobs/batch-delete" \  -H "Content-Type: application/json" \  -d '{    "paths": [      "string"    ]  }'
{  "deleted": 0,  "failed": [    {      "error": "string",      "path": "string"    }  ]}
POST/api/v1/blobs/copy
POST
/api/v1/blobs/copy

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to copy a blob to a new path within the caller's namespace

Response Body

application/json

curl -X POST "https://example.com/api/v1/blobs/copy" \  -H "Content-Type: application/json" \  -d '{    "destination": "string",    "source": "string"  }'
{  "content_type": "string",  "destination": "string",  "expires_at": 0,  "size": 0,  "source": "string"}
POST/api/v1/blobs/move
POST
/api/v1/blobs/move

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request to move (rename) a blob to a new path within the caller's namespace

Response Body

application/json

curl -X POST "https://example.com/api/v1/blobs/move" \  -H "Content-Type: application/json" \  -d '{    "destination": "string",    "source": "string"  }'
{  "content_type": "string",  "destination": "string",  "expires_at": 0,  "size": 0,  "source": "string"}
POST/api/v1/blobs/presign
POST
/api/v1/blobs/presign

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request for generating a signed URL

Response Body

application/json

curl -X POST "https://example.com/api/v1/blobs/presign" \  -H "Content-Type: application/json" \  -d '{    "path": "string"  }'
{  "expires_at": 0,  "url": "string"}
GET/api/v1/blobs/usage
GET
/api/v1/blobs/usage

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/blobs/usage"
{  "file_count": 0,  "quota_max_bytes": 0,  "quota_max_files": 0,  "total_size_bytes": 0,  "usage_percent": 0}
GET/api/v1/blobs/{path}
GET
/api/v1/blobs/{path}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

path*string

Path of the blob to download

Query Parameters

direct?boolean

If true, stream the blob directly instead of redirecting to a signed URL

Response Body

application/octet-stream

curl -X GET "https://example.com/api/v1/blobs/string"
Empty
POST/api/v1/blobs/{path}
POST
/api/v1/blobs/{path}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

path*string

Path where to store the blob

Query Parameters

ttl_seconds?integer

TTL in seconds (file will expire after this duration)

Formatint64
Range0 <= value

Request Body

multipart/form-data

File data as multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

[index: integer]?integer
Formatint32
Range0 <= value

Response Body

application/json

curl -X POST "https://example.com/api/v1/blobs/string" \  -F 0="0"
{  "content_type": "string",  "created_at": 0,  "expires_at": 0,  "path": "string",  "size": 0}
DELETE/api/v1/blobs/{path}
DELETE
/api/v1/blobs/{path}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

path*string

Path of the blob to delete

Response Body

curl -X DELETE "https://example.com/api/v1/blobs/string"
Empty
HEAD/api/v1/blobs/{path}
HEAD
/api/v1/blobs/{path}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

path*string

Path of the blob

Response Body

curl -X HEAD "https://example.com/api/v1/blobs/string"
Empty
PUT/api/v1/blobs/{path}
PUT
/api/v1/blobs/{path}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

path*string

Path where to store the blob

Query Parameters

ttl_seconds?integer

TTL in seconds (file will expire after this duration)

Formatint64
Range0 <= value

Request Body

application/octet-stream

Raw binary file data

TypeScript Definitions

Use the request body type in TypeScript.

[index: integer]?integer
Formatint32
Range0 <= value

Response Body

application/json

curl -X PUT "https://example.com/api/v1/blobs/string" \  -H "Content-Type: application/octet-stream" \  -d '<0>0</0>'
{  "content_type": "string",  "created_at": 0,  "expires_at": 0,  "path": "string",  "size": 0}
GET/blob/public
GET
/blob/public

Query Parameters

token*string

JWT token containing access claims

Response Body

application/octet-stream

curl -X GET "https://example.com/blob/public?token=string"
Empty

On this page