{"openapi":"3.1.0","info":{"title":"ScribeNode","description":"GPU-powered transcription service","version":"1.0.0"},"paths":{"/":{"get":{"summary":"Landing Page","operationId":"landing_page__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/terms":{"get":{"summary":"Terms Page","operationId":"terms_page_terms_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","description":"Generate sitemap.xml dynamically from generated pages.","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/upload":{"post":{"summary":"Upload File","description":"Upload audio/video file for transcription.\n\nSi mode='legal' → activa template DOCX jurídico AR + pricing USD 3/min + diarización forzada.\nSi mode='general' → comportamiento default USD 0.10/min.","operationId":"upload_file_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subtitles/upload":{"post":{"summary":"Upload Subtitles","description":"Upload audio/video to generate professional subtitles (.srt/.vtt),\nwith optional multi-language translation and optional burn-in to video.","operationId":"upload_subtitles_subtitles_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_subtitles_subtitles_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audio/enhance":{"post":{"summary":"Upload Audio Enhance","description":"Upload an audio/video file for enhancement (denoise + normalize + compress).\nOpen beta — always free, no per-IP cap.","operationId":"upload_audio_enhance_audio_enhance_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_audio_enhance_audio_enhance_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audio/presets":{"get":{"summary":"Audio Presets","description":"List available enhancement presets for the UI.","operationId":"audio_presets_audio_presets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/checkout/pay-per-use":{"post":{"summary":"Checkout Pay Per Use","description":"Create a payment for a single transcription job.","operationId":"checkout_pay_per_use_checkout_pay_per_use_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_checkout_pay_per_use_checkout_pay_per_use_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/checkout/credits":{"post":{"summary":"Checkout Credits","description":"Use pre-purchased credits for a job.","operationId":"checkout_credits_checkout_credits_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_checkout_credits_checkout_credits_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pricing":{"get":{"summary":"Get Pricing","operationId":"get_pricing_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/credits/purchase":{"post":{"summary":"Purchase Credits","description":"Purchase a credit pack.","operationId":"purchase_credits_credits_purchase_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_purchase_credits_credits_purchase_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/paypal/capture":{"get":{"summary":"Paypal Capture","description":"Called after user approves PayPal payment. Captures the order.","operationId":"paypal_capture_paypal_capture_get","parameters":[{"name":"job_id","in":"query","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhook/mercadopago":{"post":{"summary":"Mercadopago Webhook","description":"Handle MercadoPago IPN.","operationId":"mercadopago_webhook_webhook_mercadopago_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/jobs/{job_id}/poll":{"get":{"summary":"Poll Job","description":"Public polling endpoint - no auth required.","operationId":"poll_job_jobs__job_id__poll_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"}}}}}}},"/jobs/{job_id}/download":{"get":{"summary":"Download Result","description":"Download transcription result.","operationId":"download_result_jobs__job_id__download_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"txt","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{job_id}/status":{"get":{"summary":"Job Status Page","description":"Status page for a job (redirect from payment).","operationId":"job_status_page_jobs__job_id__status_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"}}}}}}},"/dashboard":{"get":{"summary":"Dashboard","operationId":"dashboard_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/stats":{"get":{"summary":"Dashboard Stats","operationId":"dashboard_stats_dashboard_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/jobs":{"get":{"summary":"Dashboard Jobs","operationId":"dashboard_jobs_dashboard_jobs_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/credits":{"get":{"summary":"Dashboard Credits","operationId":"dashboard_credits_dashboard_credits_get","parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/googlede5887eebf8bc7b7.html":{"get":{"summary":"Google Verify","operationId":"google_verify_googlede5887eebf8bc7b7_html_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"Body_checkout_credits_checkout_credits_post":{"properties":{"job_id":{"type":"string","title":"Job Id"},"email":{"type":"string","title":"Email"}},"type":"object","required":["job_id","email"],"title":"Body_checkout_credits_checkout_credits_post"},"Body_checkout_pay_per_use_checkout_pay_per_use_post":{"properties":{"job_id":{"type":"string","title":"Job Id"},"payment_method":{"type":"string","title":"Payment Method","default":"paypal"}},"type":"object","required":["job_id"],"title":"Body_checkout_pay_per_use_checkout_pay_per_use_post"},"Body_purchase_credits_credits_purchase_post":{"properties":{"email":{"type":"string","title":"Email"},"pack":{"type":"string","title":"Pack"},"payment_method":{"type":"string","title":"Payment Method","default":"paypal"}},"type":"object","required":["email","pack"],"title":"Body_purchase_credits_credits_purchase_post"},"Body_upload_audio_enhance_audio_enhance_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"email":{"type":"string","title":"Email"},"preset":{"type":"string","title":"Preset","default":"auto"},"output_format":{"type":"string","title":"Output Format","default":"mp3"}},"type":"object","required":["file","email"],"title":"Body_upload_audio_enhance_audio_enhance_post"},"Body_upload_file_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"email":{"type":"string","title":"Email"},"output_format":{"type":"string","title":"Output Format","default":"txt,srt"},"translate_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Translate To"},"diarize":{"type":"boolean","title":"Diarize","default":false},"free_trial":{"type":"boolean","title":"Free Trial","default":false},"mode":{"type":"string","title":"Mode","default":"general"},"caratula":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caratula"},"expediente":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expediente"},"juzgado":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Juzgado"},"fecha_audio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fecha Audio"}},"type":"object","required":["file","email"],"title":"Body_upload_file_upload_post"},"Body_upload_subtitles_subtitles_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"email":{"type":"string","title":"Email"},"target_languages":{"type":"string","title":"Target Languages","default":""},"burn_in":{"type":"boolean","title":"Burn In","default":false},"source_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Language"},"free_trial":{"type":"boolean","title":"Free Trial","default":false}},"type":"object","required":["file","email"],"title":"Body_upload_subtitles_subtitles_upload_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}}}