curl -X POST https://app.drime.cloud/api/v1/s3/entries \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "71ea55f2-1ba7-46ad-98b7-db487ecac2f6",
"size": 87965,
"clientName": "document.pdf",
"clientMime": "application/pdf",
"clientExtension": "pdf",
"workspaceId": 0,
"parentId": null
}'
// After uploading to S3...
const key = 'uploads/71ea55f2-1ba7-46ad-98b7-db487ecac2f6/71ea55f2-1ba7-46ad-98b7-db487ecac2f6';
const uuid = key.split('/').pop(); // Extract UUID
const response = await fetch('https://app.drime.cloud/api/v1/s3/entries', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
filename: uuid,
size: file.size,
clientName: file.name,
clientMime: file.type,
clientExtension: file.name.split('.').pop(),
workspaceId: 0,
parentId: null
})
});
const { fileEntry } = await response.json();
console.log(`File registered: ${fileEntry.name} (ID: ${fileEntry.id})`);
import requests
# After uploading to S3...
key = 'uploads/71ea55f2-1ba7-46ad-98b7-db487ecac2f6/71ea55f2-1ba7-46ad-98b7-db487ecac2f6'
uuid = key.split('/')[-1]
response = requests.post(
'https://app.drime.cloud/api/v1/s3/entries',
headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'},
json={
'filename': uuid,
'size': 87965,
'clientName': 'document.pdf',
'clientMime': 'application/pdf',
'clientExtension': 'pdf',
'workspaceId': 0,
'parentId': None
}
)
file_entry = response.json()['fileEntry']
print(f"File registered: {file_entry['name']} (ID: {file_entry['id']})")
{
"fileEntry": {
"name": "document.pdf",
"file_name": "71ea55f2-1ba7-46ad-98b7-db487ecac2f6",
"mime": "application/pdf",
"file_size": 87965,
"type": "pdf",
"extension": "pdf",
"workspace_id": 0,
"owner_id": 15843,
"id": 488163222,
"hash": "NDg4MTYzMjIyfA",
"path": "488163222",
"url": "api/v1/file-entries/488163222",
"created_at": "2025-12-22T13:45:07.000000Z",
"updated_at": "2025-12-22T13:45:07.000000Z"
},
"status": "success"
}
Uploads
Create S3 Entry
Register a file in Drime after S3 upload
POST
/
s3
/
entries
curl -X POST https://app.drime.cloud/api/v1/s3/entries \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "71ea55f2-1ba7-46ad-98b7-db487ecac2f6",
"size": 87965,
"clientName": "document.pdf",
"clientMime": "application/pdf",
"clientExtension": "pdf",
"workspaceId": 0,
"parentId": null
}'
// After uploading to S3...
const key = 'uploads/71ea55f2-1ba7-46ad-98b7-db487ecac2f6/71ea55f2-1ba7-46ad-98b7-db487ecac2f6';
const uuid = key.split('/').pop(); // Extract UUID
const response = await fetch('https://app.drime.cloud/api/v1/s3/entries', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
filename: uuid,
size: file.size,
clientName: file.name,
clientMime: file.type,
clientExtension: file.name.split('.').pop(),
workspaceId: 0,
parentId: null
})
});
const { fileEntry } = await response.json();
console.log(`File registered: ${fileEntry.name} (ID: ${fileEntry.id})`);
import requests
# After uploading to S3...
key = 'uploads/71ea55f2-1ba7-46ad-98b7-db487ecac2f6/71ea55f2-1ba7-46ad-98b7-db487ecac2f6'
uuid = key.split('/')[-1]
response = requests.post(
'https://app.drime.cloud/api/v1/s3/entries',
headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'},
json={
'filename': uuid,
'size': 87965,
'clientName': 'document.pdf',
'clientMime': 'application/pdf',
'clientExtension': 'pdf',
'workspaceId': 0,
'parentId': None
}
)
file_entry = response.json()['fileEntry']
print(f"File registered: {file_entry['name']} (ID: {file_entry['id']})")
{
"fileEntry": {
"name": "document.pdf",
"file_name": "71ea55f2-1ba7-46ad-98b7-db487ecac2f6",
"mime": "application/pdf",
"file_size": 87965,
"type": "pdf",
"extension": "pdf",
"workspace_id": 0,
"owner_id": 15843,
"id": 488163222,
"hash": "NDg4MTYzMjIyfA",
"path": "488163222",
"url": "api/v1/file-entries/488163222",
"created_at": "2025-12-22T13:45:07.000000Z",
"updated_at": "2025-12-22T13:45:07.000000Z"
},
"status": "success"
}
Overview
Creates a file entry in the Drime database after successfully uploading a file to S3/R2. This is the final step in both simple and multipart upload flows.Request Body
string
required
The UUID filename from the S3 key (last segment)
integer
required
File size in bytes
string
required
Original filename to display to users
string
MIME type of the file
string
File extension without dot
integer
Workspace ID. Use
0 for personal workspace.integer
Parent folder ID. Use
null for root.string
Folder path for auto-creation (overrides parentId)
integer
Original modification time of the file as a Unix epoch in milliseconds.
Stored in the entry’s
client_last_modified field so the original mtime survives the upload.string
SHA-256 hex digest of the file content. Stored in the entry’s
file_hash field and
used for deduplication via Check File Hash.string
EXIF metadata as base64-encoded JSON (or a raw JSON string) to attach to the entry
Response
object
The created file entry object
string
Request status (
success)curl -X POST https://app.drime.cloud/api/v1/s3/entries \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "71ea55f2-1ba7-46ad-98b7-db487ecac2f6",
"size": 87965,
"clientName": "document.pdf",
"clientMime": "application/pdf",
"clientExtension": "pdf",
"workspaceId": 0,
"parentId": null
}'
// After uploading to S3...
const key = 'uploads/71ea55f2-1ba7-46ad-98b7-db487ecac2f6/71ea55f2-1ba7-46ad-98b7-db487ecac2f6';
const uuid = key.split('/').pop(); // Extract UUID
const response = await fetch('https://app.drime.cloud/api/v1/s3/entries', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
filename: uuid,
size: file.size,
clientName: file.name,
clientMime: file.type,
clientExtension: file.name.split('.').pop(),
workspaceId: 0,
parentId: null
})
});
const { fileEntry } = await response.json();
console.log(`File registered: ${fileEntry.name} (ID: ${fileEntry.id})`);
import requests
# After uploading to S3...
key = 'uploads/71ea55f2-1ba7-46ad-98b7-db487ecac2f6/71ea55f2-1ba7-46ad-98b7-db487ecac2f6'
uuid = key.split('/')[-1]
response = requests.post(
'https://app.drime.cloud/api/v1/s3/entries',
headers={'Authorization': 'Bearer YOUR_ACCESS_TOKEN'},
json={
'filename': uuid,
'size': 87965,
'clientName': 'document.pdf',
'clientMime': 'application/pdf',
'clientExtension': 'pdf',
'workspaceId': 0,
'parentId': None
}
)
file_entry = response.json()['fileEntry']
print(f"File registered: {file_entry['name']} (ID: {file_entry['id']})")
{
"fileEntry": {
"name": "document.pdf",
"file_name": "71ea55f2-1ba7-46ad-98b7-db487ecac2f6",
"mime": "application/pdf",
"file_size": 87965,
"type": "pdf",
"extension": "pdf",
"workspace_id": 0,
"owner_id": 15843,
"id": 488163222,
"hash": "NDg4MTYzMjIyfA",
"path": "488163222",
"url": "api/v1/file-entries/488163222",
"created_at": "2025-12-22T13:45:07.000000Z",
"updated_at": "2025-12-22T13:45:07.000000Z"
},
"status": "success"
}
If you provide
relativePath, folders will be automatically created and the file placed in the correct location.