# How I Accessed NVIDIA's AI API from Bangladesh Without Phone Verification

> Source: <https://dev.to/alaminnna/how-i-bypassed-nvidias-phone-verification-to-access-70-free-ai-models-from-bangladesh-24l0>
> Published: 2026-08-14 15:08:48+00:00

No VPN. No fake number. Just a browser console and an API call.

If you are a developer in Bangladesh, you have probably hit the same wall I did.

You go to [build.nvidia.com](https://build.nvidia.com), excited to try out the latest models on the NVIDIA NGC API. You click **Generate API Key**. And then — a phone verification gate appears. You look for your country code. **Bangladesh is not on the list.**

NVIDIA says: *"If your location isn't listed, please check again soon."* I checked. It has been that way for a while.

I am a student and independent builder from **Dhaka, Bangladesh**. I experiment with AI products and developer tools under the [Alaminnna](https://alaminnna.ami.bd) brand. I needed access to these models for a side project, not for enterprise production. Waiting for official support was not an option, so I looked for a legitimate workaround.

Here is what I found.

NVIDIA has two separate phone verification checkpoints:

Both ask for a phone number. Both block Bangladesh. But here is the critical insight: **the UI and the API are not the same system.** The web interface enforces phone checks. The API itself does not.

That gap is what makes this workaround possible.

Personal NVIDIA accounts trigger phone verification immediately. Organization accounts, however, do not — at least not during the initial signup flow.

Here is what I did:

**Phone verification bypassed for Gate 1.**

Now comes Gate 2. If you try to generate an API key through the dashboard UI, it will ask for a phone number again. The **Skip** button does not work. Closing the modal brings it back.

But the API endpoint that actually creates the key does not check your phone number. It only checks your **session cookie**.

Open your browser's Developer Console (`F12`

→ Console tab) and run:

``` js
const r = await fetch('https://api.ngc.nvidia.com/user-context', 
  { credentials: 'include' });
const d = await r.json();
console.log(d.orgName);
```

Copy the `orgName`

value that prints out.

Now run this in the same console:

``` js
const resp = await fetch(
  'https://api.ngc.nvidia.com/v3/orgs/' + d.orgName 
  + '/keys/type/AI_PLAYGROUNDS_KEY',
  {
    method: 'POST',
    credentials: 'include',
    headers: { 'content-type': 'application/json' },
    body: JSON.stringify({
      expiryDate: '2126-05-08T08:00:00Z',
      name: 'api',
      type: 'AI_PLAYGROUNDS_KEY',
      policies: [{
        product: 'nv-cloud-functions',
        scopes: ['invoke_function'],
        resources: [{ id: '*', type: 'account-functions' }]
      }]
    })
  }
);
const json = await resp.json();
console.log('API Key:', json.apiKey.value);
```

**HTTP 200.** The API key is printed in your console.

No SMS. No OTP. No phone number required.

NVIDIA's developers built the web UI with strict phone verification to reduce spam and abuse. That makes sense for a consumer-facing portal.

However, the underlying NGC API is designed for enterprise and developer automation. It validates:

It does **not** validate whether a phone number was attached to the account. Why? Because phone verification is a UI-level onboarding filter, not an API-level authorization rule. A company with 50 developers does not want every individual employee's personal phone number tied to the API key. The org account is what matters.

That architectural separation is what creates this workaround.

This free tier gives you access to **70+ models**, including some of the most capable open-weight models available right now. Here are the ones I have tested personally:

| Model | Context | Notes |
|---|---|---|
`thinkingmachines/inkling` |
5M | Best-in-class free model. 77.6% SWE-bench, 89.2% GPQA. |
`nvidia/nemotron-3-ultra-550b-a55b` |
5M | Arena Elo 1458. Strong reasoning. 91.9% SWE-bench. |
`stepfun-ai/step-3.7-flash` |
— | Coding specialist. 76.5% SWE-bench. Terminal-friendly. |
`minimaxai/minimax-m3` |
5M | Multimodal (text + image + video input). Great for agents. |
`mistralai/mistral-small-4-119b-2603` |
5M | Multilingual. Fast inference. |
`nvidia/llama-3.3-nemotron-super-49b-v1.5` |
— | Arena Elo 1380. Efficient and fast. |
`google/gemma-4-31b-it` |
256K | Google's latest open model. |

**Rate limit:** ~80 RPM. More than enough for prototyping and learning.

**Important limitations:**

Once you have your key, test it immediately:

```
curl -X POST https://integrate.api.nvidia.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"thinkingmachines/inkling","messages":[{"role":"user","content":"hello"}]}'
```

If you get a valid JSON response, you are in.

This workaround is **100% legal**. I am not breaking any rules. I am not using a VPN to fake my location. I am not using a temporary phone number. I am simply using a different registration path (organization account) and calling the API directly instead of clicking through a UI that was designed with a phone gate.

As developers from Bangladesh, we often feel like certain tools are "not for us." That is rarely true. Sometimes the path is just a little different.

If you found this useful, I share more experiments like this on my [website](https://alaminnna.ami.bd) and across my developer profiles. I am always building in public and learning through shipping.

**Happy building.**

*I am **Al A Min** (Alaminnna) — a student, entrepreneur, and independent builder from Dhaka, Bangladesh. I develop AI-powered software, full stack web applications, and open source tools. I write about AI development, JavaScript, TypeScript, React, Next.js, and the lessons I learn while building in public.*
