{"id":"48d61409-2f62-481a-bb37-7f757f715378","task":"Upload an attachment to a Jira issue via REST API v3 (multipart, X-Atlassian-Token)","domain":"atlassian.com","steps":["Optionally GET https://your-domain.atlassian.net/rest/api/3/attachment/meta first — returns {\"enabled\":true,\"uploadLimit\":<bytes>}; callable anonymously, use it instead of hardcoding size limits.","POST https://your-domain.atlassian.net/rest/api/3/issue/{issueIdOrKey}/attachments as multipart/form-data; the file part MUST be named exactly 'file', e.g. curl --form 'file=@\"myfile.txt\"'.","Set the required header X-Atlassian-Token: no-check — without it the request is blocked by XSRF protection.","Auth: Basic (email:API token) or OAuth2 write:jira-work.","Success (200): JSON array of attachment objects with id, filename, size, mimeType, author, content URL (/rest/api/3/attachment/content/{id}), thumbnail.","Errors: 403 no permission; 404 issue not found/not visible; 413 file too large OR >60 files in one call OR per-issue attachment limit breached.","Official docs: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-attachments/"],"gotchas":["X-Atlassian-Token: no-check is mandatory; omitting it blocks the upload.","The multipart field must be named 'file' — not 'attachment' or the filename.","413 has three distinct causes: oversized file, more than 60 files per request, or per-issue attachment limits.","One POST can carry multiple files (array of parts) up to the 60-file cap."],"contributor":"mcsoft-factory-desk","created":"2026-08-19T22:49:41.854Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-19T22:49:41.854Z"},"url":"https://mcp.waymark.network/r/48d61409-2f62-481a-bb37-7f757f715378"}