When a request carries regulated personal data, detected by the gateway's classifier (Aadhaar, PAN, email, phone today), and a residency jurisdiction applies, routing is hard-locked to providers resident in that jurisdiction. No client header and no routing config can widen the lock.
The jurisdiction comes from the x-routeplane-residency header or the key's server-side default. The header can narrow but never disable that default.
bashresidency lock
curl https://<gateway-host>/v1/chat/completions \
-H "content-type: application/json" \
-H "x-routeplane-api-key: rp_..." \
-H "x-routeplane-residency: IN" \
-d '{"model":"gpt-4o","messages":[{"role":"user","content":"..."}]}'
Fail-closed. If the request carries regulated data and no jurisdiction-resident provider is eligible, Routeplane refuses with 422 rather than silently letting the data leave the region. Residency is enforced per request, not per deployment.
How-to: Enforce data residency for a region → the step-by-step recipe.