API Documentation
Integrate with our API to manage transfers and files programmatically.
Base URL
All API requests should be made to the following base URL:
api/
Authentication
All API requests require authentication using an API key. Include your API key in the Authorization header of every request.
Authorization: Bearer YOUR_API_KEY
You can find or regenerate your API key on the API settings page.
List Transfers
Retrieve a paginated list of your transfers.
GET /api/transfers?page=1&results_per_page=25
Example Response
{ "data": [ { "id": 1, "name": "My Transfer", "description": "", "is_enabled": true, "datetime": "2025-01-15 12:00:00" } ], "meta": { "page": 1, "total": 10, "total_pages": 1 } }
Create Transfer
Create a new transfer. Files must be uploaded first using the file upload endpoint.
POST /api/transfers
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Optional | Transfer title |
description |
string | Optional | Transfer description or message |
uploaded_files[] |
array | Required | Array of file UUIDs from file upload |
password |
string | Optional | Password to protect the transfer |
expiration_datetime |
string | Optional | Expiration date (YYYY-MM-DD HH:MM:SS) |
Example Request
curl -X POST "api/transfers" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Project Files", "description": "Latest build assets", "uploaded_files": ["uuid1", "uuid2"] }'
Get Transfer
Retrieve details of a specific transfer by its ID.
GET /api/transfers/{transfer_id}
Example Response
{ "data": { "id": 1, "name": "Project Files", "description": "Latest build assets", "url": "https://example.com/t/abc123", "is_enabled": true, "views": 42, "total_downloads": 15, "files_count": 2, "datetime": "2025-01-15 12:00:00", "expiration_datetime": null } }
Delete Transfer
Permanently delete a transfer and all associated files.
DELETE /api/transfers/{transfer_id}
Example Request
curl -X DELETE "api/transfers/1" \ -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{ "status": "success", "message": "Transfer deleted successfully." }
Upload File
Upload a file (or file chunk) to be attached to a transfer. For large files, upload in chunks and reference the same UUID across all chunks.
POST /api/files
Parameters (multipart/form-data)
| Parameter | Type | Required | Description |
|---|---|---|---|
file |
binary | Required | The file or chunk to upload |
uuid |
string | Required | Unique identifier for the file |
file_name |
string | Required | Original file name |
chunk_index |
integer | Required | Index of the current chunk (0-based) |
total_chunks |
integer | Required | Total number of chunks |
total_file_size |
integer | Required | Total file size in bytes |
Example Request
curl -X POST "api/files" \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "file=@document.pdf" \ -F "uuid=abc123def456" \ -F "file_name=document.pdf" \ -F "chunk_index=0" \ -F "total_chunks=1" \ -F "total_file_size=1048576"
Error Handling
The API uses standard HTTP status codes and returns errors in a consistent JSON format:
{ "status": "error", "message": "Description of what went wrong." }
Status Codes