RoadOpsDeveloper

Task Attachments

Ask

List task attachments

GET/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/attachments

Lists safe attachment metadata for a visible Task.

Required scopes: task:read

Parameters

path.teamIdrequiredstring:uuid

Team identifier.

path.dayIdrequiredstring:uuid

Day identifier.

path.taskIdrequiredstring:uuid

Task identifier.

query.limitinteger

Maximum number of records to return. Defaults to 50 and is capped at 200.

query.cursorstring

Cursor returned by page.nextCursor from the previous list response.

Response 200

dataobject[]
data[].idstring:uuid

Task attachment identifier.

data[].orgIdstring:uuid

Organization identifier.

data[].taskIdstring:uuid

Parent Task identifier.

data[].dayIdstring:uuid

Associated Day identifier used for activity and sync.

data[].fileNamestring

Original attachment file name.

data[].contentTypestring

Attachment media type.

data[].sizeBytesinteger

Attachment size in bytes.

data[].createdBystring:uuid

RoadOps user ID that added the attachment.

data[].createdAtstring:date-time

UTC attachment creation timestamp.

data[].isDeletedboolean

Soft-delete flag.

data[].versioninteger

Current attachment aggregate version.

data[].cursorinteger

Latest cursor projected into this attachment.

pageobject
page.limitinteger

Maximum number of records returned in this page.

page.nextCursorstring | null

Cursor to pass as the next request's cursor query parameter, or null when there are no more results.

Request attachment upload

POST/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/attachments/uploads

Returns a short-lived private upload URL for a Task attachment.

Required scopes: task:write

Parameters

path.teamIdrequiredstring:uuid

Team identifier.

path.dayIdrequiredstring:uuid

Day identifier.

path.taskIdrequiredstring:uuid

Task identifier.

Request body (application/json)

fileNamerequiredstring

Original attachment file name.

contentTyperequiredstring

Attachment media type.

sizeBytesrequiredinteger

Attachment size in bytes.

Response 200

attachmentIdstring:uuid
fileNamestring
storageKeystring
uploadobject
upload.urlstring:uri
upload.expiresAtstring:date-time
upload.headersobject

Create attachment metadata

POST/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/attachments

Registers a successfully uploaded Task attachment.

Required scopes: task:write

Parameters

path.teamIdrequiredstring:uuid

Team identifier.

path.dayIdrequiredstring:uuid

Day identifier.

path.taskIdrequiredstring:uuid

Task identifier.

header.Idempotency-Keystring:uuid

Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.

Request body (application/json)

fileNamerequiredstring

Original attachment file name.

contentTyperequiredstring

Attachment media type.

sizeBytesrequiredinteger

Attachment size in bytes.

attachmentIdrequiredstring:uuid
storageKeyrequiredstring

Response 202

commandIdstring:uuid

Command identifier accepted into the RoadOps command ledger.

resourceIdstring:uuid

Identifier of the resource targeted by the command.

resourceTypestring

Resource type targeted by the command.

status"applied"

Command dispatch status.

aggregateVersioninteger

Aggregate version produced by the accepted command.

cursorinteger

Cursor for the accepted update. Refetch until returned records reach this cursor.

linksobject
links.refetchstring

Relative URL to refetch the affected resource.

Download a task attachment

GET/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/attachments/{attachmentId}/download

Returns a short-lived private download URL.

Required scopes: task:read

Parameters

path.teamIdrequiredstring:uuid

Team identifier.

path.dayIdrequiredstring:uuid

Day identifier.

path.taskIdrequiredstring:uuid

Task identifier.

path.attachmentIdrequiredstring:uuid

Attachment identifier.

Response 200

urlstring:uri
expiresAtstring:date-time
fileNamestring
contentTypestring
sizeBytesinteger

Delete a task attachment

DELETE/v1/teams/{teamId}/days/{dayId}/tasks/{taskId}/attachments/{attachmentId}

Deletes Task attachment metadata.

Required scopes: task:write

Parameters

path.teamIdrequiredstring:uuid

Team identifier.

path.dayIdrequiredstring:uuid

Day identifier.

path.taskIdrequiredstring:uuid

Task identifier.

path.attachmentIdrequiredstring:uuid

Attachment identifier.

header.Idempotency-Keystring:uuid

Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.

Response 202

commandIdstring:uuid

Command identifier accepted into the RoadOps command ledger.

resourceIdstring:uuid

Identifier of the resource targeted by the command.

resourceTypestring

Resource type targeted by the command.

status"applied"

Command dispatch status.

aggregateVersioninteger

Aggregate version produced by the accepted command.

cursorinteger

Cursor for the accepted update. Refetch until returned records reach this cursor.

linksobject
links.refetchstring

Relative URL to refetch the affected resource.