Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Kismetkanceled/geniehelper/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Queue API provides endpoints for managing BullMQ media processing jobs and monitoring queue health. Jobs are enqueued via this API and processed by background workers. Base Path:/api/queue
Key Features:
- Enqueue media jobs (transcoding, thumbnails, captions)
- Real-time queue statistics (depth, waiting, active, completed)
- Subscription tier enforcement
- Taxonomy cache management
GET /api/queue/stats
Returns BullMQ queue depths and taxonomy cache statistics. Useful for dashboard observability. Authentication: None (public endpoint)Request success status
BullMQ queue statistics object containing:
waiting- Jobs waiting to be processedactive- Currently processing jobscompleted- Successfully completed jobsfailed- Failed jobsdelayed- Jobs scheduled for future execution
Taxonomy cache statistics:
size- Number of cached entrieshits- Cache hit countmisses- Cache miss count
- Health check dashboards
- Queue depth monitoring alerts
- Performance analytics
- Worker scaling decisions
POST /api/queue/media
Enqueue a media job that already exists in the Directusmedia_jobs collection.
Authentication: Directus JWT (Bearer token)
You must create the Directus
media_jobs record before calling this endpoint. This endpoint only pushes the job into BullMQ so workers can pick it up.Request Parameters
UUID of the existing
media_jobs Directus recordOperation type (e.g.,
transcoding, thumbnail, caption_generation). Used for tier validation.UUID of the input file from Directus
directus_files (optional)URL of remote input file (optional, alternative to
input_file_id)Job-specific parameters (e.g.,
{"format": "mp4", "resolution": "1080p"})UUID of the associated
platform_connections record (optional)Job priority (1-100, default: 10). Lower numbers = higher priority.
Response
Request success status
BullMQ job ID (UUID) assigned by the queue
Directus
media_jobs record UUID (echoed from request)Example Request
Subscription Tier Enforcement
The endpoint validates if the user’s subscription tier allows the requested operation: Fromqueue.js:88:
Supported Operations
Commonoperation values (validated against subscription tier):
transcoding- Video format conversionthumbnail- Generate video thumbnailcaption_generation- AI caption generationdownload- Download remote mediaupload- Upload processinganalysis- Media analysis/metadata extraction
POST /api/queue/taxonomy/invalidate
Bust the taxonomy cache (e.g., after admin updatestaxonomy_terms in Directus).
Authentication: None (internal loopback only)
Example Request:
Queue Architecture
Job Lifecycle
- Create Directus Record - Client creates
media_jobsrecord withstatus=pending - Enqueue - Client calls
POST /api/queue/mediawith jobId - BullMQ Processing - Worker picks up job from queue
- Status Updates - Worker updates Directus record (
status=processing,status=completed,status=failed) - Client Polling - Client polls Directus
media_jobsrecord for status changes
Queue Configuration
Fromserver/utils/actionBus.js:
Job Priority Levels
1-3- Critical (real-time user actions)4-6- High (scheduled urgent tasks)7-10- Normal (default background processing)11+- Low (batch operations, cleanup)
Error Handling
Missing required fields:Monitoring & Observability
Queue Metrics Dashboard
Use the/stats endpoint to build real-time dashboards:
Alerting Thresholds
Recommended alert triggers:- High queue depth:
waiting > 100(consider scaling workers) - High failure rate:
failed / (completed + failed) > 0.1(10%) - Stalled jobs:
active > 0for > 30 minutes (worker crash?)
Integration Example
Complete workflow for enqueuing a transcoding job:Next Steps
Captions API
Generate AI-powered captions (one of the queue operations)
Credentials API
Manage encrypted credentials for media jobs
