Authentication
All API requests require your user ID for authentication and billing purposes.
Getting Your User ID
- Log into your BatchMorph account
- Go to your account settings or dashboard
- Your User ID will be displayed in the API section
Including User ID in Requests
You can include your user ID in three ways:
// 1. In request body (JSON)
{
"user_id": "your-user-id-here",
"other_params": "..."
}
// 2. As query parameter
GET /api/endpoint?user_id=your-user-id-here
// 3. In header
X-User-ID: your-user-id-here
Code Examples
Python Example
import requests
# Configuration
API_BASE = "https://your-domain.replit.app/api"
USER_ID = "your-user-id"
# Upload file
with open('document.pdf', 'rb') as f:
response = requests.post(
f"{API_BASE}/upload",
headers={"X-User-ID": USER_ID},
files={"files": f}
)
file_id = response.json()["uploads"][0]["file_id"]
# Convert to JPG
response = requests.post(
f"{API_BASE}/convert",
json={
"user_id": USER_ID,
"conversions": [{"file_id": file_id, "target_format": "jpg"}]
}
)
conversion_id = response.json()["conversions"][0]["conversion_id"]
# Download converted file
response = requests.get(
f"{API_BASE}/download/{conversion_id}",
headers={"X-User-ID": USER_ID}
)
with open('converted.jpg', 'wb') as f:
f.write(response.content)
cURL Example
# Complete workflow
USER_ID="your-user-id"
API_BASE="https://your-domain.replit.app/api"
# 1. Upload
FILE_ID=$(curl -X POST "$API_BASE/upload" \
-H "X-User-ID: $USER_ID" \
-F "files=@document.pdf" | jq -r '.uploads[0].file_id')
# 2. Convert
CONV_ID=$(curl -X POST "$API_BASE/convert" \
-H "Content-Type: application/json" \
-d "{\"user_id\":\"$USER_ID\",\"conversions\":[{\"file_id\":\"$FILE_ID\",\"target_format\":\"jpg\"}]}" \
| jq -r '.conversions[0].conversion_id')
# 3. Download
curl "$API_BASE/download/$CONV_ID" \
-H "X-User-ID: $USER_ID" \
-o converted.jpg
JavaScript/Node.js Example
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
const API_BASE = 'https://your-domain.replit.app/api';
const USER_ID = 'your-user-id';
async function convertFile() {
// Upload
const form = new FormData();
form.append('files', fs.createReadStream('document.pdf'));
const uploadResponse = await axios.post(`${API_BASE}/upload`, form, {
headers: { 'X-User-ID': USER_ID, ...form.getHeaders() }
});
const fileId = uploadResponse.data.uploads[0].file_id;
// Convert
const convertResponse = await axios.post(`${API_BASE}/convert`, {
user_id: USER_ID,
conversions: [{ file_id: fileId, target_format: 'jpg' }]
});
const conversionId = convertResponse.data.conversions[0].conversion_id;
// Download
const downloadResponse = await axios.get(`${API_BASE}/download/${conversionId}`, {
headers: { 'X-User-ID': USER_ID },
responseType: 'stream'
});
downloadResponse.data.pipe(fs.createWriteStream('converted.jpg'));
}
convertFile().catch(console.error);