OpenAI Error: No API key provided

Is your key valid? Can you make a new key and try that one?

It would be helpful if you provided some context around the question - “When I run this code…” Where are you running the code, and is that exactly how you’re inputting it?
openai.api_key = ‘■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■gTG2jqP8’ openai api fine_tunes.create -t “info_prepared.jsonl” -m davinci

If you’re doing this in the CLI (I assume you are because of syntax), you’re not entering the command in properly it appears. Try:

openai api --api-key ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■gTG2jqP8 api fine_tunes.create -t "info_prepared.jsonl" -m davinci

Let us know if that does it.

1 Like

try this:
openai -k <YOUR_API_KEY> api fine_tunes.create -t “your_path_to_gpt_prepared.jsonl” -m davinci

4 Likes

Hello, I ran the same query in the playground a few times and figured out my syntax errors. I can also see in your syntax:

Blockquote

openai.api_key = ‘■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■gTG2jqP8’

it should be :

Blockquote

openai.api_key = “■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■gTG2jqP8”

notice the " " quotations?

This is my very first few hours with openai and its amazing, to say the least. I’m excited to see what ill cook up. add me for collabs

Hello! I am having a similar issue. I was trying to generate an image and this error popped up.
Any Help Would be appreciated. Thank you.

error: Incorrect API key provided: sess-nOa*********************************x9tP. You can find your API key at https://beta.openai.com.

1 Like
2 Likes

**Hi, HRU? **
i have the same error. i don’t have idea how fix it
i’m rookie in this

import openai
openai.api_key = “…”

!export OPENAI_API_KEY=“…”

!openai api fine_tunes.create -t /content/drive/My\ Drive/trainingPromptsAndCompletions1.jsonl -m davinci

I have tried both ways, still getting same error:

Error: No API key provided. You can set your API key in code using ‘openai.api_key = ’, or you can set the environment variable OPENAI_API_KEY=). If your API key is stored in a file, you can point the openai module at it with ‘openai.api_key_path = ’. You can generate API keys in the OpenAI web interface. See https://onboard.openai.com for details, or email support@openai.com if you have any questions.

Has anyone solved it yet?

1 Like

running into the exact same issue here.
Tried creating new keys, also didn’t work.
Deleting browser cache didn’t work.
+1 if someone finds the problem and solution

This worked for me. Thank you

Hey @brandontaul . Did you find a solution to this, I am also facing this error “Incorrect API key provided: undefined. You can find your API key at OpenAI API” I am trying to build text to image genrator.

1 Like

I will share my solution.

1 Like

Thank you, that does not work either for me. Seems to be a sustaining issue for many of us… There is a problem with API KEY environment variables in Python, it works for me only in powershell… What does #Add mean?

“Add” means “modified”. This is worked for me.

import os

import openai
from dotenv import load_dotenv

load_dotenv()

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": "Hello ChatGPT!"},
    ],
)
print(response.choices[0]["message"]["content"].strip())

And this is my env

name: chatgpt_python
channels:
  - conda-forge
dependencies:
  - aiohttp=3.8.4=py39h02fc5c5_0
  - aiosignal=1.3.1=pyhd8ed1ab_0
  - appdirs=1.4.4=pyh9f0ad1d_0
  - async-timeout=4.0.2=pyhd8ed1ab_0
  - attrs=22.2.0=pyh71513ae_0
  - autopep8=1.6.0=pyhd8ed1ab_1
  - brotli=1.0.9=h1a8c8d9_8
  - brotli-bin=1.0.9=h1a8c8d9_8
  - brotlipy=0.7.0=py39h02fc5c5_1005
  - bzip2=1.0.8=h3422bc3_4
  - ca-certificates=2022.12.7=h4653dfc_0
  - certifi=2022.12.7=pyhd8ed1ab_0
  - cffi=1.15.1=py39h7e6b969_3
  - charset-normalizer=2.0.7=pyhd8ed1ab_0
  - click=8.0.3=py39h2804cbe_1
  - colorama=0.4.6=pyhd8ed1ab_0
  - contourpy=1.0.7=py39haaf3ac1_0
  - cryptography=39.0.2=py39he2a39a8_0
  - cycler=0.11.0=pyhd8ed1ab_0
  - dataclasses=0.8=pyhc8e2a94_3
  - docker-pycreds=0.4.0=py_0
  - et_xmlfile=1.1.0=pyhd8ed1ab_0
  - flask=2.0.2=pyhd8ed1ab_0
  - fonttools=4.39.0=py39h02fc5c5_0
  - freetype=2.12.1=hd633e50_1
  - frozenlist=1.3.3=py39h02fc5c5_0
  - gitdb=4.0.10=pyhd8ed1ab_0
  - gitpython=3.1.31=pyhd8ed1ab_0
  - idna=3.3=pyhd8ed1ab_0
  - importlib-resources=5.12.0=pyhd8ed1ab_0
  - importlib_resources=5.12.0=pyhd8ed1ab_0
  - itsdangerous=2.0.1=pyhd8ed1ab_0
  - jinja2=3.0.2=pyhd8ed1ab_0
  - joblib=1.2.0=pyhd8ed1ab_0
  - kiwisolver=1.4.4=py39haaf3ac1_1
  - lcms2=2.15=hd835a16_1
  - lerc=4.0.0=h9a09cb3_0
  - libblas=3.9.0=16_osxarm64_openblas
  - libbrotlicommon=1.0.9=h1a8c8d9_8
  - libbrotlidec=1.0.9=h1a8c8d9_8
  - libbrotlienc=1.0.9=h1a8c8d9_8
  - libcblas=3.9.0=16_osxarm64_openblas
  - libcxx=15.0.7=h75e25f2_0
  - libdeflate=1.17=h1a8c8d9_0
  - libffi=3.4.2=h3422bc3_5
  - libgfortran=5.0.0=12_2_0_hd922786_30
  - libgfortran5=12.2.0=h0eea778_30
  - libjpeg-turbo=2.1.5.1=h1a8c8d9_0
  - liblapack=3.9.0=16_osxarm64_openblas
  - libopenblas=0.3.21=openmp_hc731615_3
  - libpng=1.6.39=h76d750c_0
  - libprotobuf=3.21.12=hb5ab8b9_0
  - libsqlite=3.40.0=h76d750c_0
  - libtiff=4.5.0=hdc14d85_5
  - libwebp-base=1.2.4=h57fd34a_0
  - libxcb=1.13=h9b22ae9_1004
  - libzlib=1.2.13=h03a7124_4
  - llvm-openmp=15.0.7=h7cfbb63_0
  - markupsafe=2.0.1=py39h5161555_1
  - matplotlib-base=3.7.1=py39h35e9e80_0
  - multidict=6.0.4=py39h02fc5c5_0
  - munkres=1.1.4=pyh9f0ad1d_0
  - ncurses=6.3=h07bb92c_1
  - numpy=1.21.3=py39h1f3b974_1
  - openai=0.27.1=pyhd8ed1ab_0
  - openjpeg=2.5.0=hbc2ba62_2
  - openpyxl=3.0.9=pyhd8ed1ab_0
  - openssl=3.0.8=h03a7124_0
  - packaging=23.0=pyhd8ed1ab_0
  - pandas=1.3.4=py39h7f752ed_1
  - pandas-stubs=1.2.0.35=py39h2804cbe_0
  - pathtools=0.1.2=py_1
  - pillow=9.4.0=py39hfc21214_2
  - pip=23.0.1=pyhd8ed1ab_0
  - platformdirs=3.1.0=pyhd8ed1ab_0
  - plotly=5.13.1=pyhd8ed1ab_0
  - pooch=1.7.0=pyhd8ed1ab_0
  - protobuf=4.21.12=py39h23fbdae_0
  - psutil=5.9.4=py39h02fc5c5_0
  - pthread-stubs=0.4=h27ca646_1001
  - pycodestyle=2.8.0=pyhd8ed1ab_0
  - pycparser=2.21=pyhd8ed1ab_0
  - pyopenssl=23.0.0=pyhd8ed1ab_0
  - pyparsing=3.0.9=pyhd8ed1ab_0
  - pysocks=1.7.1=pyha2e5f31_6
  - python=3.9.16=hea58f1e_0_cpython
  - python-dateutil=2.8.2=pyhd8ed1ab_0
  - python-dotenv=0.19.2=pyhd8ed1ab_0
  - python_abi=3.9=3_cp39
  - pytz=2021.3=pyhd8ed1ab_0
  - pyyaml=6.0=py39h02fc5c5_5
  - readline=8.1.2=h46ed386_0
  - requests=2.26.0=pyhd8ed1ab_1
  - scikit-learn=1.2.2=py39h57c6424_0
  - scipy=1.10.1=py39h18313fe_0
  - sentry-sdk=1.16.0=pyhd8ed1ab_0
  - setproctitle=1.3.2=py39h02fc5c5_1
  - setuptools=59.8.0=py39h2804cbe_1
  - six=1.16.0=pyh6c4a22f_0
  - smmap=3.0.5=pyh44b312d_0
  - tenacity=8.2.2=pyhd8ed1ab_0
  - threadpoolctl=3.1.0=pyh8a188c0_0
  - tk=8.6.12=he1e0b03_0
  - toml=0.10.2=pyhd8ed1ab_0
  - tqdm=4.62.3=pyhd8ed1ab_0
  - typing-extensions=4.4.0=hd8ed1ab_0
  - typing_extensions=4.4.0=pyha770c72_0
  - tzdata=2022g=h191b570_0
  - unicodedata2=15.0.0=py39h02fc5c5_0
  - urllib3=1.26.7=pyhd8ed1ab_0
  - wandb=0.13.11=pyhd8ed1ab_0
  - werkzeug=2.0.2=pyhd8ed1ab_0
  - wheel=0.38.4=pyhd8ed1ab_0
  - xorg-libxau=1.0.9=h27ca646_0
  - xorg-libxdmcp=1.1.3=h27ca646_0
  - xz=5.2.6=h57fd34a_0
  - yaml=0.2.5=h3422bc3_2
  - yarl=1.8.2=py39h02fc5c5_0
  - zipp=3.15.0=pyhd8ed1ab_0
  - zstd=1.5.2=hf913c23_6
  - pip:
      - beautifulsoup4==4.11.2
      - bs4==0.0.1
      - markdown-it-py==2.2.0
      - mdurl==0.1.2
      - pip-search==0.0.12
      - pygments==2.14.0
      - rich==13.3.2
      - soupsieve==2.4

Hi Anser,

did your format your key like this: “Bearer sk-” and then your API-key?

Depending on the use case you need this in front of your key.

Please refer to the following article for further instructions where the bearer part is also mentioned:
Error Code 404 - Incorrect API key provided | OpenAI Help Center

@muskanrxl89 hey i’m getting the same error from today only, any idea how to fix it ?

Hi @fr.sxtyxm and @muskanrxl89

In the following tutorial the process for setting up the API key for use in image generation is shown in detail again. For me it worked to just follow the steps mentioned there. Maybe this will help you two as well? If you are using this in a different use case you could build this in PowerApps and then view the raw code to compare it to yours.

Creating a PowerApps custom connector for Dall-e image generation using OpenAI and Postman - YouTube

You can refer to the following Video for Setup for text based models: ChatGPT Custom Connector for Power Platform | How to use Chat GPT API in Power Apps & Automate - YouTube

This works thanks Specifying the key elsewhere does not for some reason.

Solution :
if you followed/cloned the quick start demo from the below link, you will face this issue ,

issue: the code cannot find the environment file
root cause : the environment file name is “.env.example”. while the environment file is defaulted in any code to be “.env” only
solution rename the environment file to be “.env”. this will enable the code to read the data inside the env file , otherwise the code search for the parameter in a file that it cannot find, which produces error that there is not key found.

Training the model the long way worked for me:
openai.api_key=“sk-…”

upload_response=openai.File.create(file=open(“…jsonl”, “rb”), purpose=‘fine-tune’)
file_id=upload_response.id
upload_response

fine_tune_response=openai.FineTune.create(training_file=file_id, model=“curie”)
fine_tune_response

Then check the process using:
fine_tune_events=openai.FineTune.list_events(id=fine_tune_response.id)
fine_tune_events

Get the model id using:
retrieve_response=openai.FineTune.retrieve(fine_tune_response.id)
fine_tuned_model=retrieve_response.fine_tuned_model
fine_tuned_model

Call for response using:
answer=openai.Completion.create(
model=fine_tuned_model,
prompt=new_prompt,
max_tokens=300,
temperature=0,
)
answer[“choices”][0][“text”]