# Create a new Product

Initiate the creation of a new product within your hub, defining its attributes for seamless integration and management within your ecosystem. This endpoint facilitates the expansion of your product offerings in a structured manner.

## Create a new Product

<mark style="color:green;">`POST`</mark> `https://v2.parcelroblox.com/products/create`

#### Headers

<table><thead><tr><th width="256">Name</th><th width="170">Type</th><th>Description</th></tr></thead><tbody><tr><td>Authorization<mark style="color:red;">*</mark></td><td>string</td><td>prod_DGzVhVsrqNJi4b0Chd9mMPUI9</td></tr><tr><td>Content-Type</td><td>string</td><td>application/json</td></tr></tbody></table>

#### Request Body

| Name                                                     | Type          | Description                   |
| -------------------------------------------------------- | ------------- | ----------------------------- |
| name<mark style="color:red;">\*</mark>                   | string        | Product Name                  |
| description<mark style="color:red;">\*</mark>            | string        | Product Description           |
| developer\_product\_id<mark style="color:red;">\*</mark> | string        | Roblox Developer Product ID   |
| file<mark style="color:red;">\*</mark>                   | string        | File URL (or text message)    |
| onsale<mark style="color:red;">\*</mark>                 | boolean       | Product Sale Status           |
| role\_id<mark style="color:red;">\*</mark>               | string / null | Discord Buyer Role ID         |
| decal\_id<mark style="color:red;">\*</mark>              | string / null | Roblox Decal ID               |
| stock<mark style="color:red;">\*</mark>                  | string        | Product Stock                 |
| category<mark style="color:red;">\*</mark>               | string        | Product Category              |
| instructions<mark style="color:red;">\*</mark>           | string / null | Product Delivery Instructions |

#### Available Categories

```json
aviation, military, vehicles, maritime, healthcare, education, hospitality, retail, technology, industrial, urban, residential, other
```

{% tabs %}
{% tab title="200: OK " %}
If everything was able to process properly:

```javascript
{ "status": "200", "message": "OK", "data": { "state": "Product created", "product": object } }
```

{% endtab %}

{% tab title="400: Bad Request " %}
If you did not follow the schema:

```javascript
{ "status": "400", "message": "Your payload did not pass the Schema validation.", "error": string, "data": {} }
```

If the product name that you supplied is already registered:

```javascript
{ "status": "400", "message": "The name '' is already in-use.\nPlease use a different product name.", "data": {} }
```

If the Roblox Developer Product ID that you supplied does not exist:

```javascript
{ "status": "400", "message": "Developer Product ID could not be found.\nAre you sure that you've entered the correct developer product ID?\nPossible solution: Make sure the Developer Product exists in the Hub game.", "data": {} }
```

If you did not supply a Discord Buyer Role ID (Parcel Pro only):

```javascript
{ "status": "400", "message": "Missing role_id or invalid input.", "data": {} }
```

If you did not supply a Product Stock (Parcel Pro only):

```javascript
{ "status": "400", "message": "Missing stock or invalid input. Please respond with a number between 0-999 or unlimited.", "data": {} }
```

If you the Product Stock you supplied is not within the number range (Parcel Pro only):

```javascript
{ "status": "400", "message": "On the stock field, please respond with a number between 0-999.", "data": {} }
```

If you did not supply Product Delivery Instructions (Parcel Pro only):

```javascript
{ "status": "400", "message": "Missing instructions or invalid input.", "data": {} }
```

{% endtab %}

{% tab title="403: Forbidden " %}
If your current tier does not support certain fields:

```javascript
{ "status": "403", "message": "Access forbidden: Your tier (Parcel Free) does not allow configuring stock, instructions, or role_id.", "data": {} }
```

{% endtab %}

{% tab title="401: Unauthorized " %}
If you provided an invalid authorization key:

```javascript
{ "status": "401", "message": "Invalid authorization key." }
```

If you did not provide an authorization key:

```javascript
{ "status": "401", "message": "No authorization key was provided." }
```

{% endtab %}

{% tab title="500: Internal Server Error " %}
If something was wrong on our end:

```javascript
{ "status": "500", "message": "Internal Server Error" }
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://v2-docs.parcelroblox.com/product-endpoints/create-a-new-product.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
