API reference
Drive
/ v1/ hooks/ drive/ links/ :tokenWhat a public link opens (name, type, size, photo details without location) or needsPassword. No authentication. 404 for links that were turned off, replaced, expired or trashed.
- Auth
- None.
Path parameters
tokenA secret from a link: an issue automation rule's incoming-webhook token (shown once when issued), a map's share link, a notification recipient's confirm and unsubscribe link, a Drive public link (
/l/<token>), a Vehicles drive's share link, or a Mirage interaction's token (itk_…, sent with the interaction, good for 15 minutes), or the token in the link to a file of a message Mirage sent to Discord, or a Marketing link's sealed token (a tracked click, the open pixel, unsubscribe and the preference centre, a double opt-in confirmation); or a Food recipe's public link (/r/<token>) or a household's calendar feed.
curl 'https://api.cactive.com.au/v1/hooks/drive/links/{token}'Response 200
{
needsPassword: true
name?: undefined
item?: undefined
expiresAt?: undefined
} | {
needsPassword: false
item: {
itemId: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
modifiedAt: number
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
preview: null | "text" | "video" | "audio" | "pdf" | "image"
}
expiresAt?: number
name?: undefined
}/ v1/ hooks/ drive/ links/ :token/ unlockChecks a link's password and answers a grant for 12 hours, sent as x-si-link-grant with the link's other calls. 10 wrong passwords per link lock it for 15 minutes.
- Auth
- None.
Path parameters
tokenA secret from a link: an issue automation rule's incoming-webhook token (shown once when issued), a map's share link, a notification recipient's confirm and unsubscribe link, a Drive public link (
/l/<token>), a Vehicles drive's share link, or a Mirage interaction's token (itk_…, sent with the interaction, good for 15 minutes), or the token in the link to a file of a message Mirage sent to Discord, or a Marketing link's sealed token (a tracked click, the open pixel, unsubscribe and the preference centre, a double opt-in confirmation); or a Food recipe's public link (/r/<token>) or a household's calendar feed.
Request body
passwordstringrequired1–200 characters.
curl -X POST 'https://api.cactive.com.au/v1/hooks/drive/links/{token}/unlock' \
-H 'Content-Type: application/json' \
-d '{
"password": "example"
}'Response 200
{
grant: string
expiresAt: number
}/ v1/ hooks/ drive/ links/ :token/ childrenA folder's contents through its public link (folderId for folders inside it), with the path from the shared folder.
- Auth
- None.
Path parameters
tokenA secret from a link: an issue automation rule's incoming-webhook token (shown once when issued), a map's share link, a notification recipient's confirm and unsubscribe link, a Drive public link (
/l/<token>), a Vehicles drive's share link, or a Mirage interaction's token (itk_…, sent with the interaction, good for 15 minutes), or the token in the link to a file of a message Mirage sent to Discord, or a Marketing link's sealed token (a tracked click, the open pixel, unsubscribe and the preference centre, a double opt-in confirmation); or a Food recipe's public link (/r/<token>) or a household's calendar feed.
Query parameters
folderIdstringUp to 64 characters.
curl 'https://api.cactive.com.au/v1/hooks/drive/links/{token}/children'Response 200
{
folder: {
itemId: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
modifiedAt: number
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
preview: null | "text" | "video" | "audio" | "pdf" | "image"
}
path: {
itemId: string
name: string
}[]
items: {
itemId: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
modifiedAt: number
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
preview: null | "text" | "video" | "audio" | "pdf" | "image"
}[]
}/ v1/ hooks/ drive/ links/ :token/ fileA one-hour link to a file through its public link (itemId inside a shared folder; inline=1 to show it). Photos always come without location and camera details.
- Auth
- None.
Path parameters
tokenA secret from a link: an issue automation rule's incoming-webhook token (shown once when issued), a map's share link, a notification recipient's confirm and unsubscribe link, a Drive public link (
/l/<token>), a Vehicles drive's share link, or a Mirage interaction's token (itk_…, sent with the interaction, good for 15 minutes), or the token in the link to a file of a message Mirage sent to Discord, or a Marketing link's sealed token (a tracked click, the open pixel, unsubscribe and the preference centre, a double opt-in confirmation); or a Food recipe's public link (/r/<token>) or a household's calendar feed.
Query parameters
itemIdstringUp to 64 characters.
inline"0" | "1"
curl 'https://api.cactive.com.au/v1/hooks/drive/links/{token}/file'Response 200
{
url: string
name: string
mime: string
size?: number
inline: boolean
expiresIn: number
cleaned: boolean
}/ v1/ hooks/ drive/ links/ :token/ archivesStarts a ZIP of the shared folder (or itemIds inside it); photos are cleaned of location details.
- Auth
- None.
Path parameters
tokenA secret from a link: an issue automation rule's incoming-webhook token (shown once when issued), a map's share link, a notification recipient's confirm and unsubscribe link, a Drive public link (
/l/<token>), a Vehicles drive's share link, or a Mirage interaction's token (itk_…, sent with the interaction, good for 15 minutes), or the token in the link to a file of a message Mirage sent to Discord, or a Marketing link's sealed token (a tracked click, the open pixel, unsubscribe and the preference centre, a double opt-in confirmation); or a Food recipe's public link (/r/<token>) or a household's calendar feed.
Request body
itemIdsstring[]Up to 500 items. Each up to 64 characters.
curl -X POST 'https://api.cactive.com.au/v1/hooks/drive/links/{token}/archives' \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 202
{
archive: {
archiveId: string
status: "queued" | "building" | "ready" | "failed"
name: string
files: number
bytes: number
url?: string
error?: string
}
}/ v1/ hooks/ drive/ links/ :token/ archives/ :archiveIdA ZIP's status through its public link, with a download link when ready.
- Auth
- None.
Path parameters
tokenA secret from a link: an issue automation rule's incoming-webhook token (shown once when issued), a map's share link, a notification recipient's confirm and unsubscribe link, a Drive public link (
/l/<token>), a Vehicles drive's share link, or a Mirage interaction's token (itk_…, sent with the interaction, good for 15 minutes), or the token in the link to a file of a message Mirage sent to Discord, or a Marketing link's sealed token (a tracked click, the open pixel, unsubscribe and the preference centre, a double opt-in confirmation); or a Food recipe's public link (/r/<token>) or a household's calendar feed.archiveIdZIP download id (
zip_…).
curl 'https://api.cactive.com.au/v1/hooks/drive/links/{token}/archives/{archiveId}'Response 200
{
archive: {
archiveId: string
status: "queued" | "building" | "ready" | "failed"
name: string
files: number
bytes: number
url?: string
error?: string
}
}/ v1/ orgs/ :orgId/ drive/ drivesMy Drive, the shared drives the caller belongs to (every one, to manage, for org admins) and storage use.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/drives' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
usage: {
bytes: number
files: number
limit: number
}
personal: boolean
myDrive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
sharedDrives: {
member: boolean
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}[]
}/ v1/ orgs/ :orgId/ drive/ drivesCreates a shared drive; the caller becomes its manager. Not in personal spaces; not for viewers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
namestringrequired1–255 characters.
descriptionstringUp to 500 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/drives' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example"
}'Response 201
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
}/ v1/ orgs/ :orgId/ drive/ drives/ :driveIdA drive with its members (shared drives) and whether the caller can manage them.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/drives/{driveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
members: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor" | "manager"
addedBy: string
addedAt: number
}[]
canManage: boolean
}/ v1/ orgs/ :orgId/ drive/ drives/ :driveIdRenames a shared drive or changes its description (managers, and org owners and admins).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.
Request body
namestring1–255 characters.
descriptionstringor nullUp to 500 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/drives/{driveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example",
"description": "example"
}'Response 200
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
}/ v1/ orgs/ :orgId/ drive/ drives/ :driveIdDeletes an empty shared drive (its trash too must be empty).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/drives/{driveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ drive/ drives/ :driveId/ members/ :principalIdAdds a person or team to a shared drive, or changes their role (viewer, commenter, editor, manager). A drive always keeps a manager who is a person.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.principalIdA person (
usr_…) or a group or team (team_…): the member or group a Tenant assignment or a Drive share is for.
Request body
role"viewer" | "commenter" | "editor" | "manager"required
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PUT 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/drives/{driveId}/members/{principalId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"role": "viewer"
}'Response 200
{
ok: true
}/ v1/ orgs/ :orgId/ drive/ drives/ :driveId/ members/ :principalIdRemoves a member (anyone may remove themselves).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.principalIdA person (
usr_…) or a group or team (team_…): the member or group a Tenant assignment or a Drive share is for.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/drives/{driveId}/members/{principalId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ drive/ usageStorage the space uses (every version, the trash included) and its limit, in bytes.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/usage' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
usage: {
bytes: number
files: number
limit: number
}
}/ v1/ orgs/ :orgId/ drive/ peopleA person to share with, by exact email address: an org member here, any account for personal files.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Query parameters
emailstringrequiredUp to 320 characters. Email address.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/people?email=person%40example.com' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
person: {
userId: string
name?: string
email?: string
}
}/ v1/ orgs/ :orgId/ drive/ logPersonal spaces: the owner's log of every change and access (who opened, downloaded or listed what, links included).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Query parameters
cursorstringUp to 2,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.404Org activity is in the audit log.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/log' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
events: {
activityId: string
action: string
actorId: string
actorLabel?: string
at: number
detail: {
[key: string]: unknown
}
}[]
cursor?: string
}/ v1/ orgs/ :orgId/ drive/ items/ :itemIdA file or folder with its path (from the highest folder you can open), your role and what it allows, its shares (for editors) and its link setting. Photo details lose location and camera for people who only view, when the owner removes them.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
}/ v1/ orgs/ :orgId/ drive/ items/ :itemIdRenames an item (names are unique per folder, ignoring case) or sets its description. Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
namestring1–255 characters.
descriptionstringor nullUp to 2,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PATCH 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example",
"description": "example"
}'Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ childrenA folder's contents, folders first, sorted by name, modified or size (order), in pages of up to 1,000 (cursor).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Query parameters
sort"name" | "modified" | "size"order"asc" | "desc"cursorstringUp to 200 characters.
limitinteger1–1000. Coerced from a string.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/children' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
folder: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
total: number
cursor?: string
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ fileA one-hour link to the file's bytes (inline=1 to show it in the browser; versionId for an earlier version, editors only).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Query parameters
inline"0" | "1"versionIdstringUp to 64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/file' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
url: string
name: string
mime: string
size?: number
inline: boolean
expiresIn: number
cleaned: boolean
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ versionsA file's versions, newest first, with who uploaded each; canManage for editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/versions' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
versions: {
versionId: string
name: string
size: number
mime: string
checksum?: string
uploadedBy: string
createdAt: number
current: boolean
restoredFrom?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
label?: string
pinned?: boolean
}[]
canManage: boolean
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ versions/ :versionId/ restoreMakes an earlier version current again as a new version (a copy in the bucket; counts against storage). Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).versionIdVersion id: a saved page version, as listed by the page history, an issue space's version (release,
ver_…), or a Drive file's version (fvr_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/versions/{versionId}/restore' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
versionId: string
restoredFrom: string
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ versions/ :versionIdDeletes an earlier version (never the current one). Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).versionIdVersion id: a saved page version, as listed by the page history, an issue space's version (release,
ver_…), or a Drive file's version (fvr_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/versions/{versionId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ activityWhat happened to an item (and, for folders, to what's in them), newest first, a year back.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Query parameters
cursorstringUp to 2,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/activity' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
events: {
activityId: string
action: string
actorId: string
actorLabel?: string
at: number
detail: {
[key: string]: unknown
}
}[]
cursor?: string
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ commentsComments on a file or folder, oldest first; canComment for commenters and editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/comments' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
comments: {
commentId: string
authorId: string
authorLabel?: string
body: string
createdAt: number
canDelete: boolean
anchor?: {
x?: number
y?: number
t?: number
}
}[]
canComment: boolean
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ commentsAdds a comment (up to 4,000 characters). Commenters and editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
bodystringrequired1–4,000 characters.
anchorobjectanchor.xnumber-100000–100000.
anchor.ynumber-100000–100000.
anchor.tnumber0–1000000.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/comments' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"body": "example"
}'Response 201
{
comment: {
anchor?: {
x?: number
y?: number
t?: number
}
commentId: string
authorId: string
authorLabel?: string
body: string
createdAt: number
canDelete: true
}
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ comments/ :commentIdDeletes a comment: its author, or an editor.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).commentIdComment id (
icm_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/comments/{commentId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ linkLink sharing and photo details: scope restricted, org or anyone; password null removes it; rotate makes a new link.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
scope"restricted" | "org" | "anyone"requiredrole"viewer" | "commenter" | "editor"expiresAtintegeror null> 0.
passwordstringor null4–200 characters.
stripMetadatabooleanrotateboolean
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PUT 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/link' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"scope": "restricted"
}'Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
}/ v1/ orgs/ :orgId/ drive/ items/ :itemId/ transferGives a My Drive item (org spaces) to another member: it moves to the top of their My Drive and you keep editor access. Owners.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
userIdstringrequired5–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/{itemId}/transfer' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"userId": "<userId>"
}'Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
}/ v1/ orgs/ :orgId/ drive/ foldersCreates a folder (onConflict: fail, the default, or rename for a numbered name). Editors of the parent.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
parentIdstringrequired3–64 characters.
namestringrequired1–255 characters.
onConflict"rename" | "fail"
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/folders' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"parentId": "<parentId>",
"name": "Example"
}'Response 201
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
}/ v1/ orgs/ :orgId/ drive/ folders/ pathsFolder uploads: makes each relative path's folders (a, a/b) under parentId, reusing existing ones.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
parentIdstringrequired3–64 characters.
pathsstring[]required1–500 items. Each 1–4,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/folders/paths' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"parentId": "<parentId>",
"paths": [
"example"
]
}'Response 200
{
folders: {
[key: string]: string
}
created: number
}/ v1/ orgs/ :orgId/ drive/ items/ moveMoves items into a folder (up to 500). Between drives (everything inside goes too, at most 2,000 items) only for My Drive's owner or the source drive's managers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
parentIdstringrequired3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/move' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
],
"parentId": "<parentId>"
}'Response 200
{
moved: {
itemId: string
name: string
from: string
}[]
to: {
itemId: string
name: string
}
}/ v1/ orgs/ :orgId/ drive/ items/ copyCopies files (not folders) into a folder, Copy of … next to the original by default (server-side, up to 20 GB each; counts against storage).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
parentIdstring3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/copy' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
}/ v1/ orgs/ :orgId/ drive/ items/ trashMoves items (with everything in them) to their drive's trash; deleted forever after 30 days. Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/trash' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
items: {
itemId: string
name: string
kind: "file" | "folder"
}[]
}/ v1/ orgs/ :orgId/ drive/ items/ restorePuts trashed items back where they were (else at the top of their drive), with a numbered name if the name was taken meanwhile.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/restore' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
items: {
itemId: string
name: string
parentId: string
}[]
}/ v1/ orgs/ :orgId/ drive/ items/ deleteDeletes trashed items forever (owner or managers). Large folders finish in the background (done: false).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/delete' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
deleted: {
itemId: string
name: string
}[]
done: boolean
}/ v1/ orgs/ :orgId/ drive/ items/ starStars or unstars items for the caller (starred).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
starredbooleanrequired
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/items/star' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
],
"starred": true
}'Response 200
{
itemIds: string[]
starred: boolean
}/ v1/ orgs/ :orgId/ drive/ trashA drive's trash (My Drive by default, or driveId): items trashed there, newest first, with canEmpty for its owner or managers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Query parameters
driveIdstringUp to 64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/trash' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
canEmpty: boolean
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
retentionDays: 30
}/ v1/ orgs/ :orgId/ drive/ trash/ emptyDeletes everything in a drive's trash forever (My Drive by default). Owner or managers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
driveIdstringUp to 64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/trash/empty' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"driveId": "<driveId>"
}'Response 200
{
deleted: number
done: boolean
}/ v1/ orgs/ :orgId/ drive/ recentFiles you opened or changed in the last 60 days, newest first.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/recent' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
items: {
at: number
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
}/ v1/ orgs/ :orgId/ drive/ starredYour starred items you can still open.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/starred' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
items: {
at: number
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
}/ v1/ orgs/ :orgId/ drive/ searchItems you can open whose names contain every word of q, optionally by type, owner (me, others or a person's id), modifiedAfter/modifiedBefore (ms) or driveId. Up to 50,000 items are searched; truncated says when more weren't.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Query parameters
qstringUp to 200 characters.
typestringUp to 20 characters.
ownerstringUp to 64 characters.
modifiedAfterintegerCoerced from a string.
modifiedBeforeintegerCoerced from a string.
driveIdstringUp to 64 characters.
limitinteger1–200. Coerced from a string.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/search' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
total: number
truncated: boolean
}/ v1/ orgs/ :orgId/ drive/ uploadsStarts an upload: answers the part size and links for the first parts (PUT each part, then complete).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
parentIdstring3–64 characters.
itemIdstring3–64 characters.
namestringrequired1–255 characters.
sizeintegerrequired≥ 0.
mimestringUp to 200 characters.
onConflict"version" | "rename" | "fail"
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/uploads' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example",
"size": 1
}'Response 201
{
uploadId: string
itemId: string
partSize: number
partCount: number
urls: {
[key: number]: string
}
contentType: string
name: string
newVersion: boolean
}/ v1/ orgs/ :orgId/ drive/ uploads/ :uploadId/ partsLinks (an hour each) for more parts of an upload, up to 100 at a time.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).uploadIdUpload id (
dup_…), from starting the upload.
Request body
partNumbersinteger[]required1–100 items. Each 1–10000.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/uploads/{uploadId}/parts' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"partNumbers": [
1
]
}'Response 200
{
urls: {
[key: number]: string
}
expiresIn: number
}/ v1/ orgs/ :orgId/ drive/ uploads/ :uploadIdWhere an upload stands, with the parts already stored, to resume it.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).uploadIdUpload id (
dup_…), from starting the upload.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/uploads/{uploadId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
uploadId: string
itemId: string
name: string
size: number
partSize: number
partCount: number
parts: {
partNumber: number
etag: string
size?: number
}[]
expiresAt: number
}/ v1/ orgs/ :orgId/ drive/ uploads/ :uploadId/ completeFinishes an upload once every part has arrived: checks the size, counts it against storage (413 when it doesn't fit) and records the file or its new version.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).uploadIdUpload id (
dup_…), from starting the upload.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/uploads/{uploadId}/complete' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
newVersion: boolean
}/ v1/ orgs/ :orgId/ drive/ uploads/ :uploadIdCancels an upload and discards its parts.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).uploadIdUpload id (
dup_…), from starting the upload.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/uploads/{uploadId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ orgs/ :orgId/ drive/ archivesA ZIP of files and folders, made in the background; ask for it until status is ready, then download url.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/archives' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 202
{
archive: {
archiveId: string
status: "queued" | "building" | "ready" | "failed"
name: string
files: number
bytes: number
url?: string
error?: string
}
}/ v1/ orgs/ :orgId/ drive/ archives/ :archiveIdA ZIP's status (queued, building, ready, failed) and, when ready, a one-hour download link.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
orgIdOrganization id (
org_…).archiveIdZIP download id (
zip_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/orgs/{orgId}/drive/archives/{archiveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
archive: {
archiveId: string
status: "queued" | "building" | "ready" | "failed"
name: string
files: number
bytes: number
url?: string
error?: string
}
}/ v1/ me/ drive/ drivesMy Drive, the shared drives the caller belongs to (every one, to manage, for org admins) and storage use.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/drives' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
usage: {
bytes: number
files: number
limit: number
}
personal: boolean
myDrive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
sharedDrives: {
member: boolean
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}[]
}/ v1/ me/ drive/ drivesCreates a shared drive; the caller becomes its manager. Not in personal spaces; not for viewers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
namestringrequired1–255 characters.
descriptionstringUp to 500 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/drives' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example"
}'Response 201
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
}/ v1/ me/ drive/ drives/ :driveIdA drive with its members (shared drives) and whether the caller can manage them.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/drives/{driveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
members: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor" | "manager"
addedBy: string
addedAt: number
}[]
canManage: boolean
}/ v1/ me/ drive/ drives/ :driveIdRenames a shared drive or changes its description (managers, and org owners and admins).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.
Request body
namestring1–255 characters.
descriptionstringor nullUp to 500 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PATCH 'https://api.cactive.com.au/v1/me/drive/drives/{driveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example",
"description": "example"
}'Response 200
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
description?: string
ownerId?: string
bytes: number
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
createdAt: number
}
}/ v1/ me/ drive/ drives/ :driveIdDeletes an empty shared drive (its trash too must be empty).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/me/drive/drives/{driveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ me/ drive/ drives/ :driveId/ members/ :principalIdAdds a person or team to a shared drive, or changes their role (viewer, commenter, editor, manager). A drive always keeps a manager who is a person.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.principalIdA person (
usr_…) or a group or team (team_…): the member or group a Tenant assignment or a Drive share is for.
Request body
role"viewer" | "commenter" | "editor" | "manager"required
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PUT 'https://api.cactive.com.au/v1/me/drive/drives/{driveId}/members/{principalId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"role": "viewer"
}'Response 200
{
ok: true
}/ v1/ me/ drive/ drives/ :driveId/ members/ :principalIdRemoves a member (anyone may remove themselves).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
driveIdDrive id (
drv_…): a My Drive or a shared drive. A drive's id is also its top folder's item id.principalIdA person (
usr_…) or a group or team (team_…): the member or group a Tenant assignment or a Drive share is for.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/me/drive/drives/{driveId}/members/{principalId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ me/ drive/ usageStorage the space uses (every version, the trash included) and its limit, in bytes.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/usage' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
usage: {
bytes: number
files: number
limit: number
}
}/ v1/ me/ drive/ peopleA person to share with, by exact email address: an org member here, any account for personal files.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Query parameters
emailstringrequiredUp to 320 characters. Email address.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/people?email=person%40example.com' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
person: {
userId: string
name?: string
email?: string
}
}/ v1/ me/ drive/ logPersonal spaces: the owner's log of every change and access (who opened, downloaded or listed what, links included).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Query parameters
cursorstringUp to 2,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.404Org activity is in the audit log.
curl 'https://api.cactive.com.au/v1/me/drive/log' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
events: {
activityId: string
action: string
actorId: string
actorLabel?: string
at: number
detail: {
[key: string]: unknown
}
}[]
cursor?: string
}/ v1/ me/ drive/ items/ :itemIdA file or folder with its path (from the highest folder you can open), your role and what it allows, its shares (for editors) and its link setting. Photo details lose location and camera for people who only view, when the owner removes them.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/items/{itemId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
}/ v1/ me/ drive/ items/ :itemIdRenames an item (names are unique per folder, ignoring case) or sets its description. Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
namestring1–255 characters.
descriptionstringor nullUp to 2,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PATCH 'https://api.cactive.com.au/v1/me/drive/items/{itemId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example",
"description": "example"
}'Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
}/ v1/ me/ drive/ items/ :itemId/ childrenA folder's contents, folders first, sorted by name, modified or size (order), in pages of up to 1,000 (cursor).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Query parameters
sort"name" | "modified" | "size"order"asc" | "desc"cursorstringUp to 200 characters.
limitinteger1–1000. Coerced from a string.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/children' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
folder: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
total: number
cursor?: string
}/ v1/ me/ drive/ items/ :itemId/ fileA one-hour link to the file's bytes (inline=1 to show it in the browser; versionId for an earlier version, editors only).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Query parameters
inline"0" | "1"versionIdstringUp to 64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/file' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
url: string
name: string
mime: string
size?: number
inline: boolean
expiresIn: number
cleaned: boolean
}/ v1/ me/ drive/ items/ :itemId/ versionsA file's versions, newest first, with who uploaded each; canManage for editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/versions' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
versions: {
versionId: string
name: string
size: number
mime: string
checksum?: string
uploadedBy: string
createdAt: number
current: boolean
restoredFrom?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
label?: string
pinned?: boolean
}[]
canManage: boolean
}/ v1/ me/ drive/ items/ :itemId/ versions/ :versionId/ restoreMakes an earlier version current again as a new version (a copy in the bucket; counts against storage). Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).versionIdVersion id: a saved page version, as listed by the page history, an issue space's version (release,
ver_…), or a Drive file's version (fvr_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/versions/{versionId}/restore' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
versionId: string
restoredFrom: string
}/ v1/ me/ drive/ items/ :itemId/ versions/ :versionIdDeletes an earlier version (never the current one). Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).versionIdVersion id: a saved page version, as listed by the page history, an issue space's version (release,
ver_…), or a Drive file's version (fvr_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/versions/{versionId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ me/ drive/ items/ :itemId/ activityWhat happened to an item (and, for folders, to what's in them), newest first, a year back.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Query parameters
cursorstringUp to 2,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/activity' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
events: {
activityId: string
action: string
actorId: string
actorLabel?: string
at: number
detail: {
[key: string]: unknown
}
}[]
cursor?: string
}/ v1/ me/ drive/ items/ :itemId/ commentsComments on a file or folder, oldest first; canComment for commenters and editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/comments' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
comments: {
commentId: string
authorId: string
authorLabel?: string
body: string
createdAt: number
canDelete: boolean
anchor?: {
x?: number
y?: number
t?: number
}
}[]
canComment: boolean
}/ v1/ me/ drive/ items/ :itemId/ commentsAdds a comment (up to 4,000 characters). Commenters and editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
bodystringrequired1–4,000 characters.
anchorobjectanchor.xnumber-100000–100000.
anchor.ynumber-100000–100000.
anchor.tnumber0–1000000.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/comments' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"body": "example"
}'Response 201
{
comment: {
anchor?: {
x?: number
y?: number
t?: number
}
commentId: string
authorId: string
authorLabel?: string
body: string
createdAt: number
canDelete: true
}
}/ v1/ me/ drive/ items/ :itemId/ comments/ :commentIdDeletes a comment: its author, or an editor.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).commentIdComment id (
icm_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/comments/{commentId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ me/ drive/ items/ :itemId/ linkLink sharing and photo details: scope restricted, org or anyone; password null removes it; rotate makes a new link.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
scope"restricted" | "org" | "anyone"requiredrole"viewer" | "commenter" | "editor"expiresAtintegeror null> 0.
passwordstringor null4–200 characters.
stripMetadatabooleanrotateboolean
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X PUT 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/link' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"scope": "restricted"
}'Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
}/ v1/ me/ drive/ items/ :itemId/ transferGives a My Drive item (org spaces) to another member: it moves to the top of their My Drive and you keep editor access. Owners.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
itemIdDrive file (
fil_…) or folder (fld_…) id, or a drive id for its top folder; underme/fooda shopping list item (fli_…) or something in the pantry (fpn_…).
Request body
userIdstringrequired5–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/{itemId}/transfer' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"userId": "<userId>"
}'Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
path: {
itemId: string
name: string
}[]
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
capabilities: {
view: boolean
comment: boolean
edit: boolean
share: boolean
delete: boolean
}
shares?: {
principalId: string
type: "user" | "team"
role: "viewer" | "commenter" | "editor"
inherited?: {
itemId: string
name: string
}
}[]
link: {
scope: "org" | "restricted" | "anyone"
role: "viewer" | "commenter" | "editor"
expiresAt?: number
hasPassword: boolean
url?: string
}
personal: boolean
}
}/ v1/ me/ drive/ foldersCreates a folder (onConflict: fail, the default, or rename for a numbered name). Editors of the parent.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
parentIdstringrequired3–64 characters.
namestringrequired1–255 characters.
onConflict"rename" | "fail"
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/folders' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"parentId": "<parentId>",
"name": "Example"
}'Response 201
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
}/ v1/ me/ drive/ folders/ pathsFolder uploads: makes each relative path's folders (a, a/b) under parentId, reusing existing ones.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
parentIdstringrequired3–64 characters.
pathsstring[]required1–500 items. Each 1–4,000 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/folders/paths' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"parentId": "<parentId>",
"paths": [
"example"
]
}'Response 200
{
folders: {
[key: string]: string
}
created: number
}/ v1/ me/ drive/ items/ moveMoves items into a folder (up to 500). Between drives (everything inside goes too, at most 2,000 items) only for My Drive's owner or the source drive's managers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
parentIdstringrequired3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/move' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
],
"parentId": "<parentId>"
}'Response 200
{
moved: {
itemId: string
name: string
from: string
}[]
to: {
itemId: string
name: string
}
}/ v1/ me/ drive/ items/ copyCopies files (not folders) into a folder, Copy of … next to the original by default (server-side, up to 20 GB each; counts against storage).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
parentIdstring3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/copy' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
}/ v1/ me/ drive/ items/ trashMoves items (with everything in them) to their drive's trash; deleted forever after 30 days. Editors.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/trash' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
items: {
itemId: string
name: string
kind: "file" | "folder"
}[]
}/ v1/ me/ drive/ items/ restorePuts trashed items back where they were (else at the top of their drive), with a numbered name if the name was taken meanwhile.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/restore' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
items: {
itemId: string
name: string
parentId: string
}[]
}/ v1/ me/ drive/ items/ deleteDeletes trashed items forever (owner or managers). Large folders finish in the background (done: false).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/delete' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 200
{
deleted: {
itemId: string
name: string
}[]
done: boolean
}/ v1/ me/ drive/ items/ starStars or unstars items for the caller (starred).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
starredbooleanrequired
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/items/star' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
],
"starred": true
}'Response 200
{
itemIds: string[]
starred: boolean
}/ v1/ me/ drive/ trashA drive's trash (My Drive by default, or driveId): items trashed there, newest first, with canEmpty for its owner or managers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Query parameters
driveIdstringUp to 64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/trash' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
drive: {
driveId: string
kind: "user" | "shared"
name: string
}
canEmpty: boolean
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
retentionDays: 30
}/ v1/ me/ drive/ trash/ emptyDeletes everything in a drive's trash forever (My Drive by default). Owner or managers.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
driveIdstringUp to 64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/trash/empty' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"driveId": "<driveId>"
}'Response 200
{
deleted: number
done: boolean
}/ v1/ me/ drive/ recentFiles you opened or changed in the last 60 days, newest first.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/recent' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
items: {
at: number
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
}/ v1/ me/ drive/ starredYour starred items you can still open.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/starred' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
items: {
at: number
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
}/ v1/ me/ drive/ searchItems you can open whose names contain every word of q, optionally by type, owner (me, others or a person's id), modifiedAfter/modifiedBefore (ms) or driveId. Up to 50,000 items are searched; truncated says when more weren't.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Query parameters
qstringUp to 200 characters.
typestringUp to 20 characters.
ownerstringUp to 64 characters.
modifiedAfterintegerCoerced from a string.
modifiedBeforeintegerCoerced from a string.
driveIdstringUp to 64 characters.
limitinteger1–200. Coerced from a string.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/search' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
items: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}[]
total: number
truncated: boolean
}/ v1/ me/ drive/ uploadsStarts an upload: answers the part size and links for the first parts (PUT each part, then complete).
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
parentIdstring3–64 characters.
itemIdstring3–64 characters.
namestringrequired1–255 characters.
sizeintegerrequired≥ 0.
mimestringUp to 200 characters.
onConflict"version" | "rename" | "fail"
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/uploads' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"name": "Example",
"size": 1
}'Response 201
{
uploadId: string
itemId: string
partSize: number
partCount: number
urls: {
[key: number]: string
}
contentType: string
name: string
newVersion: boolean
}/ v1/ me/ drive/ uploads/ :uploadId/ partsLinks (an hour each) for more parts of an upload, up to 100 at a time.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
uploadIdUpload id (
dup_…), from starting the upload.
Request body
partNumbersinteger[]required1–100 items. Each 1–10000.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/uploads/{uploadId}/parts' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"partNumbers": [
1
]
}'Response 200
{
urls: {
[key: number]: string
}
expiresIn: number
}/ v1/ me/ drive/ uploads/ :uploadIdWhere an upload stands, with the parts already stored, to resume it.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
uploadIdUpload id (
dup_…), from starting the upload.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/uploads/{uploadId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
uploadId: string
itemId: string
name: string
size: number
partSize: number
partCount: number
parts: {
partNumber: number
etag: string
size?: number
}[]
expiresAt: number
}/ v1/ me/ drive/ uploads/ :uploadId/ completeFinishes an upload once every part has arrived: checks the size, counts it against storage (413 when it doesn't fit) and records the file or its new version.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
uploadIdUpload id (
dup_…), from starting the upload.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/uploads/{uploadId}/complete' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
item: {
itemId: string
driveId: string
parentId?: string
kind: "file" | "folder"
name: string
type: "text" | "code" | "other" | "folder" | "video" | "archive" | "audio" | "document" | "spreadsheet" | "presentation" | "pdf" | "image"
mime?: string
size: number
versions: number
versionId?: string
checksum?: string
children?: number
description?: string
createdBy: string
createdAt: number
modifiedBy: string
modifiedAt: number
ownerId?: string
role: null | "owner" | "viewer" | "commenter" | "editor" | "manager"
starred: boolean
shared: boolean
trashedAt?: number
trashedBy?: string
thumbnailUrl?: string
media?: {
width?: number
height?: number
takenAt?: number
make?: string
model?: string
lat?: number
lon?: number
altitude?: number
orientation?: number
}
stripMetadata: boolean
spaceId: string
contentMatch?: string
}
newVersion: boolean
}/ v1/ me/ drive/ uploads/ :uploadIdCancels an upload and discards its parts.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
uploadIdUpload id (
dup_…), from starting the upload.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X DELETE 'https://api.cactive.com.au/v1/me/drive/uploads/{uploadId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 204 with no body
/ v1/ me/ drive/ archivesA ZIP of files and folders, made in the background; ask for it until status is ready, then download url.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Request body
itemIdsstring[]required1–500 items. Each 3–64 characters.
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl -X POST 'https://api.cactive.com.au/v1/me/drive/archives' \
-H "Authorization: Bearer $CACTIVE_TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"itemIds": [
"example"
]
}'Response 202
{
archive: {
archiveId: string
status: "queued" | "building" | "ready" | "failed"
name: string
files: number
bytes: number
url?: string
error?: string
}
}/ v1/ me/ drive/ archives/ :archiveIdA ZIP's status (queued, building, ready, failed) and, when ready, a one-hour download link.
- Auth
- A person's token or an API key, as Authorization: Bearer.
- Scope
- drive:read
Path parameters
archiveIdZIP download id (
zip_…).
Errors
403Personal files are only for the person, signed in.403This key has no person behind it, so it can't open Drive files.403The person who made this key isn't in the organization any more.
curl 'https://api.cactive.com.au/v1/me/drive/archives/{archiveId}' \
-H "Authorization: Bearer $CACTIVE_TOKEN"Response 200
{
archive: {
archiveId: string
status: "queued" | "building" | "ready" | "failed"
name: string
files: number
bytes: number
url?: string
error?: string
}
}