Error 400 when using GPT API (in JavaScript)

I keep getting a 400 Error when I try to run my very basic chatbot using the GPT API:

Attached is my code; am I doing something wrong with the API key?

const chatHistoryContent = document.querySelector("#chat-history-content");
const chatMessageInput = document.querySelector("#chat-message-input");
const chatMessageSubmit = document.querySelector("#chat-message-submit");

chatMessageSubmit.addEventListener("click", async function () {
    const message = chatMessageInput.value;
    chatMessageInput.value = "";

    // Add the user's message to the chat history
    const userMessageDiv = document.createElement("div");
    userMessageDiv.innerHTML = `You: ${message}`;

    // Use the OpenAI GPT-3 API to get a response from the chatbot
    const response = await getResponseFromAPI(message);

    // Add the chatbot's response to the chat history
    const chatbotMessageDiv = document.createElement("div");
    chatbotMessageDiv.innerHTML = `Max: ${response}`;

async function getResponseFromAPI(message) {

    const apiKey = "sk-myapikey";
    const endpoint = ``;

    const response = await fetch(endpoint, {
        method: "POST",
        headers: {
            "Content-Type": `application/json`,
            "Authorization": `Bearer ${apiKey}`,
        body: JSON.stringify({
            model: "text-davinci-003",
            prompt: "test prompt", 
            temperature: 0.5,
            max_tokens: 512,
            top_p: 1,
            frequency_penalty: 0,
            presence_penalty: 0,

    const data = await response.json();
    return data.choices[0].text;


I have tried consulting many websites to see solutions to this but have had no luck.

>Solution :

400 (Bad Request) error code typically means that client request’s data is incorrect. So yes, must be something with your auth headers/body of request. Quite often response contains a reason, please try to print the text of response (before trying to get json output), e.g.


or just check Network Tab in Dev Console

Leave a Reply