File Exchange API
REST API for private folders, resumable large uploads, short-lived download links, access audit, and transfer event webhooks.
1) Basic details
https://share.epimedia.ru/api/v12) Authorization
Authenticate once, then pass the returned access token in every request.
Authorization: Bearer <access_token>
curl -X POST https://share.epimedia.ru/api/v1/auth/session \
-H "Content-Type: application/json" \
-d '{"login":"user@example.com","password":"********"}'
3) Endpoints
/auth/sessionauthCreate an authenticated session for the file portal.
{
"login": "user@example.com",
"password": "********"
}
/foldersfoldersList folders available to the current user with permissions and quota.
curl -H "Authorization: Bearer $TOKEN" \ "https://share.epimedia.ru/api/v1/folders?include_quota=true"
/foldersfoldersCreate a private folder and assign default access policy.
{
"name": "Partner deliveries",
"retention_days": 30,
"visibility": "private"
}
/uploadsuploadsStart a resumable upload session and receive part URLs.
{
"folder_id": "fld_8c91",
"filename": "media-export.zip",
"size": 18446744073,
"checksum_sha256": "..."
}
/uploads/{upload_id}/parts/{part_no}uploadsUpload or retry one binary part. Parts can be sent in parallel.
curl -X PATCH \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/octet-stream" \ --data-binary @part-0007.bin \ "https://share.epimedia.ru/api/v1/uploads/upl_74a/parts/7"
/uploads/{upload_id}/completeuploadsFinalize upload, verify checksum, and create the file object.
{ "parts": [1, 2, 3, 4, 5], "checksum_sha256": "..." }
/files/{file_id}filesReturn metadata, version, size, checksum, owner, and retention state.
/files/{file_id}/download-linksharingCreate a short-lived signed download URL.
{
"expires_in": 900,
"max_downloads": 3,
"watermark": false
}
/files/{file_id}filesDelete file or move it to retention hold, depending on folder policy.
/audit/eventsauditSearch upload, download, login, delete, and permission events.
https://share.epimedia.ru/api/v1/audit/events?actor=user@example.com&range=24h
4) Webhooks
Register HTTPS callbacks for transfer lifecycle events.
Webhook payloads include x-share-signature using SHA-256 HMAC.
5) Error format
{
"error": {
"code": "upload_session_expired",
"message": "Upload session has expired. Start a new upload.",
"request_id": "req_9f51e33c8a"
}
}