# cURL commands on Windows

**URL:** <https://discuss.elastic.co/t/curl-commands-on-windows/32833>\
**Category:** Elasticsearch\
**Created:** [October 23, 2015, 8:52am UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833 "2015-10-23T08:52:07Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sameer\_Dharur](https://avatars.discourse-cdn.com/v4/letter/s/58956e/32.png) [@Sameer\_Dharur](https://discuss.elastic.co/u/Sameer_Dharur)\
**Post date:** [October 23, 2015, 8:52am UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/1 "2015-10-23T08:52:07Z")

</div>

How exactly does one go about using cURL commands on Windows to manipulate Elasticsearch? What are the prerequisite installations required in order to use them? Could someone please guide me through this process?

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [October 23, 2015, 8:59am UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/2 "2015-10-23T08:59:41Z")

</div>

You don't have to use curl. It's just a HTTP client. On Windows I'd use Fiddler, Postman or similar instead.

---

<div class="post-metadata">

**Author:** ![Sameer\_Dharur](https://avatars.discourse-cdn.com/v4/letter/s/58956e/32.png) [@Sameer\_Dharur](https://discuss.elastic.co/u/Sameer_Dharur)\
**Post date:** [October 23, 2015, 10:59am UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/3 "2015-10-23T10:59:50Z")

</div>

Hey, I just discovered the wonderfully convenient Sense extension on the Chrome browser that does this very neatly. It takes cURL commands as the input and converts them to the required JSON files and indexes/searches accordingly.

Any idea how I can index multiple documents into ElasticSearch all at one go using these HTTP clients? That's the one leap I must take to complete my project.

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [October 23, 2015, 11:02am UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/4 "2015-10-23T11:02:44Z")

</div>

Yes, Sense is a good choice. Look into the [bulk API](https://www.elastic.co/guide/en/elasticsearch/reference/1.7/docs-bulk.html) for indexing multiple documents per request.

---

<div class="post-metadata">

**Author:** ![Sameer\_Dharur](https://avatars.discourse-cdn.com/v4/letter/s/58956e/32.png) [@Sameer\_Dharur](https://discuss.elastic.co/u/Sameer_Dharur)\
**Post date:** [October 25, 2015, 6:56pm UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/5 "2015-10-25T18:56:01Z")

</div>

Any idea how I could bulk-index directly from a file containing the logs?

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [October 25, 2015, 7:40pm UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/6 "2015-10-25T19:40:14Z")

</div>

Use Logstash.

---

<div class="post-metadata">

**Author:** ![Joshua\_Rich](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/joshua_rich/32/44953_2.png) [@Joshua\_Rich](https://discuss.elastic.co/u/Joshua_Rich)\
**Post date:** [October 26, 2015, 12:04am UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/7 "2015-10-26T00:04:49Z")

</div>

Instead of using curl, if you have Powershell installed, you can use the [Invoke-RestMethod](https://technet.microsoft.com/en-us/library/hh849971.aspx) cmdlet:

```auto
Invoke-RestMethod -Uri 'http://1.2.3.4:9200/_search' -Method 'POST' -Body '
{
  "query": {
    "match_all": { }
  }
}'

```

---

<div class="post-metadata">

**Author:** ![Vinuja1](https://avatars.discourse-cdn.com/v4/letter/v/c57346/32.png) [@Vinuja1](https://discuss.elastic.co/u/Vinuja1)\
**Post date:** [May 25, 2017, 5:48pm UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/8 "2017-05-25T17:48:16Z")

</div>

Hi I am new on ELK,  
Do you how I can do a cmdlet like :  
curl -XPUT -u elastic 'localhost:9200/\_xpack/security/user/elastic/\_password' -H "Content-Type: application/json" -d '{  
"password" : "elasticpassword"  
}'

on PowerShell please ?

Regards  
Vinuja

---

<div class="post-metadata">

**Author:** ![forloop](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/forloop/32/9021_2.png) [@forloop](https://discuss.elastic.co/u/forloop)\
**Post date:** [May 26, 2017, 5:17am UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/9 "2017-05-26T05:17:55Z")

</div>

The equivalent in PowerShell would be something like

```
$username = "elastic"
$currentPassword = "changeme"
$newPassword = "elasticpassword"
$bytes = [Text.Encoding]::UTF8.GetBytes(("{0}:{1}" -f $username, $currentPassword))
$authHeaderValue = [Convert]::ToBase64String($bytes)

$response = Invoke-RestMethod "http://localhost:9200/_xpack/security/user/elastic/_password" -Method Post `
                                -Headers @{Authorization=("Basic {0}" -f $authHeaderValue)} `
                                -Body "{
    `"password`" : `"$newPassword`"
}"
```

---

<div class="post-metadata">

**Author:** ![Vinuja1](https://avatars.discourse-cdn.com/v4/letter/v/c57346/32.png) [@Vinuja1](https://discuss.elastic.co/u/Vinuja1)\
**Post date:** [May 26, 2017, 12:59pm UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/10 "2017-05-26T12:59:44Z")

</div>

Thanks a lot forloop, it's working now.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 9:59pm UTC](https://discuss.elastic.co/t/curl-commands-on-windows/32833/11 "2017-07-05T21:59:58Z")

</div>


