HTTP API
Call OleqFiles REST endpoints directly without an SDK
You do not need an SDK. Any HTTP client can call the same REST API the JavaScript and .NET packages use — send your API key on each request and work with JSON bodies and query params.
See Authentication for headers and org binding.
Production base URL: https://uploadspi.oleq.app
Portal
These endpoints mirror what you can do in the portal — apps, file uploads, and management.
Apps
| Method | Path | Purpose |
|---|---|---|
GET | /api/apps | List apps (page, pageSize) |
POST | /api/apps | Create app |
GET | /api/apps/:appId | Get app |
PATCH | /api/apps/:appId | Update app |
DELETE | /api/apps/:appId | Archive app |
POST | /api/apps/:appId/promote | Promote sandbox app to production |
Files
| Method | Path | Purpose |
|---|---|---|
POST | /api/uploads | Presign upload (requires SHA-256 checksum) |
POST | /api/uploads/complete | Confirm after PUT to presigned URL |
GET | /api/uploads/list | List confirmed files (orderBy, page, pageSize, optional appId) |
GET | /api/uploads?id= | File metadata |
DELETE | /api/uploads?id= | Delete file |
GET | /api/uploads/url?id= | Public CDN URL |
Usage
| Method | Path | Purpose |
|---|---|---|
GET | /api/usage | Org usage, limits, and storage visibility (month optional) |
GET | /api/usage/daily | Daily upload totals (last 30 days) |
Example: presigned upload
POST /api/uploads HTTP/1.1
Host: uploadspi.oleq.app
x-api-key: sk_live_…
Content-Type: application/json
{
"name": "photo.jpg",
"mimeType": "image/jpeg",
"size": 123456,
"checksum": "<base64 SHA-256>",
"appId": "your_app_id"
}Response includes url (presigned PUT), id (S3 key — store this), and src (public URL after complete).
PUT <presigned-url> HTTP/1.1
Content-Type: image/jpeg
x-amz-checksum-sha256: <same base64 checksum>
<binary body>POST /api/uploads/complete HTTP/1.1
Host: uploadspi.oleq.app
x-api-key: sk_live_…
Content-Type: application/json
{ "id": "<id from presign>" }The SDK files.upload() helper is exactly this sequence. Use raw HTTP when you are in another language, want full control, or prefer not to add a dependency.