I have been trying to create a product using Rest API for Magento Version 2.0.

I am using Postman to test the rest api.

URL : <http://13.91>.***.***/rest/V1/products 

I have added the following headers to the request.
Authorization : Bearer \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
Content-Type : application/json

JSON BODY

```
{
"sku":"10090-White-XL",
"store_view_code":"",
"attribute_set_code":"ColorSize",
"product_type":"virtual",
"categories":"Menswear/Tops",
"product_websites":"base",
"name":"10090-White-XL",
"description":"<p>Precise Long-Sleeve Shirt in Black, Denim, or White.</p>",
"short_description":"",
"weight":"",
"product_online":1,
"tax_class_name":"Taxable Goods",
"visibility":"Not Visible Individually",
"price":119,
"special_price":"",
"special_price_from_date":"",
"special_price_to_date":"",
"url_key":"10090-white-xl",
"meta_title":"Precise Long-Sleeve Shirt",
"meta_keywords":"Precise Long-Sleeve Shirt",
"meta_description":"Precise Long-Sleeve Shirt <p>Precise Long-Sleeve Shirt in Black, Denim, or White.</p>",
"base_image":"",
"base_image_label":"",
"small_image":"",
"small_image_label":"",
"thumbnail_image":"",
"thumbnail_image_label":"",
"swatch_image":"",
"swatch_image_label":"",
"created_at":"3/23/16, 2:15 PM",
"updated_at":"3/23/16, 2:15 PM",
"new_from_date":"",
"new_to_date":"",
"display_product_options_in":"Block after Info Column",
"map_price":"",
"msrp_price":"",
"map_enabled":"",
"gift_message_available":"",
"custom_design":"",
"custom_design_from":"",
"custom_design_to":"",
"custom_layout_update":"",
"page_layout":"",
"product_options_container":"",
"msrp_display_actual_price_type":"",
"country_of_manufacture":"",
"additional_attributes":"color=White,size=XL",
"qty":null,
"out_of_stock_qty":0,
"use_config_min_qty":1,
"is_qty_decimal":0,
"allow_backorders":0,
"use_config_backorders":1,
"min_cart_qty":1,
"use_config_min_sale_qty":1,
"max_cart_qty":10000,
"use_config_max_sale_qty":1,
"is_in_stock":0,
"notify_on_stock_below":1,
"use_config_notify_stock_qty":1,
"manage_stock":0,
"use_config_manage_stock":0,
"use_config_qty_increments":1,
"qty_increments":0,
"use_config_enable_qty_inc":0,
"enable_qty_increments":0,
"is_decimal_divided":0,
"website_id":1,
"related_skus":"",
"crosssell_skus":"",
"upsell_skus":"",
"additional_images":"",
"additional_image_labels":"",
"hide_from_product_page":"",
"bundle_price_type":"",
"bundle_sku_type":"",
"bundle_price_view":"",
"bundle_weight_type":"",
"bundle_values":"",
"configurable_variations":"",
"configurable_variation_labels":"",
"associated_skus":""

```

}

The error that I get is `{"message":"%fieldName is a required field.","parameters":{"fieldName":"product"}}`

It will be great if someone could let me know how I could add a product. I have checked all the documents and but could not find an answer.
['https://Stackoverflow.com/questions/36437655', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2556858/']
I have found the answer to my question. The json structure need to be in this format:

```
{
    "product":{
      "id": 12345,
      "sku": "10090-White-XL",
      "name": "10090-White-XL",
      "attribute_set_id": 9,
      "price": 119,
      "status": 1,
      "visibility": 1,
      "type_id": "virtual",
      "created_at": "2016-04-05 23:04:09",
      "updated_at": "2016-04-05 23:04:09",
      "product_links": [],
      "options": [],
      "tier_prices": [],
      "custom_attributes": [
        {
          "attribute_code": "description",
          "value": "<p>Precise Long-Sleeve Shirt in Black, Denim, or White.</p>"
        },
        {
          "attribute_code": "meta_title",
          "value": "Precise Long-Sleeve Shirt"
        },
        {
          "attribute_code": "meta_keyword",
          "value": "Precise Long-Sleeve Shirt"
        },
        {
          "attribute_code": "meta_description",
          "value": "Precise Long-Sleeve Shirt <p>Precise Long-Sleeve Shirt in Black, Denim, or White.</p>"
        },
        {
          "attribute_code": "color",
          "value": "11"
        },
        {
          "attribute_code": "options_container",
          "value": "container2"
        },
        {
          "attribute_code": "required_options",
          "value": "0"
        },
        {
          "attribute_code": "has_options",
          "value": "0"
        },
        {
          "attribute_code": "url_key",
          "value": "10090-white-xl"
        },
        {
          "attribute_code": "msrp_display_actual_price_type",
          "value": "0"
        },
        {
          "attribute_code": "tax_class_id",
          "value": "2"
        },
        {
          "attribute_code": "size",
          "value": "8"
        }
      ]
    },"saveOptions": true
 }

```

The important thing to note is the product tag in the json.The swagger document help to idenity it. Here is the link to it: <http://devdocs.magento.com/swagger/#!/catalogProductRepositoryV1/catalogProductRepositoryV1SavePost>
Simple product with custom attributes (ex: remarks).

Just take note of the media\_gallery\_entries. Make sure to supply a valid base64\_encoded\_data image content and mime type. 

URL: <http://domain/index.php/rest/V1/products>

METHOD: POST

HEADER:
 application/json
 Authorization: Bearer 

POST DATA / RAW PAYLOAD:

```html
{
  "product": {
   "sku": "TESTPRD002",
   "name": "Women's Running - Pure Boost X Shoes",
   "attribute_set_id": 4,
   "price": 84,
   "status": 1,
   "visibility": 4,
   "type_id": "simple",
   "created_at": "2016-12-16 15:20:55",
   "updated_at": "2016-12-16 15:20:23",
   "weight": 2.5,
   "extension_attributes": {
  "stock_item": {
    "item_id": 1,
    "stock_id": 1,
    "qty": 20,
    "is_in_stock": true,
    "is_qty_decimal": false
  }
   },
   "product_links": [],
   "options": [],
   "media_gallery_entries": [
  {
    "media_type": "image",
    "label": "Women's Running - Pure Boost X Shoes",
    "position": 1,
    "disabled": false,
    "types": [
   "image",
   "small_image",
   "thumbnail"
    ],  
    "content": {
     "base64_encoded_data": "<ENCODED IMAGE DATA>",
     "type": "image/jpeg",
     "name": "TESTPRD002-01.jpg"
   }
  }
   ],
   "tier_prices": [],
   "custom_attributes": [
  {
    "attribute_code": "description",
    "value": "<p>Lightweight and sleek, these women's running shoes are fueled by boost™ energy. The low-profile runners blend an energy-returning boost™ midsole with a STRETCHWEB outsole for a cushioned ride with terrific ground-feel. They feature a breathable mesh upper with a sock-like fit that offers all-around support. With a full boost™ midsole that keeps every stride charged with light, fast energy, the shoe has an upper that hovers over a free-floating arch.</p>"
  },
  {
    "attribute_code": "short_description",
    "value": "<p>PURE BOOST X SHOES</p><p>NATURAL RUNNING SHOES WITH ARCH SUPPORT.</p>"
  },
  {
    "attribute_code": "meta_title",
    "value": "PURE BOOST X SHOES"
  },
  {
    "attribute_code": "meta_keyword",
    "value": "boost X, running, shoes, adidas"
  },
  {
    "attribute_code": "meta_description",
    "value": "NATURAL RUNNING SHOES WITH ARCH SUPPORT."
  },
  {
    "attribute_code": "category_ids",
    "value": [
   "2", "3"
    ]
  },
  {
    "attribute_code": "url_key",
    "value": "womens-running-pure-boost-x-shoes"
  },
  {
    "attribute_code": "tax_class_id",
    "value": "1"
  },
  {
    "attribute_code": "remarks",
    "value": "Lorem ipsum.."
  }
   ]
  },
  "saveOptions": true
}
```