Convilyn Turbo Lane API (2.0.0)

Download OpenAPI specification:

Turbo Lane is Convilyn's fast-track processing API for direct conversion and processing tasks.

Architecture

Turbo Lane handles single-step, deterministic format conversions:

  • Single input → Single output
  • Low latency processing
  • No AI intervention required

Worker Routing

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.

Progress Tracking

Turbo Lane uses POLLING for progress tracking (NOT SSE).

Recommended polling strategy:

  1. Initial poll after 1 second
  2. Poll every 2 seconds while status: processing
  3. Stop polling when status: completed | failed

Supported Processor Types

  • image_conversion: Image format conversion (JPG, PNG, WebP, etc.)
  • document_conversion: Document format conversion (PDF, DOCX, etc.)
  • ocr_processing: Optical character recognition
  • image_compression: Image compression and optimization
  • pdf_operations: PDF manipulation (split, merge, rotate, compress, encrypt)
  • video_transcription: Video transcription
  • audio_transcription: Audio transcription

Turbo Lane Jobs

Fast-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 Turbo Lane job

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.

Authorizations:
BearerAuthCookieAuthNone
Request Body schema: application/json
required
processor_type
required
string
Value: "image_conversion"
required
object

Responses

Request samples

Content type
application/json
Example
{
  • "processor_type": "image_conversion",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "jobId": "job_abc123xyz",
  • "userId": "user_xyz789",
  • "status": "queued",
  • "processorType": "image_conversion",
  • "progress": 0,
  • "progressMessage": null,
  • "params": {
    },
  • "resultFiles": [ ],
  • "error": null,
  • "retryCount": 0,
  • "createdAt": "2026-01-28T10:30:00Z",
  • "updatedAt": "2026-01-28T10:30:00Z",
  • "startedAt": null,
  • "completedAt": null,
  • "estimatedDuration": null
}

List Turbo Lane jobs

List all Turbo Lane jobs for the authenticated user with pagination and filtering

Authorizations:
BearerAuth
query Parameters
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

Responses

Response samples

Content type
application/json
{
  • "jobs": [
    ],
  • "pagination": {
    }
}

Get job details (Polling endpoint)

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.

Authorizations:
BearerAuthCookieAuthNone
path Parameters
job_id
required
string

Job ID returned from POST /jobs

Responses

Response samples

Content type
application/json
{
  • "jobId": "string",
  • "userId": "string",
  • "status": "queued",
  • "processorType": "image_conversion",
  • "progress": 100,
  • "progressMessage": "string",
  • "params": { },
  • "resultFiles": [],
  • "error": {
    },
  • "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

Delete a job and optionally its associated files

Authorizations:
BearerAuthCookieAuthNone
path Parameters
job_id
required
string

Job ID to delete

query Parameters
cleanup_files
boolean
Default: true

Whether to delete associated files

Responses

Response samples

Content type
application/json
{
  • "detail": "string",
  • "code": "string"
}

Retry a failed job

Reset a failed job to queued status and requeue for processing

Authorizations:
BearerAuthCookieAuthNone
path Parameters
job_id
required
string

Job ID of the failed job to retry

Responses

Response samples

Content type
application/json
{
  • "jobId": "string",
  • "userId": "string",
  • "status": "queued",
  • "processorType": "image_conversion",
  • "progress": 100,
  • "progressMessage": "string",
  • "params": { },
  • "resultFiles": [],
  • "error": {
    },
  • "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 batch Turbo Lane jobs

Create multiple jobs in a single request. Each item maps to one file. All jobs share the same processor_type and output params.

Authorizations:
BearerAuth
Request Body schema: application/json
required
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

Responses

Request samples

Content type
application/json
{
  • "processorType": "image_conversion",
  • "outputFormat": "string",
  • "inputFormat": "string",
  • "params": { },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "jobs": [
    ]
}

Download batch results as ZIP

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).

Authorizations:
BearerAuthCookieAuthNone
Request Body schema: application/json
required
jobIds
required
Array of strings [ 1 .. 20 ] items

Job IDs to download results from

Responses

Request samples

Content type
application/json
{
  • "jobIds": [
    ]
}

Response samples

Content type
application/json
{
  • "detail": "string",
  • "code": "string"
}

Update job progress (internal)

Update the progress of a running job. This endpoint is primarily for internal worker processes to update job progress during processing.

Authorizations:
BearerAuth
path Parameters
job_id
required
string

Job ID of the running job to update

Request Body schema: application/json
required
progress
required
integer [ 0 .. 100 ]

Progress percentage (0-100)

message
string or null

Optional progress message

Responses

Request samples

Content type
application/json
{
  • "progress": 100,
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "jobId": "string",
  • "userId": "string",
  • "status": "queued",
  • "processorType": "image_conversion",
  • "progress": 100,
  • "progressMessage": "string",
  • "params": { },
  • "resultFiles": [],
  • "error": {
    },
  • "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 job statistics

Get detailed statistics for a job

Authorizations:
BearerAuthCookieAuthNone
path Parameters
job_id
required
string

Job ID to retrieve statistics for

Responses

Response samples

Content type
application/json
{
  • "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"
}