# Kibana SavedObject API

**URL:** https://discuss.elastic.co/t/kibana-savedobject-api/173831
**Category:** Kibana
**Created:** [March 25, 2019, 9:35pm UTC](https://discuss.elastic.co/t/kibana-savedobject-api/173831 "2019-03-25T21:35:18Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Joseph\_Mak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/joseph_mak/32/42230_2.png) [@Joseph\_Mak](https://discuss.elastic.co/u/Joseph_Mak)
#### Post date: [March 25, 2019, 9:35pm UTC](https://discuss.elastic.co/t/kibana-savedobject-api/173831/1 "2019-03-25T21:35:18Z")

</div>

I am able to use SavedObject API ([https://www.elastic.co/guide/en/kibana/current/saved-objects-api.html](https://www.elastic.co/guide/en/kibana/current/saved-objects-api.html)) via http POST in local elastic search by using localhost 5601.

However, in cloud Elastic Search there is https and username/password. How to pass this along in the POST?

I know you can pass in -u parameters in CURL. How to do this in a http post (in Java)? is there a Java API for Kibana?

---

<div class="post-metadata">

### Author: ![LizaD](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lizad/32/51074_2.png) [@LizaD](https://discuss.elastic.co/u/LizaD)
#### Post date: [March 26, 2019, 3:55pm UTC](https://discuss.elastic.co/t/kibana-savedobject-api/173831/2 "2019-03-26T15:55:49Z")

</div>

Hi,

I don't believe we have a Java API for Kibana, how about using HttpURLConnection in Java to do the request? [https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html](https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html)

Thanks.

---

<div class="post-metadata">

### Author: ![Joseph\_Mak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/joseph_mak/32/42230_2.png) [@Joseph\_Mak](https://discuss.elastic.co/u/Joseph_Mak)
#### Post date: [March 27, 2019, 3:19pm UTC](https://discuss.elastic.co/t/kibana-savedobject-api/173831/3 "2019-03-27T15:19:40Z")

</div>

So I am following the example here for  
[https://www.elastic.co/guide/en/kibana/current/saved-objects-api-create.html](https://www.elastic.co/guide/en/kibana/current/saved-objects-api-create.html)

This CURL command below does work for my local kibana, it created a index pattern for me:

curl -X POST "[http://localhost:5601/api/saved\_objects/index-pattern/my-pattern](http://localhost:5601/api/saved_objects/index-pattern/my-pattern)" -H 'kbn-xsrf: true' -H 'Content-Type: application/json' -d'  
{  
"attributes": {  
"title": "my-pattern-\*"  
}  
}  
'  
So I substituted the url [http://localhost:5601](http://localhost:5601) with my Cloud Kibana url, and try passing credentials along with -u username:password, but it didn't work, it didn't create an index on my kibana cloud. I am getting

curl: (52) Empty reply from server

So my question is... does the Kibana SavedObject API work for the cloud version? if so how to pass the credentials?

---

<div class="post-metadata">

### Author: ![Brandon\_Kobel](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/brandon_kobel/32/14829_2.png) [@Brandon\_Kobel](https://discuss.elastic.co/u/Brandon_Kobel)
#### Post date: [March 27, 2019, 7:17pm UTC](https://discuss.elastic.co/t/kibana-savedobject-api/173831/4 "2019-03-27T19:17:42Z")

</div>

@Joseph_Mak Kibana's saved object API does work for the cloud version. If you're using cURL to do so, you use the same `-u username:password` flag which you do locally. You can use the `-I` flag with curl to get additional information, which might be helpful in your situation.

---

<div class="post-metadata">

### Author: ![Joseph\_Mak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/joseph_mak/32/42230_2.png) [@Joseph\_Mak](https://discuss.elastic.co/u/Joseph_Mak)
#### Post date: [March 29, 2019, 6:46pm UTC](https://discuss.elastic.co/t/kibana-savedobject-api/173831/5 "2019-03-29T18:46:16Z")

</div>

Thank you... so my solution (java) is:

```
		String encoding = Base64.getEncoder().encodeToString((user + ":" + password).getBytes());
		HttpPost request = new HttpPost(<my https kibana url>);
		request.setHeader(HttpHeaders.AUTHORIZATION, "Basic " + encoding);
		request.setHeader("kbn-xsrf","true");
		String payload = <my json>
		StringEntity entity = new StringEntity(payload, ContentType.APPLICATION_JSON);
		request.setEntity(entity);

		HttpResponse response = httpClient.execute(request)
```

---

<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: [April 26, 2019, 6:46pm UTC](https://discuss.elastic.co/t/kibana-savedobject-api/173831/6 "2019-04-26T18:46:20Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
