# Upload attachment Upload a file to a contact profile. Accepts PDF or image files up to 10 MB. Endpoint: POST /contacts/{contactId}/attachment Version: 1.0.0 Security: ApiKeyAuth ## Path parameters: - `contactId` (string, required) Contact identifier (alias or ID) Example: "contact-studio-001" ## Request fields (multipart/form-data): - `file` (string, required) Attachment file ## Response 201 fields (application/json): - `id` (string, required) File identifier (DigitalOcean Spaces object key) Example: "files/2024/03/budget-report.pdf" - `name` (string, required) Original filename Example: "call-sheet-day-3.pdf" - `type` (string, required) MIME type Example: "application/pdf" - `size` (integer, required) File size in bytes Example: 1048576 ## Response 400 fields (application/json): - `error` (string, required) Error message Example: "Invalid request parameters" - `details` (object) Additional error details Example: {"field":"projectId","reason":"Project not found"} - `code` (string) Error code Example: "VALIDATION_ERROR" ## Response 401 fields (application/json): - `error` (string, required) Error message Example: "Invalid request parameters" - `details` (object) Additional error details Example: {"field":"projectId","reason":"Project not found"} - `code` (string) Error code Example: "VALIDATION_ERROR" ## Response 404 fields (application/json): - `error` (string, required) Error message Example: "Invalid request parameters" - `details` (object) Additional error details Example: {"field":"projectId","reason":"Project not found"} - `code` (string) Error code Example: "VALIDATION_ERROR" ## Response 500 fields (application/json): - `error` (string, required) Error message Example: "Invalid request parameters" - `details` (object) Additional error details Example: {"field":"projectId","reason":"Project not found"} - `code` (string) Error code Example: "VALIDATION_ERROR"