{"openapi":"3.1.0","info":{"title":"ThumbnailGen API","description":"AI-powered thumbnail generation service","version":"1.0.0"},"paths":{"/health":{"get":{"summary":"Health Check","description":"Health check estándar para healthchecks de Coolify/Cloudflare.","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","description":"Redirect to static frontend.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/generate":{"post":{"summary":"Generate Thumbnail","description":"Create a new thumbnail generation job.","operationId":"generate_thumbnail_api_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/thumbnails":{"get":{"summary":"List Thumbnails","description":"List all generated thumbnails.","operationId":"list_thumbnails_api_thumbnails_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/thumbnails/{job_id}":{"get":{"summary":"Get Thumbnail","description":"Get thumbnail details.","operationId":"get_thumbnail_api_thumbnails__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThumbnailDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/thumbnails/{job_id}/download":{"get":{"summary":"Download Thumbnail","description":"Get download URL for thumbnail.","operationId":"download_thumbnail_api_thumbnails__job_id__download_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/thumbnails/{job_id}/image":{"get":{"summary":"Get Thumbnail Image","description":"Get generated thumbnail image.","operationId":"get_thumbnail_image_api_thumbnails__job_id__image_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/catalogs":{"get":{"summary":"Get Catalogs","description":"Get available catalogs for content types, styles, platforms.","operationId":"get_catalogs_api_catalogs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/me":{"get":{"summary":"Auth Me","description":"Return the current authenticated user's info from Clerk JWT.","operationId":"auth_me_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/sync":{"post":{"summary":"Auth Sync","description":"Sync Clerk user data to the local MongoDB database.","operationId":"auth_sync_api_v1_auth_sync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/static/":{"get":{"summary":"Static Index","description":"Serve static index.","operationId":"static_index_static__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/static/index.html":{"get":{"summary":"Static Index Html","description":"Serve static index.","operationId":"static_index_html_static_index_html_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"GenerateRequest":{"properties":{"tema":{"type":"string","title":"Tema"},"tipo_contenido":{"type":"string","title":"Tipo Contenido"},"estilo":{"type":"string","title":"Estilo"},"dimensiones":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dimensiones","default":"1280x720"},"plataforma":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plataforma","default":"youtube"},"variaciones":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Variaciones","default":1}},"type":"object","required":["tema","tipo_contenido","estilo"],"title":"GenerateRequest"},"GenerateResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"estimated_time":{"type":"integer","title":"Estimated Time"},"message":{"type":"string","title":"Message"}},"type":"object","required":["job_id","status","estimated_time","message"],"title":"GenerateResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ThumbnailDetail":{"properties":{"id":{"type":"string","title":"Id"},"tema":{"type":"string","title":"Tema"},"tipo_contenido":{"type":"string","title":"Tipo Contenido"},"estilo":{"type":"string","title":"Estilo"},"dimensiones":{"type":"string","title":"Dimensiones"},"plataforma":{"type":"string","title":"Plataforma"},"status":{"type":"string","title":"Status"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"created_at":{"type":"string","title":"Created At"},"processing_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processing Time Ms"}},"type":"object","required":["id","tema","tipo_contenido","estilo","dimensiones","plataforma","status","created_at"],"title":"ThumbnailDetail"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}