API reference

Cloud storage

Google-Cloud-Storage-style buckets backed by your MyTabulon file manager. Buckets are folders, objects are files — everything you create here is visible in the workspace Files area, and uploads count toward your plan's storage quota (1 GB on Free up to 1 TB on Max).

https://api.mytabulon.com/v1

Storage summary

GET/storagefiles.read

Live storage usage for the workspace.

response
{
  "object": "storage.summary",
  "plan": "pro",
  "limit_bytes": 107374182400,
  "limit_label": "100 GB",
  "used_bytes": 45634027520,
  "used_percent": 42.5,
  "max_file_mb": 2048,
  "bucket_count": 4,
  "file_count": 312
}

Buckets

GET/bucketsfiles.read

List buckets with object counts and total bytes.

POST/bucketsfiles.write

Create a bucket. It appears as a folder in your file manager and fires bucket.created.

request
{ "name": "product-photos", "description": "Storefront images" }
response
{
  "object": "bucket",
  "id": "...",
  "name": "product-photos",
  "object_count": 0,
  "total_bytes": 0
}
GET/buckets/{id}files.read

Retrieve one bucket with usage stats.

PATCH/buckets/{id}files.write

Rename a bucket or update its description.

DELETE/buckets/{id}files.write

Delete an empty bucket; pass ?force=true to also delete every object inside.

Objects

GET/buckets/{id}/objectsfiles.read

List objects in a bucket. Filters: search, limit, offset.

POST/buckets/{id}/objectsfiles.write

Upload an object as base64. Duplicate names return 409 unless overwrite=true. Fires file.uploaded.

request
{
  "file_name": "chair.png",
  "content_type": "image/png",
  "content_base64": "iVBORw0KGgoAAAANS...",
  "overwrite": false
}
response
{
  "object": "file_object",
  "id": "...",
  "bucket_id": "...",
  "file_name": "chair.png",
  "content_type": "image/png",
  "size_bytes": 48211,
  "url": "https://api.mytabulon.com/uploads/operation-documents/..."
}
GET/objects/{id}files.read

Object metadata, including its public URL.

GET/objects/{id}/contentfiles.read

Download the raw bytes of an object.

PATCH/objects/{id}files.write

Rename an object, update notes, or move it to another bucket with bucket_id.

request
{ "file_name": "chair-v2.png", "bucket_id": "target-bucket-id" }
DELETE/objects/{id}files.write

Delete an object and free its storage. Fires file.deleted.

Limits

Per-file size follows your plan's max upload (e.g. 50 MB on Free, 2 GB on Pro). Total usage is capped by your plan's storage quota, shared with the rest of your workspace files. When a limit is hit you get a 402 with code plan_limit_reached.

Workspace files

GET/filesfiles.read

List metadata for every file in the workspace file manager — not just bucket objects. Filters: project_id, search.