From the error format, this looks like a Nuxt (frontend) 404 rather than a Django (backend) one. That means the API request is hitting the frontend server instead of reaching Django, and since the frontend doesn’t handle /api/ routes, it returns a 404.
The most common cause when running behind an external reverse proxy is a misconfigured PRIVATE_BACKEND_URL. This is the URL the Nuxt server-side rendering process uses to reach Django internally, it should point directly to the backend service, not go out through your external Caddy.
Could you share:
Your docker-compose.yml (or at least the environment variables section)?
Your Caddy config?
In the meantime, double-check that PRIVATE_BACKEND_URL is not set to your public URL. If you’re using docker-compose with separate services, it should point to the backend container directly (e.g. http://backend:8000). If you’re using the all-in-one image, just leave it unset and it will default correctly.