9 endpoints at https://api.vaif.studio, generated from the API's OpenAPI document. The REST API page covers authentication, and All endpoints lists every group.
GET /buckets/project/{projectId}
| Parameter | In | Type | Required |
|---|
projectId | path | string | Yes |
envId | query | string | No |
Response 200 (application/json)
{
ok: boolean;
buckets: {
id: string;
projectId: string;
envId: null | string;
storageEnvironment: string;
name: string;
public: boolean;
fileSizeLimit: null | number;
allowedMimeTypes: any;
corsOrigins: any;
sizeBytes: number;
createdAt: string (date-time);
updatedAt: string (date-time);
}[];
}
GET /buckets/{bucketId}
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
Response 200 (application/json)
{
ok: boolean;
bucket: {
id: string;
projectId: string;
envId: null | string;
storageEnvironment: string;
name: string;
public: boolean;
fileSizeLimit: null | number;
allowedMimeTypes: any;
corsOrigins: any;
sizeBytes: number;
createdAt: string (date-time);
updatedAt: string (date-time);
};
}
PUT /buckets/{bucketId}
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
Request body (application/json, required)
{
public?: boolean;
fileSizeLimit?: number;
allowedMimeTypes?: string[] | null;
corsOrigins?: string[] | null;
allowProduction?: boolean;
}
Response 200 (application/json)
{
ok: true;
bucket?: any;
}
Errors: 400, 401, 403, 404, with the error body.
DELETE /buckets/{bucketId}
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
Response 200 (application/json)
{
ok: boolean;
deleted: boolean;
deletedObjectCount: number;
}
GET /buckets/{bucketId}/files
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
prefix | query | string | No |
maxKeys | query | string | No |
continuationToken | query | string | No |
Response 200 (application/json)
{
ok: boolean;
files: any[];
folders: any[];
nextToken?: any;
isTruncated: boolean;
} | {
ok: boolean;
files: {
size: number;
lastModified?: string (date-time);
etag?: string;
key: string;
}[];
folders: string[];
nextToken?: string;
isTruncated: boolean;
}
DELETE /buckets/{bucketId}/files
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
key | query | string | Yes |
Response 200 (application/json)
{
ok: boolean;
deleted: boolean;
}
POST /buckets/{bucketId}/upload
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
key | query | string | Yes |
contentType | query | string | No |
Request body (application/octet-stream, required)
string (binary)
Response 200 (application/json)
{
ok: boolean;
key: string;
sizeBytes: number;
}
POST /buckets/{bucketId}/upload-url
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
Request body (application/json)
{
key: string;
contentType?: string;
sizeBytes?: number;
}
Response 200 (application/json)
{
ok: boolean;
url: string;
key: string;
expiresIn: number;
}
POST /buckets/{bucketId}/signed-url
| Parameter | In | Type | Required |
|---|
bucketId | path | string | Yes |
Request body (application/json)
{
key: string;
expiresIn?: number;
}
Response 200 (application/json)
{
ok: boolean;
url: string;
expiresIn: number;
transforms: {
supported: boolean;
endpoint: string;
params: string[];
};
}