lnabin

API

Create a share, upload directly to storage, then publish it.

Upload

  1. Create an upload plan with the exact file size in bytes.
    POST https://bin.lunalna.xyz/api/shares
    Content-Type: application/json
    
    {
      "title": "Example",
      "files": [{ "path": "file.zip", "size": 123456 }]
    }
  2. PUT each file to its returned uploads[].url with the returned headers. Multipart uploads also require their ETags at POST /api/shares/<id>/files/<fileId>/multipart/complete.
  3. Publish the share.
    POST https://bin.lunalna.xyz/api/shares/<id>/complete
    Authorization: Bearer <ownerToken>
    Content-Type: application/json
    
    {}

Download

GET https://bin.lunalna.xyz/api/shares/<id>
GET https://bin.lunalna.xyz/api/shares/<id>/files/<fileId>/download
GET https://bin.lunalna.xyz/api/shares/<id>/archive

The file endpoint returns a temporary storage URL. Unlock protected shares first with POST /api/shares/<id>/unlock.

Notes

  • Cross-origin requests are allowed. No CSRF token is required.
  • Keep the owner token private. It is required to complete or delete a share.
  • New shares last 7 days. Downloads add 2 days, up to 60 days.
  • 30 downloads within 60 days keep a share permanent while active.
  • Current limits are available from GET /api/config.