Files API

Store and organize files and folders, create share links, manage workspaces and receive webhooks. Uses a files key.

Base   https://dev.bodek.us/v1/files
Auth   Authorization: Bearer bf_live_…

Switching from the old endpoint? Replace file.bodeksolutions.com/api/v1 with dev.bodek.us/v1/files — resource paths are identical.

Files

List files

GET /v1/files/files
QueryDescription
parent_idList inside a folder (omit for the root).
searchFilter by name.
limit / offsetPagination.

Get a file

GET /v1/files/files/{id}

Download content

GET /v1/files/files/{id}/content

Upload a file

POST /v1/files/files

Multipart form upload. Scope files:write.

curl -X POST https://dev.bodek.us/v1/files/files \
  -H "Authorization: Bearer bf_live_XXXX" \
  -F "file=@report.pdf" -F "parent_id=AbCd1234"

Very large uploads can also be sent straight to file.bodeksolutions.com/api/v1/files — the same key works on both.

Rename or move

PATCH /v1/files/files/{id}

Delete

DELETE /v1/files/files/{id}

Folders

Folders are files with type: "folder". List a folder's contents with the files endpoint and a parent_id; create folders here.

POST /v1/files/folders
curl -X POST https://dev.bodek.us/v1/files/folders \
  -H "Authorization: Bearer bf_live_XXXX" -H "Content-Type: application/json" \
  -d '{ "name": "Invoices", "parent_id": null }'

Share links

Create or change a share

POST /v1/files/shares

Make a file public or limited, optionally with a password and expiry. Scope share:write.

{
  "file_id": "AbCd1234",
  "status": "public",
  "password": "optional",
  "expires_at": "2026-12-31T23:59:59Z"
}

Change share status

PATCH /v1/files/shares/{file_id}

Read share status

GET /v1/files/shares/{file_id}

Revoke a share

DELETE /v1/files/shares/{file_id}

Workspaces

GET /v1/files/workspaces/current
GET /v1/files/workspaces
POST /v1/files/workspaces
GET /v1/files/workspaces/{id}
PATCH /v1/files/workspaces/{id}

A key is bound to one workspace; these endpoints read and manage it.

Webhooks

Subscribe to events (file created/updated/deleted, share changed, member events). Deliveries are signed with the webhook secret.

GET /v1/files/webhooks
POST /v1/files/webhooks
PATCH /v1/files/webhooks/{id}
DELETE /v1/files/webhooks/{id}

Key info & health

GET /v1/files/me

Returns the calling key's service, scopes and owner.

GET /v1/files/health

Liveness — no auth required.

Scopes

ScopeGrants
files:readList, read and download files/folders.
files:writeUpload, rename and move files.
files:deleteDelete files and folders.
folders:writeCreate new folders.
share:read / share:writeRead / manage share links.
workspace:read / workspace:writeRead / manage workspaces.
webhooks:read / webhooks:writeRead / manage webhooks.