You have data. What you do not have is a labelled dataset a model can learn from, and nobody wants to own that part, so the project stalls before training starts.
A general-purpose API cannot help, because the thing you need recognised only exists in your own data and no public model has ever seen it.
The model scores well in a notebook and nowhere else. Putting it behind an API with monitoring is a separate job, and it is the one that never got scoped.
It finally runs, and your team still cannot use it, because there is no screen. So it goes back on the shelf.