Oleq Files

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

MethodPathPurpose
GET/api/appsList apps (page, pageSize)
POST/api/appsCreate app
GET/api/apps/:appIdGet app
PATCH/api/apps/:appIdUpdate app
DELETE/api/apps/:appIdArchive app
POST/api/apps/:appId/promotePromote sandbox app to production

Files

MethodPathPurpose
POST/api/uploadsPresign upload (requires SHA-256 checksum)
POST/api/uploads/completeConfirm after PUT to presigned URL
GET/api/uploads/listList 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

MethodPathPurpose
GET/api/usageOrg usage, limits, and storage visibility (month optional)
GET/api/usage/dailyDaily 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.

On this page