site_id is not some magical value that appears inside your endpoint handler. You have defined your endpoint as accepting a param site_id to be represented in the endpoint URL as :site_id after the first slash. The caller of your endpoint supplies the value in the URL.
In the example call you showed above you are not calling the endpoint with a route parameter that would occupy the place of the token you defined in the handler. Try it as I suggested earlier:
The way forward always starts with a minimal test.