Question: The API documentation describe how to add a "simple product" using rest:
<http://www.magentocommerce.com/api/rest/Resources/Products/products.html>

But what about configurable products? 
We are working with t-shirts and the only way we can allow users to select size is creating a configurable product, so that's the reason we need it.

As for the reason to use the API, we will have a desktop app creating/updating products on magento.

Thanks in advance.

Answer: 
This should work

```
{
  "cart_item": {
    "quote_id": 7,
    "sku": "WJ01",
    "qty": 1,
    "product_option": {
      "extension_attributes": {
        "configurable_item_options": [
          {
            "option_id": "93",
            "option_value": 58
          },
          {
            "option_id": "141",
            "option_value": 169
          }
        ]
      }
    }
  }
}

```
Magento API is very slow prior to 1.7.0.0 like 1 simple product save (insert) every 1-2 seconds or even more. A configurable product without associated products takes longer to save.
 Try Magmi <http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Magmi_Wiki>. It inserts 20 products/seconds using raw queries. It does not have an update for 1.7.\* and it seems it won't have any soon.

Use it's API and not the CSV way.
<http://sourceforge.net/apps/mediawiki/magmi/index.php?title=Magmi_Datapump_API>

```
$dp->ingest($product_data);

```

Your code will have to create the configurable attributes (attributes with 'Use To Create Configurable Product' => 'yes' like size and color). In fact all attributes will have to be created prior using ingest() from admin or in your code which is fairly easy. The good part is that the new option values (X,XL, ...) will be added/updated by Magmi.

Magmi's code may not look like Magento's code but overall it does the job well.

Is required to have a fast import script not only by the obvious reason. Prior to adding data into Magento, the data usually needs to be cleaned and structured well. Because there is a lot of data and not all of the data matches the expected pattern, you'll have some errors, script will break and will add broken products.
If you need to add 10k products will take at least 3-4 hours, possibly a lot longer. Now imagine that you'll notice the first thing went wrong after 2 hours because you can't know the data was added well until the script finished.