## TL;DR

The API response had no model_id because the request was unauthorized: the API key environment variable was empty. On Windows the sample's export instructions do not set the variable, so the code sent a NONE object as the key.

## Steps

1. Running the NanoNets OCR sample's create-model.py failed with KeyError: 'model_id' at json.loads(response.text)["model_id"]. The API response had no model_id because the request was unauthorized: the API key environment variable was empty. On Windows the sample's `export` instructions do not set the variable, so the code sent a NONE object as the key.

2. Get your API key from the NanoNets dashboard (app.nanonets.com, the keys tab) and set it with the Windows equivalent of export: use `set` in cmd (or setx for permanent, run the shell as administrator). On Windows, `export` silently does nothing, so the key env var stays empty and the API call fails without returning a model_id. The reporter confirmed this fixed it. Source: https://github.com/NanoNets/nanonets-ocr-sample-python/issues/5

## When to use

You are seeing this: Running the NanoNets OCR sample's create-model.py failed with KeyError: 'model_id' at json.loads(response.text)["model_id"]. Use this skill when you run into "NanoNets create-model.py KeyError: 'model_id' (API key env var on Windows)".

## When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

## Versions

No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.

## Why this happens

The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.

## Sources

- https://github.com/NanoNets/nanonets-ocr-sample-python/issues/5
