BACK

API DOCUMENTATION

REST API for programmatic access to all LoadSh.it services

v1.0

Introduction

The LoadSh.it API provides programmatic access to all core features: file conversion, security scans, and audio/video transcription.

80+ Formats

Video, Audio, Images, Documents

ClamAV Scan

Enterprise Antivirus

Whisper AI

Transcription in 99 Languages

Authentication

All API requests require a valid API key in the Authorization Header. API keys can be created in the Settings .

HTTP HEADER
Authorization: Bearer lsh_live_xxxxxxxxxxxxxxxxxxxxxxxx
Important: Store your API key securely. It is only displayed once at creation and cannot be recovered.

Base URL

https://loadsh.it/api

All endpoints are relative to this base URL.

Rate Limits

The API currently has no strict rate limits for authenticated users. We reserve the right to introduce limits in case of abuse.

Requests/Min Max File Size
Unlimited 5 GB

Endpoints

POST /api/convert

Convert File

Converts a file to a different format. Supports video, audio, images, and documents.

Parameters

Name Type Description
file required File The file to convert (multipart/form-data)
target_format required string Target format (e.g., "mp4", "pdf", "png")
processing_mode string "auto" | "force_cpu" | "force_gpu"

Examples

cURL
BASH
curl -X POST "https://loadsh.it/api/convert" \
  -H "Authorization: Bearer lsh_live_xxxx" \
  -F "[email protected]" \
  -F "target_format=mp4"
JavaScript
JAVASCRIPT
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('target_format', 'mp4');

const response = await fetch(
  'https://loadsh.it/api/convert',
  {
    method: 'POST',
    headers: { 'Authorization': 'Bearer lsh_live_xxxx' },
    body: formData
  }
);
const data = await response.json();

Response

JSON
{
  "success": true,
  "job_id": "conv_abc123",
  "status": "processing"
}
POST /api/scan

Security Scan

Scans a file for viruses, malware, and other threats using ClamAV & YARA Rules.

Parameters

Name Type Description
file required File The file to scan (multipart/form-data)

Examples

cURL
BASH
curl -X POST "https://loadsh.it/api/scan" \
  -H "Authorization: Bearer lsh_live_xxxx" \
  -F "[email protected]"
JavaScript
JAVASCRIPT
const formData = new FormData();
formData.append('file', fileInput.files[0]);

const response = await fetch(
  'https://loadsh.it/api/scan',
  {
    method: 'POST',
    headers: { 'Authorization': 'Bearer lsh_live_xxxx' },
    body: formData
  }
);
const data = await response.json();

Response

JSON
{
  "success": true,
  "job_id": "scan_xyz789",
  "status": "processing"
}
POST /api/transcript

Audio/Video Transcription

Extracts text from audio and video files using Whisper AI.

Parameters

Name Type Description
file required File Audio/Video file (multipart/form-data)
language string Language (e.g., "de", "en"). Auto-detect if empty.

Examples

cURL
BASH
curl -X POST "https://loadsh.it/api/transcript" \
  -H "Authorization: Bearer lsh_live_xxxx" \
  -F "[email protected]" \
  -F "language=de"
JavaScript
JAVASCRIPT
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('language', 'de');

const response = await fetch(
  'https://loadsh.it/api/transcript',
  {
    method: 'POST',
    headers: { 'Authorization': 'Bearer lsh_live_xxxx' },
    body: formData
  }
);
const data = await response.json();

Response

JSON
{
  "success": true,
  "job_id": "trans_def456",
  "status": "processing"
}
GET /api/status/:jobId

Get Job Status

Checks the current status of a running or completed job.

Parameters

Name Type Description
jobId required string The job ID from the original request

Examples

cURL
BASH
curl -X GET "https://loadsh.it/api/status/conv_abc123" \
  -H "Authorization: Bearer lsh_live_xxxx"
JavaScript
JAVASCRIPT
const response = await fetch(
  'https://loadsh.it/api/status/conv_abc123',
  {
    headers: { 'Authorization': 'Bearer lsh_live_xxxx' }
  }
);
const data = await response.json();

Response

JSON
{
  "success": true,
  "status": "completed",
  "progress": 100,
  "result": {
    "download_url": "https://loadsh.it/dl/...",
    "expires_at": "2026-02-04T12:00:00Z"
  }
}
GET /api/user/api-keys

List API Keys

Lists all API keys of the authenticated user.

Examples

cURL
BASH
curl -X GET "https://loadsh.it/api/user/api-keys" \
  -H "Authorization: Bearer lsh_live_xxxx"
JavaScript
JAVASCRIPT
const response = await fetch(
  'https://loadsh.it/api/user/api-keys',
  {
    headers: { 'Authorization': 'Bearer lsh_live_xxxx' }
  }
);
const data = await response.json();

Response

JSON
{
  "success": true,
  "keys": [
    {
      "id": "key_123",
      "name": "Production",
      "created_at": "2025-01-01",
      "last_used": "2025-01-03"
    }
  ]
}
POST /api/user/api-keys

Create API Key

Creates a new API key. The full key is only shown once!

Parameters

Name Type Description
name required string Name/description of the key

Examples

cURL
BASH
curl -X POST "https://loadsh.it/api/user/api-keys" \
  -H "Authorization: Bearer lsh_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "My App"}'
JavaScript
JAVASCRIPT
const response = await fetch(
  'https://loadsh.it/api/user/api-keys',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer lsh_live_xxxx',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ name: 'My App' })
  }
);
const data = await response.json();

Response

JSON
{
  "success": true,
  "key": {
    "id": "key_456",
    "name": "My App",
    "token": "lsh_live_xxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
DELETE /api/user/api-keys/:id

Delete API Key

Permanently deletes an API key.

Parameters

Name Type Description
id required string ID of the key to delete

Examples

cURL
BASH
curl -X DELETE "https://loadsh.it/api/user/api-keys/key_123" \
  -H "Authorization: Bearer lsh_live_xxxx"
JavaScript
JAVASCRIPT
const response = await fetch(
  'https://loadsh.it/api/user/api-keys/key_123',
  {
    method: 'DELETE',
    headers: { 'Authorization': 'Bearer lsh_live_xxxx' }
  }
);
const data = await response.json();

Response

JSON
{
  "success": true,
  "message": "Key deleted"
}

Error Codes

Code Meaning
400 Invalid request (missing parameters)
401 Not authenticated (invalid API key)
403 Access denied (limit reached)
404 Job or resource not found
413 File too large
429 Too many requests
500 Server error