[▲ Vercel Community](/) · [Categories](/categories) · [Latest](/latest) · [Top](/top) · [Live](/live) [Help](/c/help/9) # Vercel AI Gateway returns 403 Forbidden access_denied error 35 views · 2 likes · 8 posts Jhon (@sboxm) · 2026-03-16 ## Problem When I used `Vercel AI Gateway` today, the interface returned a `403` response to me. ## What I've Tried - Deleted and rebound the payment method - Created a new `API key` The problem was not resolved. **Error:** ```json { "error": { "message": "Forbidden.", "type": "access_denied" } } ``` My Team ID is `team_F4sCK9QW4pjPtrCkfaUbtMJE` Edward J. (@maestropcg) · 2026-03-16 It’s almost always “this request isn’t allowed to use AI Gateway”, not “your model provider key is wrong”. Since you already tried new payment method + new API key, the most likely buckets are wrong credential/scope, feature/plan/enablement, or an account/network restriction. Please run request that prints response headers so that you can grab req ID. curl -i “$AI_GATEWAY_BASE_URL/v1/models” -H “Authorization: Bearer $AI_GATEWAY_KEY” Then paste the response headers so I can tell you something. Jhon (@sboxm) · 2026-03-16 Thanks for the guidance. I ran the `curl ` command and captured the output. **Request ID:** sin1::fra1::px78m-1773649643335-8826b1d38a61 **Response Headers:** ``` Date: Mon, 16 Mar 2026 08:27:23 GMT Server: Vercel Strict-Transport-Security: max-age=63072000; includeSubDomains; preload Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch X-Matched-Path: /v1/models X-Vercel-Cache: BYPASS X-Vercel-Id: sin1::fra1::px78m-1773649643335-8826b1d38a61 Transfer-Encoding: chunked ``` Edward J. (@maestropcg) · 2026-03-16 Good, those headers suggest your curl request didn’t hit the AI gateway API, but instead hit a next.js app/route on vercel. I think that usually happens when the base url is wrong. so please go to vercel dashboard, AI/Gateway and copy the Gateway Base URL. Then run this command again. curl -i “https://<GATEWAY_BASE_HOST>/v1/models” -H “Authorization: Bearer <YOUR_AI_GATEWAY_KEY>” Jhon (@sboxm) · 2026-03-16 Here are the full request/response details as requested: **Request:** POST https://ai-gateway.vercel.sh/v1/chat/completions **Request Headers:** Authorization: Bearer <MY_AI_GATEWAY_KEY> Content-Type: application/json Accept: */* Accept-Encoding: gzip, deflate, br User-Agent: PostmanRuntime-ApipostRuntime/1.1.0 Connection: keep-alive Cache-Control: no-cache Host: ai-gateway.vercel.sh Content-Length: 136 **Response Headers:** Cache-Control: public, max-age=0, must-revalidate Content-Encoding: br Content-Type: application/json Date: Mon, 16 Mar 2026 09:41:18 GMT Server: Vercel Strict-Transport-Security: max-age=63072000; includeSubDomains; preload Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch X-Matched-Path: /v1/chat/completions X-Vercel-Cache: MISS X-Vercel-Id: sin1::fra1::mr2nm-1773654078302-80a62b52517d Transfer-Encoding: chunked **Response Body:** { "error": { "message": "Forbidden.", "type": "access_denied" } } The response still shows Next.js headers (Vary: rsc, X-Matched-Path) and returns 403 Forbidden. Anshuman Bhardwaj (@anshumanb) · 2026-03-16 Hi @sboxm, welcome to the Vercel Community! Sorry that you're facing this issue. I've found the issue with your account and fixing it. It might take a few hours but I'll keep you posted here. Anshuman Bhardwaj (@anshumanb) · 2026-03-16 Hi @sboxm, I've patched this for you. Can you give it a try and confirm the fix? Jhon (@sboxm) · 2026-03-16 · ♥ 1 Hi, I just tested it and can confirm the fix works. The API is now responding correctly. Thanks for the quick patch!