Two ways to integrate
Zero-knowledge
Encrypt in your own environment with the open client library, then upload the sealed file. Oveile never sees the key — exactly like the browser flow. Recommended.
PUT /api/shares/{id}Hosted encryption
Send the file over TLS and receive the code in the response. Oveile encrypts it in memory with a fresh key, stores only the sealed file and discards the key at once. The plaintext is visible to the server during that one request.
POST /api/partner/sharesHosted encryption: one request
This example sends plaintext to the server over TLS. Choose the client library for encryption before upload.
curl -X POST https://oveile.com/api/partner/shares \
-H "Authorization: Bearer YOUR_PARTNER_KEY" \
-H "Content-Type: application/octet-stream" \
-H "X-Oveile-Filename: document.pdf" \
--data-binary @document.pdfWhat you get back
A share identifier, full share link, access code, expiry and a separate revoke token. Keep the revoke token private. Never place a partner key in browser code.
API endpoints
- POST
/api/partner/sharesSeal a file and receive its code (hosted encryption)
- PUT
/api/shares/{id}Upload a file sealed in your environment (zero-knowledge)
- GET
/api/shares/{id}/meta · /blobFetch a sealed document with its access token
- POST
/api/shares/{id}/emailsSend a receipt or a recipient notification
- DELETE
/api/shares/{id}Revoke a document
- GET
/api/partner/meCheck a key and today's usage
Prefer encryption in your environment?
The client library implements the same protocol as the website: generate a code, encrypt locally, upload the ciphertext and decrypt on the recipient’s device.
Security