Download OpenAPI specification:
Turbo Lane is Convilyn's fast-track processing API for direct conversion and processing tasks.
Turbo Lane handles single-step, deterministic format conversions:
Large files are automatically routed to higher-spec workers. This is transparent to the API consumer — the request and response format is identical regardless of file size.
Turbo Lane uses POLLING for progress tracking (NOT SSE).
Recommended polling strategy:
status: processingstatus: completed | failedFast-track processing jobs. Use polling (GET /jobs/{id}) to track progress.
DO NOT use SSE for Turbo Lane. SSE is only for Goal Lane.
Create a new processing job. Supports both authenticated and anonymous users.
Progress Tracking: After receiving 202 Accepted, poll GET /jobs/{jobId}
every 2 seconds until status becomes completed or failed.
Turbo Lane conversions are unlimited for all users. Only file size limits apply per plan tier.
| processor_type required | string Value: "image_conversion" |
required | object |
{- "processor_type": "image_conversion",
- "params": {
- "file_id": "file_test_001",
- "output_format": "webp",
- "quality": 85,
- "maintain_aspect": true,
- "optimize": true
}
}{- "jobId": "job_abc123xyz",
- "userId": "user_xyz789",
- "status": "queued",
- "processorType": "image_conversion",
- "progress": 0,
- "progressMessage": null,
- "params": {
- "file_id": "file_test_001",
- "output_format": "webp",
- "quality": 85
}, - "resultFiles": [ ],
- "error": null,
- "retryCount": 0,
- "createdAt": "2026-01-28T10:30:00Z",
- "updatedAt": "2026-01-28T10:30:00Z",
- "startedAt": null,
- "completedAt": null,
- "estimatedDuration": null
}List all Turbo Lane jobs for the authenticated user with pagination and filtering
| status | string (JobStatus) Enum: "queued" "processing" "completed" "failed" Filter by job status |
| processor_type | string (ProcessorType) Enum: "image_conversion" "document_conversion" "ocr_processing" "image_compression" "video_transcription" "audio_transcription" "pdf_operations" "media_processing" Filter by processor type |
| sort_by | string Default: "createdAt" Enum: "createdAt" "updatedAt" "status" "created_at" "updated_at" Sort field |
| sort_order | string Default: "desc" Enum: "asc" "desc" Sort order |
| page | integer >= 1 Default: 1 Page number (1-indexed) |
| limit | integer [ 1 .. 100 ] Default: 20 Items per page |
{- "jobs": [
- {
- "jobId": "string",
- "userId": "string",
- "status": "queued",
- "processorType": "image_conversion",
- "progress": 100,
- "progressMessage": "string",
- "params": { },
- "error": {
- "code": "string",
- "message": "string"
}, - "retryCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "estimatedDuration": 0
}
], - "pagination": {
- "page": 0,
- "limit": 0,
- "total": 0,
- "totalPages": 0
}
}Get detailed information about a specific job.
This is the POLLING endpoint for Turbo Lane progress tracking.
Poll this endpoint every 2 seconds while status: processing.
Stop polling when status: completed | failed.
| job_id required | string Job ID returned from POST /jobs |
{- "jobId": "string",
- "userId": "string",
- "status": "queued",
- "processorType": "image_conversion",
- "progress": 100,
- "progressMessage": "string",
- "params": { },
- "error": {
- "code": "string",
- "message": "string"
}, - "retryCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "estimatedDuration": 0
}Delete a job and optionally its associated files
| job_id required | string Job ID to delete |
| cleanup_files | boolean Default: true Whether to delete associated files |
{- "detail": "string",
- "code": "string"
}Reset a failed job to queued status and requeue for processing
| job_id required | string Job ID of the failed job to retry |
{- "jobId": "string",
- "userId": "string",
- "status": "queued",
- "processorType": "image_conversion",
- "progress": 100,
- "progressMessage": "string",
- "params": { },
- "error": {
- "code": "string",
- "message": "string"
}, - "retryCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "estimatedDuration": 0
}Create multiple jobs in a single request. Each item maps to one file. All jobs share the same processor_type and output params.
| processorType required | string (ProcessorType) Enum: "image_conversion" "document_conversion" "ocr_processing" "image_compression" "video_transcription" "audio_transcription" "pdf_operations" "media_processing" |
| outputFormat | string Target format (applies to all items) |
| inputFormat | string Source format (applies to all items) |
| params | object Shared params (quality, etc.) |
required | Array of objects [ 1 .. 20 ] items |
{- "processorType": "image_conversion",
- "outputFormat": "string",
- "inputFormat": "string",
- "params": { },
- "items": [
- {
- "fileId": "string"
}
]
}{- "jobs": [
- {
- "jobId": "string",
- "userId": "string",
- "status": "queued",
- "processorType": "image_conversion",
- "progress": 100,
- "progressMessage": "string",
- "params": { },
- "error": {
- "code": "string",
- "message": "string"
}, - "retryCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "estimatedDuration": 0
}
]
}Download result files from multiple completed jobs as a single ZIP archive. Supports both authenticated and anonymous users. Skips jobs that are not completed (partial success).
| jobIds required | Array of strings [ 1 .. 20 ] items Job IDs to download results from |
{- "jobIds": [
- "string"
]
}{- "detail": "string",
- "code": "string"
}Update the progress of a running job. This endpoint is primarily for internal worker processes to update job progress during processing.
| job_id required | string Job ID of the running job to update |
| progress required | integer [ 0 .. 100 ] Progress percentage (0-100) |
| message | string or null Optional progress message |
{- "progress": 100,
- "message": "string"
}{- "jobId": "string",
- "userId": "string",
- "status": "queued",
- "processorType": "image_conversion",
- "progress": 100,
- "progressMessage": "string",
- "params": { },
- "error": {
- "code": "string",
- "message": "string"
}, - "retryCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "estimatedDuration": 0
}Get detailed statistics for a job
| job_id required | string Job ID to retrieve statistics for |
{- "jobId": "string",
- "status": "queued",
- "processorType": "image_conversion",
- "progress": 0,
- "inputFilesCount": 0,
- "outputFilesCount": 0,
- "totalInputSizeBytes": 0,
- "totalOutputSizeBytes": 0,
- "processingTimeSeconds": 0,
- "retryCount": 0,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z"
}