{"service":"moodify-inference","version":"1.0.0","status":"ok","description":"Moodify ML inference service -- text / speech / face emotion detection + Deezer-backed music recommendations. Scale-to-zero FastAPI app on Modal.","links":{"openapi_docs":"/docs","redoc":"/redoc","openapi_json":"/openapi.json","health":"/health","frontend":"https://moodify-emotion-music-app.vercel.app","backend_api":"https://moodify-emotion-music-app-backend.vercel.app","source":"https://github.com/hoangsonww/Moodify-Emotion-Music-App"},"endpoints":[{"method":"GET","path":"/health","auth":"none","summary":"Liveness + cache + rate-limit stats."},{"method":"POST","path":"/text_emotion","auth":"Bearer","tier":"general","summary":"Emotion from a piece of text + Deezer recommendations."},{"method":"POST","path":"/speech_emotion","auth":"Bearer","tier":"media","summary":"Emotion from a voice clip (multipart upload <=12MB)."},{"method":"POST","path":"/facial_emotion","auth":"Bearer","tier":"media","summary":"Emotion from a face photo (multipart upload <=12MB)."},{"method":"POST","path":"/music_recommendation","auth":"Bearer","tier":"general","summary":"Mood-matched Deezer tracks + history blend."}],"rate_limits":{"general":"45/60s per user","media":"15/60s per user","headers":["X-RateLimit-Limit","X-RateLimit-Remaining","X-RateLimit-Window","Retry-After (on 429)"]}}