문서로 건너뛰기
API

파일 업로드

파일 페이지의 업로드 버튼과 같은 방식으로 파일을 워크스페이스에 저장합니다. 본문은 JSON도 multipart도 아닌 파일 그 자체이며, 형식은 `Content-Type`에 담습니다.

POSTapi.openemail.uk/files

본인 키로 워크스페이스에 실제 호출을 실행합니다.

POST /files

파일 페이지의 업로드 버튼과 같은 방식으로 파일을 워크스페이스에 저장합니다. 본문은 JSON도 multipart도 아닌 파일 그 자체이며, 형식은 Content-Type에 담습니다.

예시

threads:write가 필요합니다. 파일 이름은 filename 쿼리 매개변수나 URI 인코딩한 X-Filename 헤더로 지정합니다. 응답은 파일을 담은 201이며, 그 id는 발송에 { fileId }로 첨부할 수 있습니다.

curl
curl -X POST "$OE/files?filename=price-list.pdf" -H "$AUTH" -H 'content-type: application/pdf' --data-binary @price-list.pdf
응답
{  "object": "file",  "id": "file_0c4e7a91d2b84f63a5e19b7d",  "filename": "price-list.pdf",  "mimeType": "application/pdf",  "sizeBytes": 248112,  "direction": "uploaded",  "threadId": null,  "messageId": null,  "deliveredTo": null,  "usage": null,  "deletable": true,  "createdAt": "2026-09-24T09:12:40.000Z"}

이름은 거부되지 않고 정리됩니다. 파일 이름에 쓸 수 없는 문자는 _가 되고, 255자를 넘는 이름은 확장자를 남긴 채 잘립니다. MIME 형식이 아닌 Content-Typeapplication/octet-stream으로 저장됩니다.

이름이 없으면 400 upload_no_name, 프로그램이나 스크립트는 400 upload_dangerous, 빈 본문은 400 upload_empty, 100 MB를 넘는 파일은 413 upload_too_large입니다.

워크스페이스는 삭제된 것까지 포함해 시간당 500건의 업로드를 받고, 업로드된 파일을 한 번에 10 GB까지 보관합니다. 이를 넘으면 응답은 429 upload_rate_limited나 507 upload_storage_full입니다. 502 upload_failed는 저장소가 실패했다는 뜻이며 다시 시도할 만합니다.

모든 주소에 닿는 키는 워크스페이스 전체로 업로드하며 deliveredTo는 null입니다. 특정 주소나 도메인으로 제한된 키는 가진 첫 번째 주소로 업로드하고, 주소가 하나도 없는 키는 403 upload_no_address를 받습니다.