API 参考

数据结构

Access object

  • roleRole必填
    viewercommentereditormanager
  • space_roleRole必填
    viewercommentereditormanager
  • governed_byFolderAccess | any必填

Account object

  • user_idstring必填
  • planPlan必填
    › 15 个字段
    • storage_bytesinteger | null
      Bytes the owner's spaces may keep (each content counted once; spaces in their own bucket are not counted)
      必填
    • ai_runs_monthinteger | null
      必填
    • ai_media_minutes_monthinteger | null
      Minutes of audio and video that AI runs may read a month
      必填
    • members_per_spaceinteger | null
      必填
    • max_file_bytesinteger | null
      必填
    • idstring必填
    • namestring必填
    • descriptionstring
    • price_centsinteger必填
      Per month (per member when per_member)
    • price_yearly_centsinteger
      Per month when billed yearly (per member when per_member); 0: no yearly price
    • per_memberboolean
      The price, storage and AI allowances are per member; the account's limits are the plan's times its seats
    • currencystring必填
    • publicboolean必填
    • sortinteger
    • updated_atTimestamp
  • statusstring必填
    default: no plan of its own, so the server's default plan
    defaultactivetrialingpast_duecanceled
  • ends_atTimestamp
  • seatsinteger
    On a per-member plan: the people in the spaces the account owns (not agents or guests), itself included
  • overridesPlanLimits
    › 5 个字段
    • storage_bytesinteger | null
      Bytes the owner's spaces may keep (each content counted once; spaces in their own bucket are not counted)
      必填
    • ai_runs_monthinteger | null
      必填
    • ai_media_minutes_monthinteger | null
      Minutes of audio and video that AI runs may read a month
      必填
    • members_per_spaceinteger | null
      必填
    • max_file_bytesinteger | null
      必填
  • limitsPlanLimits必填
    › 5 个字段
    • storage_bytesinteger | null
      Bytes the owner's spaces may keep (each content counted once; spaces in their own bucket are not counted)
      必填
    • ai_runs_monthinteger | null
      必填
    • ai_media_minutes_monthinteger | null
      Minutes of audio and video that AI runs may read a month
      必填
    • members_per_spaceinteger | null
      必填
    • max_file_bytesinteger | null
      必填
  • usageobject必填
    › 6 个字段
  • overstring[]必填
  • providerstring

Action object

  • namestring必填
  • versionstring必填
    Changes when its output would; part of the cache key
  • titlestring必填
  • descriptionstring必填
  • acceptsstring[]必填
    MIME prefixes it takes, e.g. video/; empty = any file
  • writesstring[]必填
    Sidecar namespaces it writes, and "files" when it makes new files
  • params_schemaobject必填
    JSON Schema of its params
  • availableboolean必填
  • needsstring
    When not available: the setting the server lacks

AddMemberRequest object

  • emailstring必填
  • roleRole必填
    viewercommentereditormanager

ApplyForkRequest object

  • pathsstring[]
    Only changes at or under these paths (fork or original paths)
  • forceboolean
    Also replace the original's newer versions
  • dry_runboolean

AuditRecord object

  • atTimestamp必填
  • sourcestring必填
    orgspace
  • kindstring必填
    org.created, member.added, team.member_added, space.team_set, folder.access_set, sso.signed_in… or a journal op (version.created, node.moved…)
  • actor_idstring必填
  • actor_emailstring必填
  • actor_kindstring
    personagentplugin
  • viastring
    token or action
  • space_idstring
  • space_namestring
  • targetstring
  • pathstring
    The file name as it was (space records)
  • detailobject

ChunkRef object

  • hashHash必填
    ^[0-9a-f]{64}$
  • offsetinteger必填
  • leninteger必填

Comment object

  • idstring必填
  • space_idstring必填
  • node_idstring必填
  • version_idstring | null必填
    The version on screen when it was written
    必填
  • parent_idstring | null必填
    Set on replies
    必填
  • authorUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • guest_namestring
    The name a reviewer gave on a review link (author is then the link's guest user)
  • bodystring必填
    ≤ 5000 chars
  • at_msinteger | null必填
    Where in the video or audio
    必填
  • until_msinteger | null必填
    必填
  • regionRegion | any必填
  • resolvedboolean必填
  • resolved_atTimestamp | any
  • resolved_bystring | null
    必填
  • created_atTimestamp必填
  • edited_atTimestamp | any必填
  • repliesComment[]

CommentRequest object

  • bodystring必填
    ≤ 5000 chars
  • at_msinteger
    ≥ 0
  • until_msinteger
    Needs at_ms; not before it
  • regionRegion
    › 4 个字段
    • xnumber必填
    • ynumber必填
    • wnumber必填
    • hnumber必填
  • parent_idstring
    Reply to this comment (a reply to a reply joins the same thread)
  • version_idstring
    The version being looked at (default: the current one)

CommitVersionRequest object

  • base_version_idstring | null必填
    必填
  • manifestManifest必填
    › 3 个字段
    • algostring必填
      fastcdc-v1
    • sizeinteger必填
    • chunksChunkRef[]必填
      › 3 个字段
      • hashHash必填
        ^[0-9a-f]{64}$
      • offsetinteger必填
      • leninteger必填
  • mimestring
  • client_mtimeTimestamp
  • if_version_idstring
    Save only if the file is still at this version (same as If-Match); else 412 precondition_failed
  • if_newboolean
    Save only if the file has no version yet (same as If-None-Match: *)

CommitVersionResponse object

  • versionVersionInfo必填
    › 15 个字段
    • idstring必填
    • node_idstring必填
    • seqinteger必填
      1-based per node
    • sizeinteger必填
    • mimestring | null必填
      必填
    • manifest_hashHash必填
      ^[0-9a-f]{64}$
    • authorUser必填
      › 4 个字段
      • idstring必填
      • emailstring必填
        Agents have an address at agents.invalid: it finds them for invites, no mail goes there
      • display_namestring必填
      • kindstring必填
        humanagent
    • device_idstring | null必填
      必填
    • base_version_idstring | null必填
      必填
    • superseded_version_idstring | null必填
      Head this save replaced although it was not its base
      必填
    • client_mtimeTimestamp | any必填
    • created_atTimestamp必填
    • labelstring
      The name someone gave this version ("Client cut"), unique per file; absent if none
    • labeled_bystring
    • labeled_atTimestamp
  • nodeNodeInfo必填
    › 11 个字段
    • idstring必填
    • space_idstring必填
    • parent_idstring | null必填
      null for the space root
      必填
    • namestring必填
    • kindNodeKind必填
      filedir
    • head_version_idstring | null必填
      必填
    • sizeinteger必填
    • mimestring | null必填
      必填
    • meta_revinteger必填
      Bumped by rename
    • deletedboolean必填
    • mtimeTimestamp必填
  • supersededSuperseded | any必填

CreateNodeRequest object

  • parent_idstring必填
  • namestring必填
  • kindNodeKind必填
    filedir
  • if_existsstring
    When a live sibling has the same name (case-insensitive): rename creates "name (2).ext"; reuse returns the existing node of the same kind; fail (or If-None-Match: *) answers 412 precondition_failed with the existing node_id. Sync clients use reuse so concurrent creates of one path converge on one file (last save wins, both saves in its history).
    renamereusefail
    default "rename"

CreateShareRequest object

  • node_idstring必填
  • modeShareMode必填
    viewuploadrequest
  • passwordstring
  • expires_atTimestamp
  • can_commentboolean
    A review link: anyone with it can comment, under a name they give
  • no_downloadboolean
    Watch-only: no downloads; videos play their streaming proxy, and originals the browser cannot show are not served
  • titlestring
    Mode request (required there): what files you are asking for
    ≤ 200 chars
  • messagestring
    Mode request: details for the senders
    ≤ 4000 chars

CreateShareResponse object

  • shareShare必填
    › 13 个字段
    • idstring必填
    • node_idstring必填
    • modeShareMode必填
      viewuploadrequest
    • has_passwordboolean必填
    • expires_atTimestamp | any必填
    • created_bystring必填
    • created_atTimestamp必填
    • revokedboolean必填
    • can_commentboolean
      A review link: people with it can comment on its files
    • no_downloadboolean
      Watch-only: the page previews and plays the streaming proxy but offers no download
    • titlestring | any
      What an upload request asks for
    • messagestring | any
      Details of an upload request
    • uploadsinteger
      Files people have sent through the link
  • tokenstring必填
  • urlstring必填

CreateSpaceRequest object

  • namestring必填
  • storage_idstring
    One of my storage profiles to keep its files in

Device object

  • idstring必填
  • namestring必填
  • platformstring必填
  • last_seen_atTimestamp | any
  • revoked_atTimestamp | any
  • currentboolean必填

DownloadTicket object

  • ticketstring必填
  • manifestManifest必填
    › 3 个字段
    • algostring必填
      fastcdc-v1
    • sizeinteger必填
    • chunksChunkRef[]必填
      › 3 个字段
      • hashHash必填
        ^[0-9a-f]{64}$
      • offsetinteger必填
      • leninteger必填
  • blockgw_urlstring必填
  • expires_atTimestamp必填

DownloadTicketRequest object

  • version_idstring必填
  • renditionstring
    e.g. thumb, or proxy (the server-made 720p H.264 stream of a video)
  • streamboolean
    A ticket for a player: lasts a viewing session (6 h) instead of minutes

EditOp object

  • atinteger (int64)必填
    Byte offset in the old version
    ≥ 0
  • deleteinteger (int64)
    Bytes removed there
    default 0 · ≥ 0
  • textstring
    Inserted there, as UTF-8
  • base64string
    Inserted there, as bytes (instead of text)

EditRequest object

  • if_version_idstring
    The version the offsets are in; must still be the head
  • opsEditOp[]
    ≤ 10000 items
    › 4 个字段
    • atinteger (int64)必填
      Byte offset in the old version
      ≥ 0
    • deleteinteger (int64)
      Bytes removed there
      default 0 · ≥ 0
    • textstring
      Inserted there, as UTF-8
    • base64string
      Inserted there, as bytes (instead of text)
  • truncateinteger (int64)
    Cut the result to this many bytes
    ≥ 0

EmailStartRequest object

  • emailstring (email)必填

EmailVerifyRequest object

  • emailstring必填
  • codestring必填
    ^[0-9]{6}$
  • device_namestring必填
  • platformstring必填
  • display_namestring
    Used when the account is created

Error object

  • errorobject必填
    › 4 个字段
    • codestring必填
      Stable; see the error reference (docs/reference/errors.md). New codes may be added, so treat an unknown one by its HTTP status.
      bad_requestunauthorizedforbiddennot_foundconflictmissing_chunksprecondition_failedquota_exceededrate_limitedexpiredsso_requiredsso_unavailabledomain_unprovenmail_failedunavailableinternal
    • messagestring必填
      For people; may change. Match on code
    • detailsany
      Extra data for some codes, e.g. the current version for precondition_failed
    • request_idstring
      Same as the X-Request-Id header; quote it when reporting a problem

FolderAccess object

  • node_idstring必填
  • pathstring必填
  • default_roleRole | any必填
    The most anyone not granted may do inside; null keeps their space role
  • grantsFolderGrant[]必填
    › 4 个字段
    • kindstring必填
      userteam
    • idstring
    • roleRole必填
      viewercommentereditormanager
    • namestring
      An email or team name; on a request a user may be named by email instead of id
  • updated_bystring
  • updated_atTimestamp

FolderGrant object

  • kindstring必填
    userteam
  • idstring
  • roleRole必填
    viewercommentereditormanager
  • namestring
    An email or team name; on a request a user may be named by email instead of id

FolderSize object

  • filesinteger必填
  • foldersinteger必填
  • bytesinteger必填
    Bytes of the current versions of every file
  • videosinteger必填
  • proxy_filesinteger必填
    Videos that have a streaming proxy
  • proxy_bytesinteger必填
    What those proxies weigh
  • largestinteger必填
    The biggest single file

ForkApplied any

  • kindstring必填
    addedmodifiedmetadatamoveddeleted
  • node_kindstring必填
    filedir
  • pathstring必填
    In the fork ("" for a deleted node)
  • node_idstring必填
    In the fork
  • origin_pathstring
    Where it is (or goes) in the original
  • origin_node_idstring
  • sidecarsstring[]
    Namespaces whose documents differ
  • conflictboolean
    The original changed it too since the fork: apply needs force
  • whystring
  • resultstring必填
    appliedskippedwould applyfailed
  • errorstring

ForkChange object

  • kindstring必填
    addedmodifiedmetadatamoveddeleted
  • node_kindstring必填
    filedir
  • pathstring必填
    In the fork ("" for a deleted node)
  • node_idstring必填
    In the fork
  • origin_pathstring
    Where it is (or goes) in the original
  • origin_node_idstring
  • sidecarsstring[]
    Namespaces whose documents differ
  • conflictboolean
    The original changed it too since the fork: apply needs force
  • whystring

ForkRequest object

  • namestring必填
  • pathstring
    Only this folder of the space (default all of it)

Hash string

^[0-9a-f]{64}$

JournalEntry object

  • seqinteger必填
  • opJournalOp必填
    node.creatednode.renamednode.movednode.deletednode.restoredversion.createdversion.labeledsidecar.updatedrendition.updatedincoming.startedincoming.stoppedcomment.createdcomment.updated
  • node_idstring必填
  • version_idstring | null必填
    必填
  • actor_idstring必填
    The user the change was made by or for
  • actor_kindstring必填
    A person, an agent, or a server plugin (e.g. the media worker) acting for actor_id
    humanagentplugin
  • actor_viastring
    What the change came through: an access token (tok_…) or a plugin (media). Absent for the apps.
  • device_idstring | null必填
    必填
  • tsTimestamp必填
  • nodeNodeInfo必填
    › 11 个字段
    • idstring必填
    • space_idstring必填
    • parent_idstring | null必填
      null for the space root
      必填
    • namestring必填
    • kindNodeKind必填
      filedir
    • head_version_idstring | null必填
      必填
    • sizeinteger必填
    • mimestring | null必填
      必填
    • meta_revinteger必填
      Bumped by rename
    • deletedboolean必填
    • mtimeTimestamp必填

JournalOp string

node.creatednode.renamednode.movednode.deletednode.restoredversion.createdversion.labeledsidecar.updatedrendition.updatedincoming.startedincoming.stoppedcomment.createdcomment.updated

JournalPage object

  • entriesJournalEntry[]必填
    › 10 个字段
    • seqinteger必填
    • opJournalOp必填
      node.creatednode.renamednode.movednode.deletednode.restoredversion.createdversion.labeledsidecar.updatedrendition.updatedincoming.startedincoming.stoppedcomment.createdcomment.updated
    • node_idstring必填
    • version_idstring | null必填
      必填
    • actor_idstring必填
      The user the change was made by or for
    • actor_kindstring必填
      A person, an agent, or a server plugin (e.g. the media worker) acting for actor_id
      humanagentplugin
    • actor_viastring
      What the change came through: an access token (tok_…) or a plugin (media). Absent for the apps.
    • device_idstring | null必填
      必填
    • tsTimestamp必填
    • nodeNodeInfo必填
      › 11 个字段
      • idstring必填
      • space_idstring必填
      • parent_idstring | null必填
        null for the space root
        必填
      • namestring必填
      • kindNodeKind必填
        filedir
      • head_version_idstring | null必填
        必填
      • sizeinteger必填
      • mimestring | null必填
        必填
      • meta_revinteger必填
        Bumped by rename
      • deletedboolean必填
      • mtimeTimestamp必填
  • last_seqinteger必填
  • has_moreboolean必填

Manifest object

manifest_hash = BLAKE3("sidespace-manifest-v1" 0x00 algo 0x00 size:u64le count:u32le (hash[32] len:u32le)*)
  • algostring必填
    fastcdc-v1
  • sizeinteger必填
  • chunksChunkRef[]必填
    › 3 个字段
    • hashHash必填
      ^[0-9a-f]{64}$
    • offsetinteger必填
    • leninteger必填

Member object

  • userUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • roleRole必填
    viewercommentereditormanager
  • direct_roleRole | any
    Their own grant; null when they are here only through teams
  • teamsMemberTeam[]
    › 3 个字段
    • idstring必填
    • namestring必填
    • roleRole必填
      viewercommentereditormanager

MemberTeam object

  • idstring必填
  • namestring必填
  • roleRole必填
    viewercommentereditormanager

NamespaceOwner object

  • namespacestring必填
  • ownerUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • created_atTimestamp必填

NodeInfo object

  • idstring必填
  • space_idstring必填
  • parent_idstring | null必填
    null for the space root
    必填
  • namestring必填
  • kindNodeKind必填
    filedir
  • head_version_idstring | null必填
    必填
  • sizeinteger必填
  • mimestring | null必填
    必填
  • meta_revinteger必填
    Bumped by rename
  • deletedboolean必填
  • mtimeTimestamp必填

NodeKind string

filedir

NodePage object

  • itemsNodeInfo[]必填
    › 11 个字段
    • idstring必填
    • space_idstring必填
    • parent_idstring | null必填
      null for the space root
      必填
    • namestring必填
    • kindNodeKind必填
      filedir
    • head_version_idstring | null必填
      必填
    • sizeinteger必填
    • mimestring | null必填
      必填
    • meta_revinteger必填
      Bumped by rename
    • deletedboolean必填
    • mtimeTimestamp必填
  • next_cursorstring | null必填
    必填

Notification object

  • idstring必填
  • version.supersededspace.invitedshare.uploadedspace.role_changedspace.removedcomment.created
  • payloadobject必填
    version.superseded: {space_id, node_id, name, your_version_id, new_version_id, by: User} space.invited: {space_id, space_name, role, by: User} share.uploaded: {space_id, share_id, node_id, name, parent_id}
  • read_atTimestamp | any必填
  • created_atTimestamp必填

NotificationKind string

version.supersededspace.invitedshare.uploadedspace.role_changedspace.removedcomment.created

NotificationPage object

  • itemsNotification[]必填
    › 5 个字段
    • idstring必填
    • version.supersededspace.invitedshare.uploadedspace.role_changedspace.removedcomment.created
    • payloadobject必填
      version.superseded: {space_id, node_id, name, your_version_id, new_version_id, by: User} space.invited: {space_id, space_name, role, by: User} share.uploaded: {space_id, share_id, node_id, name, parent_id}
    • read_atTimestamp | any必填
    • created_atTimestamp必填
  • next_cursorstring | null必填
    必填

OAuthApp object

  • idstring必填
    The OAuth client_id
  • namestring必填
  • redirect_urisstring[]必填
  • client_uristring
  • logo_uristring
  • confidentialboolean必填
  • registeredboolean必填
    The app registered itself (RFC 7591)
  • created_atTimestamp必填

Org object

  • idstring必填
  • namestring必填
  • roleOrgRole必填
    owneradminmember
  • membersinteger必填
  • teamsinteger必填
  • spacesinteger必填
  • created_atTimestamp必填

OrgMember object

  • userUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • roleOrgRole必填
    owneradminmember
  • teamsstring[]必填
  • sinceTimestamp必填

OrgRole string

owneradminmember

OrgSpace object

  • idstring必填
  • namestring必填
  • owner_idstring必填
  • teamsMemberTeam[]必填
    › 3 个字段
    • idstring必填
    • namestring必填
    • roleRole必填
      viewercommentereditormanager

PatchMemberRequest object

  • roleRole必填
    viewercommentereditormanager

PatchNodeRequest object

  • namestring
  • parent_idstring
  • if_version_idstring
    Rename or move only if the file is still at this version

PatchSpaceRequest object

  • namestring
  • storage_idstring
    A storage profile of mine, or empty for the server's own storage. Only while the space has no files (409).

Pipeline object

  • idstring必填
  • space_idstring必填
  • created_bystring必填
    The manager it runs for; it stops if they stop being a manager
  • namestring必填
  • actionstring必填
  • paramsobject必填
  • path_globstring必填
    e.g. /dailies/** or **/*.mov; empty = all
  • mime_prefixstring必填
    e.g. video/; empty = what the action accepts
  • › 7 个字段
    • min_sizeinteger
      Bytes
      ≥ 0
    • max_sizeinteger
      ≥ 0
    • min_duration_snumber
      ≥ 0
    • max_duration_snumber
      ≥ 0
    • min_widthinteger
      ≥ 0
    • min_heightinteger
      ≥ 0
    • has_audioboolean
  • afterstring | null
    The action it follows: it starts when a run of that action finishes on a matching file, instead of on save
    必填
  • activeboolean必填
  • disabled_reasonstring | null
    必填
  • cursor_seqinteger必填
    Last journal seq looked at
  • created_atTimestamp必填

PipelineConditions object

All must hold. Duration, size in pixels and sound come from the media probe of videos; a file without the value does not match.
  • min_sizeinteger
    Bytes
    ≥ 0
  • max_sizeinteger
    ≥ 0
  • min_duration_snumber
    ≥ 0
  • max_duration_snumber
    ≥ 0
  • min_widthinteger
    ≥ 0
  • min_heightinteger
    ≥ 0
  • has_audioboolean

PipelineRequest object

  • namestring
  • actionstring
  • paramsobject
  • path_globstring
  • mime_prefixstring
  • › 7 个字段
    • min_sizeinteger
      Bytes
      ≥ 0
    • max_sizeinteger
      ≥ 0
    • min_duration_snumber
      ≥ 0
    • max_duration_snumber
      ≥ 0
    • min_widthinteger
      ≥ 0
    • min_heightinteger
      ≥ 0
    • has_audioboolean
  • afterstring
    An action name; "" clears it
  • activeboolean

PipelineTemplate object

  • idstring必填
  • titlestring必填
  • descriptionstring必填
  • pipelinesPipelineRequest[]必填
    › 8 个字段
    • namestring
    • actionstring
    • paramsobject
    • path_globstring
    • mime_prefixstring
    • › 7 个字段
      • min_sizeinteger
        Bytes
        ≥ 0
      • max_sizeinteger
        ≥ 0
      • min_duration_snumber
        ≥ 0
      • max_duration_snumber
        ≥ 0
      • min_widthinteger
        ≥ 0
      • min_heightinteger
        ≥ 0
      • has_audioboolean
    • afterstring
      An action name; "" clears it
    • activeboolean

Plan any

  • storage_bytesinteger | null
    Bytes the owner's spaces may keep (each content counted once; spaces in their own bucket are not counted)
    必填
  • ai_runs_monthinteger | null
    必填
  • ai_media_minutes_monthinteger | null
    Minutes of audio and video that AI runs may read a month
    必填
  • members_per_spaceinteger | null
    必填
  • max_file_bytesinteger | null
    必填
  • idstring必填
  • namestring必填
  • descriptionstring
  • price_centsinteger必填
    Per month (per member when per_member)
  • price_yearly_centsinteger
    Per month when billed yearly (per member when per_member); 0: no yearly price
  • per_memberboolean
    The price, storage and AI allowances are per member; the account's limits are the plan's times its seats
  • currencystring必填
  • publicboolean必填
  • sortinteger
  • updated_atTimestamp

PlanLimits object

Null is unlimited.
  • storage_bytesinteger | null
    Bytes the owner's spaces may keep (each content counted once; spaces in their own bucket are not counted)
    必填
  • ai_runs_monthinteger | null
    必填
  • ai_media_minutes_monthinteger | null
    Minutes of audio and video that AI runs may read a month
    必填
  • members_per_spaceinteger | null
    必填
  • max_file_bytesinteger | null
    必填

Plugin object

  • idstring必填
  • space_idstring必填
  • namestring必填
  • manifestPluginManifest必填
    › 9 个字段
    • namestring必填
      Its actions are .
      ^x-[a-z0-9][a-z0-9-]*(\.[a-z0-9][a-z0-9-]*)*$
    • titlestring
    • descriptionstring
    • versionstring必填
      Part of the result cache key: a new version runs files again
    • homepagestring
    • runtimestring
      https: jobs are POSTed to endpoint. runner: no endpoint; sidespace runner (or any program) claims jobs at POST /v1/plugin-runs/claim
      httpsrunner
      default "https"
    • endpointstring
      Receives the signed jobs (POST); https. Not set for runner plugins
    • timeout_secondsinteger
      How long a run answered with 202 may take before it is sent again
      default 3600 · ≥ 10 · ≤ 86400
    • actionsobject[]必填
      ≤ 50 items
      › 6 个字段
      • namestring必填
        ^[a-z][a-z0-9_-]{0,40}$
      • titlestring
      • descriptionstring
      • acceptsstring[]
        MIME prefixes; empty = any file
      • writesstring[]必填
        x-… namespaces, transcript, ai.tags, ai.generation, user, and/or files
      • params_schemaobject
        JSON Schema the params are checked against
  • endpointstring必填
  • created_bystring必填
  • activeboolean必填
  • disabled_reasonstring | null
    必填
  • created_atTimestamp必填
  • updated_atTimestamp必填

PluginJob object

The body of a job POSTed to a plugin's endpoint, signed with Side-Signature like a webhook. Answer 200 with a PluginResult, or 202 and complete it later through callback.url.
  • typestring必填
    run
  • run_idstring必填
  • actionstring必填
    The plugin's own action name (check
  • attemptinteger必填
  • space_idstring必填
  • node_idstring必填
  • version_idstring必填
  • pathstring必填
  • namestring必填
  • mimestring
  • sizeinteger必填
  • paramsobject必填
  • inputobject必填
    › 2 个字段
    • urlstring必填
      The version's bytes; Range works
    • expires_atTimestamp必填
  • sidecarsobject
    The media sidecar, when the server probed the file
  • callbackobject必填
    › 3 个字段
    • urlstring必填
      …/v1/plugin-runs/{run_id}; POST /progress, /upload, /complete
    • tokenstring必填
      srt_…, as a bearer token
    • expires_atTimestamp必填

PluginManifest object

What a plugin publishes about itself (ADR 0015; runners ADR 0022).
  • namestring必填
    Its actions are .
    ^x-[a-z0-9][a-z0-9-]*(\.[a-z0-9][a-z0-9-]*)*$
  • titlestring
  • descriptionstring
  • versionstring必填
    Part of the result cache key: a new version runs files again
  • homepagestring
  • runtimestring
    https: jobs are POSTed to endpoint. runner: no endpoint; sidespace runner (or any program) claims jobs at POST /v1/plugin-runs/claim
    httpsrunner
    default "https"
  • endpointstring
    Receives the signed jobs (POST); https. Not set for runner plugins
  • timeout_secondsinteger
    How long a run answered with 202 may take before it is sent again
    default 3600 · ≥ 10 · ≤ 86400
  • actionsobject[]必填
    ≤ 50 items
    › 6 个字段
    • namestring必填
      ^[a-z][a-z0-9_-]{0,40}$
    • titlestring
    • descriptionstring
    • acceptsstring[]
      MIME prefixes; empty = any file
    • writesstring[]必填
      x-… namespaces, transcript, ai.tags, ai.generation, user, and/or files
    • params_schemaobject
      JSON Schema the params are checked against

PluginRequest object

Give manifest_url (fetched now) or manifest; and/or active.
  • manifest_urlstring
  • › 9 个字段
    • namestring必填
      Its actions are .
      ^x-[a-z0-9][a-z0-9-]*(\.[a-z0-9][a-z0-9-]*)*$
    • titlestring
    • descriptionstring
    • versionstring必填
      Part of the result cache key: a new version runs files again
    • homepagestring
    • runtimestring
      https: jobs are POSTed to endpoint. runner: no endpoint; sidespace runner (or any program) claims jobs at POST /v1/plugin-runs/claim
      httpsrunner
      default "https"
    • endpointstring
      Receives the signed jobs (POST); https. Not set for runner plugins
    • timeout_secondsinteger
      How long a run answered with 202 may take before it is sent again
      default 3600 · ≥ 10 · ≤ 86400
    • actionsobject[]必填
      ≤ 50 items
      › 6 个字段
      • namestring必填
        ^[a-z][a-z0-9_-]{0,40}$
      • titlestring
      • descriptionstring
      • acceptsstring[]
        MIME prefixes; empty = any file
      • writesstring[]必填
        x-… namespaces, transcript, ai.tags, ai.generation, user, and/or files
      • params_schemaobject
        JSON Schema the params are checked against
  • activeboolean

PluginResult object

  • sidecarsmap<string, any>
    namespace → document, only namespaces the action declares
  • filesobject[]
    › 3 个字段
    • pathstring必填
    • mimestring
    • manifestManifest必填
      › 3 个字段
      • algostring必填
        fastcdc-v1
      • sizeinteger必填
      • chunksChunkRef[]必填
        › 3 个字段
        • hashHash必填
          ^[0-9a-f]{64}$
        • offsetinteger必填
        • leninteger必填
  • errorstring
    On complete: the run failed
  • retryboolean
    With error: try another attempt

Presence object

  • space_idstring必填
  • node_idstring必填
  • user_idstring必填
  • user_namestring必填
  • device_idstring必填
  • statestring必填
    viewingeditingnone
  • expires_atTimestamp必填

PutRenditionRequest object

  • manifestManifest必填
    › 3 个字段
    • algostring必填
      fastcdc-v1
    • sizeinteger必填
    • chunksChunkRef[]必填
      › 3 个字段
      • hashHash必填
        ^[0-9a-f]{64}$
      • offsetinteger必填
      • leninteger必填
  • mimestring必填

PutSidecarRequest object

  • docobject必填
  • schema_versioninteger
    default 1
  • producerobject

RefreshRequest object

  • refresh_tokenstring必填

Region object

A rectangle as fractions (0..1) of the frame or image
  • xnumber必填
  • ynumber必填
  • wnumber必填
  • hnumber必填

Release object

  • platformstring必填
    macoslinux
  • versionstring必填
  • urlstring (uri)必填
    Where to download it
  • sha256string
    The download's SHA-256
  • notesstring
  • min_versionstring
    Older versions must update
  • updateboolean必填
    current is older than version
  • requiredboolean必填
    current is older than min_version

Rendition object

  • kindstring必填
  • mimestring必填
  • manifest_hashHash必填
    ^[0-9a-f]{64}$
  • sizeinteger必填

RewindChange object

  • actionstring必填
    restoreundeletemovetrashmissing
  • node_idstring必填
  • kindNodeKind必填
    filedir
  • pathstring必填
    Where it is after the rewind (trash; where it was)
  • from_pathstring
    move: where it was before
  • version_idstring
    restore: the version brought back
  • notestring

RewindResult object

  • as_of_seqinteger必填
  • as_of_timestring (date-time) | null
    必填
  • dry_runboolean必填
  • changesRewindChange[]必填
    › 7 个字段
    • actionstring必填
      restoreundeletemovetrashmissing
    • node_idstring必填
    • kindNodeKind必填
      filedir
    • pathstring必填
      Where it is after the rewind (trash; where it was)
    • from_pathstring
      move: where it was before
    • version_idstring
      restore: the version brought back
    • notestring

Role string

viewercommentereditormanager

Run object

  • idstring必填
  • space_idstring必填
  • node_idstring必填
  • version_idstring必填
    The version it works on; a newer save is a new run
  • actionstring必填
  • action_versionstring必填
  • paramsobject必填
    The params with defaults filled in
  • pipeline_idstring | null
    必填
  • requested_bystring必填
  • stateRunState必填
    queuedrunningdonefailedcanceled
  • attemptsinteger必填
    Tries so far; failures that may pass later retry up to 3 times
  • progressnumber | null
    ≥ 0 · ≤ 1
    必填
  • errorstring | null
    必填
  • resultobject | null
    必填
    › 2 个字段
    • sidecarsmap<string, any>
      namespace → document written on the version
    • filesobject[]
      › 4 个字段
      • pathstring必填
      • mimestring必填
      • node_idstring
      • version_idstring
  • cachedboolean必填
    The result was reused from the same bytes done before
  • created_atTimestamp必填
  • started_atTimestamp | any
  • finished_atTimestamp | any

RunRequest object

Name the file by version_id, node_id (its current version) or path.
  • actionstring必填
  • version_idstring
  • node_idstring
  • pathstring
  • paramsobject
    Checked against the action's params_schema
  • freshboolean
    Run again even if these bytes were done before

RunState string

queuedrunningdonefailedcanceled

SSOConfig object

  • issuerstring必填
  • client_idstring必填
  • client_secretstring
  • domainsstring[]必填
  • requiredboolean
    Email codes stop working for these domains
  • redirect_uristring
    Register it with the provider
  • domain_proofstring
    Value of the DNS TXT record _sidespace.
  • updated_atTimestamp

SSOStart object

  • urlstring必填
  • handlestring必填
  • expires_atTimestamp必填

SearchHit object

  • nodeNodeInfo必填
    › 11 个字段
    • idstring必填
    • space_idstring必填
    • parent_idstring | null必填
      null for the space root
      必填
    • namestring必填
    • kindNodeKind必填
      filedir
    • head_version_idstring | null必填
      必填
    • sizeinteger必填
    • mimestring | null必填
      必填
    • meta_revinteger必填
      Bumped by rename
    • deletedboolean必填
    • mtimeTimestamp必填
  • space_namestring必填
  • folderstring必填
    Path of the folder holding it, from the space root ("" at the root)
  • matchedstring[]必填
    "name", the sidecar namespaces, "comments", or "meaning" for a file found by what it is about
  • snippetstring
    For a metadata or comment match, the matching value, shortened to about 120 characters
  • momentsSearchMoment[]
    Where in a video or audio file it matched, in time order
    ≤ 5 items
    › 4 个字段
    • at_msinteger (int64)必填
      ≥ 0
    • until_msinteger (int64)
    • textstring必填
      The transcript line, comment or piece of transcript that matched
    • sourcestring必填
      transcriptcommentsmeaning
  • scorenumber
    How close in meaning (cosine, 0–1), for files found by meaning

SearchMoment object

  • at_msinteger (int64)必填
    ≥ 0
  • until_msinteger (int64)
  • textstring必填
    The transcript line, comment or piece of transcript that matched
  • sourcestring必填
    transcriptcommentsmeaning

SetFolderAccessRequest object

  • default_roleRole | any
  • grantsFolderGrant[]必填
    › 4 个字段
    • kindstring必填
      userteam
    • idstring
    • roleRole必填
      viewercommentereditormanager
    • namestring
      An email or team name; on a request a user may be named by email instead of id

Share object

  • idstring必填
  • node_idstring必填
  • modeShareMode必填
    viewuploadrequest
  • has_passwordboolean必填
  • expires_atTimestamp | any必填
  • created_bystring必填
  • created_atTimestamp必填
  • revokedboolean必填
  • can_commentboolean
    A review link: people with it can comment on its files
  • no_downloadboolean
    Watch-only: the page previews and plays the streaming proxy but offers no download
  • titlestring | any
    What an upload request asks for
  • messagestring | any
    Details of an upload request
  • uploadsinteger
    Files people have sent through the link

ShareMode string

view: browse and download; upload: browse and add files; request: an upload request, where people see the title and message, not the folder, and each sender's files land in a subfolder named after them
viewuploadrequest

ShelfItem object

  • idstring必填
  • space_idstring必填
  • kindstring必填
    textlinkfile
  • textstring | null必填
    必填
  • node_idstring | null必填
    必填
  • namestring | null必填
    必填
  • sizeinteger | null必填
    必填
  • mimestring | null必填
    必填
  • is_folderboolean必填
  • authorUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • created_atTimestamp必填
  • expires_atTimestamp必填

ShelfRequest object

Either text (a note, or a link when it is one http(s) URL) or node_id
  • textstring
    ≤ 10000 chars
  • node_idstring

Sidecar object

  • namespacestring必填
  • docobject必填
  • schema_versioninteger必填
  • producerobject | null必填
    Who wrote it, e.g. {"name":"cliptap","version":"1.2","inherited_from":"ver_..."}
    必填
  • updated_atTimestamp必填

SnapshotPage object

  • nodesNodeInfo[]必填
    › 11 个字段
    • idstring必填
    • space_idstring必填
    • parent_idstring | null必填
      null for the space root
      必填
    • namestring必填
    • kindNodeKind必填
      filedir
    • head_version_idstring | null必填
      必填
    • sizeinteger必填
    • mimestring | null必填
      必填
    • meta_revinteger必填
      Bumped by rename
    • deletedboolean必填
    • mtimeTimestamp必填
  • at_seqinteger必填
  • next_cursorstring | null必填
    必填

Space object

  • idstring必填
  • namestring必填
  • roleRole必填
    viewercommentereditormanager
  • owner_idstring必填
  • root_node_idstring必填
  • journal_seqinteger必填
  • created_atTimestamp必填
  • storage_idstring
    The storage profile its files are in; absent for the server's own storage
  • forkobject
    Set when the space is a fork
    › 3 个字段
    • from_space_idstring必填
    • pathstring必填
      The folder of the original it copies ("/" for all of it)
    • at_seqinteger必填
      The original's journal position when it was forked
  • org_idstring
    The organization it belongs to

StorageProfile object

  • idstring必填
  • namestring必填
  • kindstring必填
    s3
  • endpointstring必填
    Empty for AWS S3
  • bucketstring必填
  • regionstring必填
  • prefixstring必填
    Keys go under it; empty or ends in /
  • access_keystring必填
  • spacesinteger必填
    How many spaces keep their files in it
  • created_atTimestamp必填
  • updated_atTimestamp必填

StorageRequest object

To add, name and bucket are required. To change, give only what changes.
  • namestring
  • kindstring
    s3
    default "s3"
  • endpointstring
    https URL of an S3-compatible service (R2, B2, OSS, MinIO…); empty for AWS S3
  • bucketstring
  • regionstring
    default "us-east-1"
  • prefixstring
  • access_keystring
  • secret_keystring
    Stored sealed; never returned. Required with access_key: the gateway never lends its own credentials.

Superseded object

  • version_idstring必填
  • authorUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent

Team object

  • idstring必填
  • org_idstring必填
  • namestring必填
  • membersUser[]必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • created_atTimestamp必填

Timestamp string (date-time)

TokenInfo object

  • idstring必填
  • namestring必填
  • prefixstring必填
    The first characters of the secret, to tell tokens apart
  • userUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • scopesstring[]必填
  • space_idsstring[] | null必填
    null means every space
    必填
  • expires_atTimestamp | any必填
  • last_used_atTimestamp | any必填
  • created_atTimestamp必填
  • revoked_atTimestamp | any必填
  • s3_access_key_idstring
    Set when the token is also an S3 key
  • app_idstring
    Set when an app got the token through OAuth: it lasts an hour and the app refreshes it
  • parent_idstring
    Set when the token was derived from another token; it works only while that one (and every token above it) does

TokenPair object

  • access_tokenstring必填
    Ed25519 JWT, 15 minutes; claims sub, did, scope
  • refresh_tokenstring必填
    ., 30 days, rotates on every refresh
  • expires_ininteger必填
  • userUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • device_idstring必填

UploadSession object

  • missingHash[]必填
  • ticketstring必填
  • blockgw_urlstring必填
  • expires_atTimestamp必填

UploadSessionRequest object

  • hashesHash[]必填
    ≤ 20000 items

User object

  • idstring必填
  • emailstring必填
    Agents have an address at agents.invalid: it finds them for invites, no mail goes there
  • display_namestring必填
  • kindstring必填
    humanagent

VersionCompare object

  • › 15 个字段
    • idstring必填
    • node_idstring必填
    • seqinteger必填
      1-based per node
    • sizeinteger必填
    • mimestring | null必填
      必填
    • manifest_hashHash必填
      ^[0-9a-f]{64}$
    • authorUser必填
      › 4 个字段
      • idstring必填
      • emailstring必填
        Agents have an address at agents.invalid: it finds them for invites, no mail goes there
      • display_namestring必填
      • kindstring必填
        humanagent
    • device_idstring | null必填
      必填
    • base_version_idstring | null必填
      必填
    • superseded_version_idstring | null必填
      Head this save replaced although it was not its base
      必填
    • client_mtimeTimestamp | any必填
    • created_atTimestamp必填
    • labelstring
      The name someone gave this version ("Client cut"), unique per file; absent if none
    • labeled_bystring
    • labeled_atTimestamp
  • › 15 个字段
    • idstring必填
    • node_idstring必填
    • seqinteger必填
      1-based per node
    • sizeinteger必填
    • mimestring | null必填
      必填
    • manifest_hashHash必填
      ^[0-9a-f]{64}$
    • authorUser必填
      › 4 个字段
      • idstring必填
      • emailstring必填
        Agents have an address at agents.invalid: it finds them for invites, no mail goes there
      • display_namestring必填
      • kindstring必填
        humanagent
    • device_idstring | null必填
      必填
    • base_version_idstring | null必填
      必填
    • superseded_version_idstring | null必填
      Head this save replaced although it was not its base
      必填
    • client_mtimeTimestamp | any必填
    • created_atTimestamp必填
    • labelstring
      The name someone gave this version ("Client cut"), unique per file; absent if none
    • labeled_bystring
    • labeled_atTimestamp
  • same_contentboolean必填
    Byte for byte the same
  • size_deltainteger必填
    B's size minus A's
  • bytesobject必填
    The content compared chunk by chunk. A metadata-only re-save or a trim shares most of its bytes.
    › 4 个字段
    • sharedinteger必填
    • only_ainteger必填
    • only_binteger必填
    • shared_rationumber必填
      Shared over B's size (1 = nothing new in B)
  • mediaobject[]必填
    Media facts (duration_s, width, height, codecs…) that differ
    › 3 个字段
    • fieldstring必填
    • aany必填
    • bany必填
  • sidecarsobject[]必填
    Sidecar namespaces added, removed or changed from A to B (core and media are left out)
    › 3 个字段
    • namespacestring必填
    • changestring必填
      addedremovedchanged
    • fieldsstring[]
      Top-level keys that differ
  • renditionsmap<string, string[]>必填
    Rendition kinds by version id

VersionInfo object

  • idstring必填
  • node_idstring必填
  • seqinteger必填
    1-based per node
  • sizeinteger必填
  • mimestring | null必填
    必填
  • manifest_hashHash必填
    ^[0-9a-f]{64}$
  • authorUser必填
    › 4 个字段
    • idstring必填
    • emailstring必填
      Agents have an address at agents.invalid: it finds them for invites, no mail goes there
    • display_namestring必填
    • kindstring必填
      humanagent
  • device_idstring | null必填
    必填
  • base_version_idstring | null必填
    必填
  • superseded_version_idstring | null必填
    Head this save replaced although it was not its base
    必填
  • client_mtimeTimestamp | any必填
  • created_atTimestamp必填
  • labelstring
    The name someone gave this version ("Client cut"), unique per file; absent if none
  • labeled_bystring
  • labeled_atTimestamp

Webhook object

  • idstring必填
  • space_idstring必填
  • created_bystring必填
    The manager it speaks for; it stops if they stop being a manager
  • urlstring必填
    https (plain http and private addresses only on dev servers)
  • eventsstring[]必填
    Journal ops to send (node.created, version.created, sidecar.updated, …); empty = all
  • path_globstring必填
    Only paths matching, e.g. /dailies/** or **/*.mov; empty = all
  • mime_prefixstring必填
    Only files whose type starts with this, e.g. video/; empty = all
  • descriptionstring必填
  • activeboolean必填
  • disabled_reasonstring | null
    必填
  • cursor_seqinteger必填
    Last journal seq handled
  • attemptsinteger必填
    Failed tries of the next event
  • failing_sinceTimestamp | any
  • last_errorstring | null
    必填
  • created_atTimestamp必填

WebhookDelivery object

  • idinteger必填
  • event_idstring必填
  • event_typestring必填
  • seqinteger | null
    必填
  • attemptinteger必填
  • statusinteger | null
    HTTP status; null when nothing answered
    必填
  • errorstring | null
    必填
  • duration_msinteger必填
  • created_atTimestamp必填

WebhookEvent object

Body of a delivery. References only, never file contents.
  • idstring必填
    ".", the same on every retry and replay
  • typestring必填
    A journal op
  • space_idstring必填
  • seqinteger
  • timeTimestamp必填
  • node_idstring
  • version_idstring | null
    必填
  • pathstring
    The node's path when sent, e.g. /Ep01/Shots/a.mov
  • › 11 个字段
    • idstring必填
    • space_idstring必填
    • parent_idstring | null必填
      null for the space root
      必填
    • namestring必填
    • kindNodeKind必填
      filedir
    • head_version_idstring | null必填
      必填
    • sizeinteger必填
    • mimestring | null必填
      必填
    • meta_revinteger必填
      Bumped by rename
    • deletedboolean必填
    • mtimeTimestamp必填
  • actorobject
    › 3 个字段
    • idstring
    • kindstring
      humanagentplugin
    • viastring
  • comment_idstring
    comment.* events: the comment
  • commentComment
    › 17 个字段
    • idstring必填
    • space_idstring必填
    • node_idstring必填
    • version_idstring | null必填
      The version on screen when it was written
      必填
    • parent_idstring | null必填
      Set on replies
      必填
    • authorUser必填
      › 4 个字段
      • idstring必填
      • emailstring必填
        Agents have an address at agents.invalid: it finds them for invites, no mail goes there
      • display_namestring必填
      • kindstring必填
        humanagent
    • guest_namestring
      The name a reviewer gave on a review link (author is then the link's guest user)
    • bodystring必填
      ≤ 5000 chars
    • at_msinteger | null必填
      Where in the video or audio
      必填
    • until_msinteger | null必填
      必填
    • regionRegion | any必填
    • resolvedboolean必填
    • resolved_atTimestamp | any
    • resolved_bystring | null
      必填
    • created_atTimestamp必填
    • edited_atTimestamp | any必填
    • repliesComment[]

WebhookRequest object

  • urlstring
  • eventsstring[]
  • path_globstring
  • mime_prefixstring
  • descriptionstring
  • activeboolean
  • from_seqinteger
    Create only: start after this seq instead of with new events
    ≥ 0