SISuperintelligenceDocs

Search docs

Search every page of the documentation.

API reference

Storage

Browse and manage S3 buckets: files, uploads, CORS, versioning and lifecycle rules.

These routes back the file browser in Cloud. Uploads and downloads go straight to S3 through short-lived links; the API never handles file bodies. See Buckets.

GET /v1/orgs/:orgId/storage

The org's buckets with their latest daily size and object count.

Auth: user access token or platform agent key · Scope: resources:read

Path parameterDescription
:orgIdOrganization id (org_…).

Response 200

{
  buckets: {
    usage: null | {
      sizeBytes?: number
      objects?: number
      at?: number
    }
    type: "repository" | "database" | "bucket"
    name: string
    status?: "error" | "active" | "creating" | "deleting"
    createdAt?: number
    updatedAt?: number
    region: string
    orgId: string
    resourceId: string
    createdBy: string
    projectId?: string
    location: string
    arn?: string
    physicalName: string
  }[]
}

GET /v1/orgs/:orgId/storage/:resourceId

A bucket record with its versioning status and latest daily usage.

Auth: user access token or platform agent key · Scope: resources:read

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Response 200

{
  bucket: {
    type: "repository" | "database" | "bucket"
    name: string
    status?: "error" | "active" | "creating" | "deleting"
    createdAt?: number
    updatedAt?: number
    region: string
    orgId: string
    resourceId: string
    createdBy: string
    projectId?: string
    location: string
    arn?: string
    physicalName: string
  }
  versioning: null | "Enabled" | "Suspended" | "Disabled"
  usage: null | {
    sizeBytes?: number
    objects?: number
    at?: number
  }
}

Errors

StatusMessage
404Bucket not found

Errors from AWS are mapped as in AWS errors.

GET /v1/orgs/:orgId/storage/:resourceId/objects

One level of the bucket: folders (common prefixes) and files under prefix.

Auth: user access token or platform agent key · Scope: resources:read

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).
Query parameterTypeRequiredDefaultNotes
prefixstringNo""up to 1,024 characters
cursorstringNoup to 2,048 characters
limitintegerNo100≥ 1; coerced from a string

Response 200

{
  prefix: string
  folders: string[]
  files: {
    key: string
    size: number
    lastModified?: number
    etag?: string
    storageClass: "AWS_BACKUP_LOW_COST_WARM" | "AWS_BACKUP_WARM" | "DEEP_ARCHIVE" | "EXPRESS_ONEZONE" | "FSX_ONTAP" | "FSX_OPENZFS" | "GLACIER" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "OUTPOSTS" | "REDUCED_REDUNDANCY" | "SNOW" | "STANDARD" | "STANDARD_IA"
  }[]
  cursor?: string
}

Errors

StatusMessage
400Folder paths end with /.
404Bucket not found

Errors from AWS are mapped as in AWS errors.

GET /v1/orgs/:orgId/storage/:resourceId/object

One file's size, type, modification time and metadata.

Auth: user access token or platform agent key · Scope: resources:read

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).
Query parameterTypeRequiredNotes
keystringYesup to 1,024 characters

Response 200

{
  object: {
    key: string
    size: number
    contentType?: string
    lastModified?: number
    etag?: string
    storageClass: "AWS_BACKUP_LOW_COST_WARM" | "AWS_BACKUP_WARM" | "DEEP_ARCHIVE" | "EXPRESS_ONEZONE" | "FSX_ONTAP" | "FSX_OPENZFS" | "GLACIER" | "GLACIER_IR" | "INTELLIGENT_TIERING" | "ONEZONE_IA" | "OUTPOSTS" | "REDUCED_REDUNDANCY" | "SNOW" | "STANDARD" | "STANDARD_IA"
    versionId?: string
    cacheControl?: string
    contentEncoding?: string
    contentDisposition?: string
    encryption?: "AES256" | "aws:backup" | "aws:fsx" | "aws:kms" | "aws:kms:dsse"
    metadata: {
      [key: string]: string
    }
  }
}

Errors

StatusMessage
404Bucket not found

Errors from AWS are mapped as in AWS errors.

GET /v1/orgs/:orgId/storage/:resourceId/download

A download link valid for five minutes.

Auth: user access token or platform agent key · Scope: resources:read

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).
Query parameterTypeRequiredNotes
keystringYesup to 1,024 characters

Response 200

{
  url: string
  expiresIn: number
}

Errors

StatusMessage
400Folders can't be downloaded.
404Bucket not found

Errors from AWS are mapped as in AWS errors.

POST /v1/orgs/:orgId/storage/:resourceId/uploads

Upload links (PUT, 15 minutes, up to 5 GB each). The browser sends each file straight to S3.

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Request body

FieldTypeRequiredNotes
filesobject[]Yesat least 1 item
files[].keystringYesup to 1,024 characters
files[].contentTypestring | ""Yesup to 255 characters; matches ^[\w.+-]+\/[\w.+-]+(\s*;.*)?$
files[].sizeintegerYes≥ 0

Response 200

{
  uploads: {
    key: string
    url: string
    contentType: string
  }[]
  expiresIn: number
}

Errors

StatusMessage
400File names can't end with /.
404Bucket not found
413… is larger than 5 GB.

Errors from AWS are mapped as in AWS errors.

POST /v1/orgs/:orgId/storage/:resourceId/folders

Creates an empty folder under prefix.

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Request body

FieldTypeRequiredDefaultNotes
prefixstringNo""up to 1,024 characters
namestringYes1–255 characters

Response 201

{
  key: string
}

Errors

StatusMessage
400Folder paths end with /.
400Folder names can't contain /.
404Bucket not found

Errors from AWS are mapped as in AWS errors.

POST /v1/orgs/:orgId/storage/:resourceId/objects/delete

Deletes files and folders (with everything in them). done: false means call again to finish large folders.

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Request body

FieldTypeRequiredDefaultNotes
keysstring[]No[]each up to 1,024 characters
prefixesstring[]No[]up to 100 items; each up to 1,024 characters

Also checked: Nothing to delete.

Response 200

{
  deleted: number
  done: boolean
}

Errors

StatusMessage
400Pick folders to delete, not the whole bucket.
400Folder paths end with /.
404Bucket not found
409Couldn't delete … file…: …

Errors from AWS are mapped as in AWS errors.

GET /v1/orgs/:orgId/storage/:resourceId/settings

CORS rules, versioning and lifecycle rules.

Auth: user access token or platform agent key · Scope: resources:read

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Response 200

{
  versioning: string
  cors: {
    ID?: string
    AllowedHeaders?: string[]
    AllowedMethods?: string[]
    AllowedOrigins?: string[]
    ExposeHeaders?: string[]
    MaxAgeSeconds?: number
  }[]
  cloudCors: {
    ID?: string
    AllowedHeaders?: string[]
    AllowedMethods?: string[]
    AllowedOrigins?: string[]
    ExposeHeaders?: string[]
    MaxAgeSeconds?: number
  }
  lifecycle: {
    id: string
    prefix: string
    enabled: boolean
    expirationDays?: number
    noncurrentDays?: number
    other: boolean
  }[]
  publicAccessBlocked: boolean
}

Errors

StatusMessage
404Bucket not found

Errors from AWS are mapped as in AWS errors.

PUT /v1/orgs/:orgId/storage/:resourceId/cors

Replaces the bucket's CORS rules (Cloud's upload rule is kept separately).

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Request body

FieldTypeRequiredNotes
rulesobject[]Yes
rules[].IDstringNoup to 255 characters
rules[].AllowedOriginsstring[]Yes1–50 items; each 1–255 characters
rules[].AllowedMethods("GET" | "PUT" | "POST" | "DELETE" | "HEAD")[]Yesat least 1 item
rules[].AllowedHeadersstring[]Noup to 50 items; each 1–255 characters
rules[].ExposeHeadersstring[]Noup to 50 items; each 1–255 characters
rules[].MaxAgeSecondsintegerNo0–604800

Response 200

{
  cors: {
    AllowedOrigins: string[]
    AllowedMethods: ("GET" | "PUT" | "POST" | "DELETE" | "HEAD")[]
    ID?: string
    AllowedHeaders?: string[]
    ExposeHeaders?: string[]
    MaxAgeSeconds?: number
  }[]
}

Errors

StatusMessage
400si-cloud-uploads is reserved for Cloud uploads.
404Bucket not found

Errors from AWS are mapped as in AWS errors.

PUT /v1/orgs/:orgId/storage/:resourceId/versioning

Turns versioning on, or suspends it.

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Request body

FieldTypeRequiredNotes
enabledbooleanYes

Response 200

{
  versioning: string
}

Errors

StatusMessage
404Bucket not found

Errors from AWS are mapped as in AWS errors.

POST /v1/orgs/:orgId/storage/:resourceId/lifecycle

Adds a rule that deletes files under a prefix a number of days after they're written.

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Request body

FieldTypeRequiredDefaultNotes
prefixstringNo""up to 1,024 characters
daysintegerYes1–3650
noncurrentDaysintegerNo1–3650

Response 201

{
  rule: {
    id: string
    prefix: string
    enabled: boolean
    expirationDays?: number
    noncurrentDays?: number
    other: boolean
  }
  lifecycle: {
    id: string
    prefix: string
    enabled: boolean
    expirationDays?: number
    noncurrentDays?: number
    other: boolean
  }[]
}

Errors

StatusMessage
404Bucket not found
409A bucket can have 50 rules here.

Errors from AWS are mapped as in AWS errors.

DELETE /v1/orgs/:orgId/storage/:resourceId/lifecycle/:ruleId

Removes a lifecycle rule.

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).
:ruleIdLifecycle rule id, as returned by the settings or lifecycle routes.

Response 200

{
  lifecycle: {
    id: string
    prefix: string
    enabled: boolean
    expirationDays?: number
    noncurrentDays?: number
    other: boolean
  }[]
}

Errors

StatusMessage
404Bucket not found
404Rule not found

Errors from AWS are mapped as in AWS errors.

DELETE /v1/orgs/:orgId/storage/:resourceId

Deletes an empty bucket (old versions of deleted files go with it) and its record.

Auth: user access token or platform agent key · Scope: resources:write

Path parameterDescription
:orgIdOrganization id (org_…).
:resourceIdResource id (res_…).

Response 204 with no body.

Errors

StatusMessage
404Bucket not found
409Delete every file in this bucket first.
409Still removing old file versions. Try again to continue.
409Couldn't delete … file…: …
409Files were added while deleting. Delete them first.

Errors from AWS are mapped as in AWS errors.