Skip to main content
POST
/
v1
/
offboarding-checklist
/
member
/
{memberId}
/
item
/
{templateItemId}
/
evidence
Upload evidence for an offboarding checklist item
curl --request POST \
  --url https://api.trycomp.ai/v1/offboarding-checklist/member/{memberId}/item/{templateItemId}/evidence \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "fileName": "document.pdf",
  "fileType": "application/pdf"
}
'

Authorizations

X-API-Key
string
header
required

API key for authentication

Path Parameters

memberId
string
required
templateItemId
string
required

Body

application/json
fileName
string
required

Name of the file

Maximum string length: 255
Example:

"document.pdf"

fileType
string
required

MIME type of the file

Example:

"application/pdf"

fileData
string

Base64-encoded file contents. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign (purpose=attachment) and pass s3Key — base64 through an LLM is impractically slow and times out. Provide exactly one of fileData or s3Key.

Example:

"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=="

s3Key
string

Key of a file already uploaded via /v1/uploads/presign (purpose=attachment). The server fetches the bytes from storage — no base64 needed. Provide exactly one of fileData or s3Key.

Example:

"org_abc123/uploads/attachment/1700000000000-rbac-matrix.xlsx"

description
string

Description of the attachment

Maximum string length: 500
Example:

"Meeting notes from Q4 planning session"

userId
string

User ID of the user uploading the attachment (required for API key auth, ignored for JWT auth)

Example:

"usr_abc123def456"

Response

201 - undefined