# Openai.beta.threads.messages.create "Missing required parameter: 'role'

**URL:** <https://community.openai.com/t/openai-beta-threads-messages-create-missing-required-parameter-role/762173>\
**Category:** API\
**Tags:** assistant\
**Created:** [May 18, 2024, 7:18am UTC](https://community.openai.com/t/openai-beta-threads-messages-create-missing-required-parameter-role/762173 "2024-05-18T07:18:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![liviu74](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/liviu74/32/372314_2.png) [@liviu74](https://community.openai.com/u/liviu74)\
**Post date:** [May 18, 2024, 7:18am UTC](https://community.openai.com/t/openai-beta-threads-messages-create-missing-required-parameter-role/762173/1 "2024-05-18T07:18:56Z")

</div>

Hi, I’m new to node.js and OpenAi API.  
I have this code:

```auto
router.post('/add-message', protect, async (req, res) => {
  const { threadId, content } = req.body;
  try {
    const message = await openai.beta.threads.messages.create({
      thread_id: threadId,
      role: "user", 
      content
    });
    res.json(message);
  } catch (error) {
    console.error('Error adding message to thread:', error);
    res.status(500).json({ message: 'Error adding message to thread' });
  }
});

```

But I try to test it with curl

```auto
curl -X POST http://localhost:5001/api/openai/add-message \
-H "Content-Type: application/json" \
-H "Authorization: Bearer XXXXXXXX" \
-d '{"threadId": "thread_XXXXXXX", "content": "This is a test prompt."}'

```

I got this error:

```auto
Error adding message to thread: BadRequestError: 400 Missing required parameter: 'role'.
[...]

  error: {
    message: "Missing required parameter: 'role'.",
    type: 'invalid_request_error',
    param: 'role',
    code: 'missing_required_parameter'
  },
  code: 'missing_required_parameter',
  param: 'role',
  type: 'invalid_request_error'
}

```

To create an assistant and thread working without any issues.

---

<div class="post-metadata">

**Author:** ![supershaneski](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/supershaneski/32/71779_2.png) [@supershaneski](https://community.openai.com/u/supershaneski)\
**Post date:** [May 18, 2024, 8:34am UTC](https://community.openai.com/t/openai-beta-threads-messages-create-missing-required-parameter-role/762173/2 "2024-05-18T08:34:08Z")

</div>

Try this update on your code:

```javascript
const message = await openai.beta.threads.messages.create(
      threadId,
      { role: "user", content }
);

```

See the [API reference page](https://platform.openai.com/docs/api-reference/messages/createMessage)

---

<div class="post-metadata">

**Author:** ![liviu74](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/liviu74/32/372314_2.png) [@liviu74](https://community.openai.com/u/liviu74)\
**Post date:** [May 18, 2024, 8:43am UTC](https://community.openai.com/t/openai-beta-threads-messages-create-missing-required-parameter-role/762173/3 "2024-05-18T08:43:18Z")

</div>

> [@supershaneski](#):
>
> ```auto
> const message = await openai.beta.threads.messages.create(
> threadId,
> { role: "user", content }
> );
> 
> ```

Wow! Your solution works! Thank you very much for such a fast answer!
