# Java apis to create visualization in kibana

**URL:** <https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243>\
**Category:** Kibana\
**Created:** [June 8, 2016, 6:33pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243 "2016-06-08T18:33:21Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![abhi.kedari](https://avatars.discourse-cdn.com/v4/letter/a/f6c823/32.png) [@abhi.kedari](https://discuss.elastic.co/u/abhi.kedari)\
**Post date:** [June 8, 2016, 6:33pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243/1 "2016-06-08T18:33:21Z")

</div>

Is there any way I can create visualization in kibana from java api?

To be more specific my requirement is -

1. I have a portal page where user can define different parameters
2. When user submit requests, in background (java code) I want to create visualization using the provided parameters
3. Then get the iframe and embed it on to the page for user.

Any pointers to this will be very helpful.

Thanks,  
Abhishek

---

<div class="post-metadata">

**Author:** ![tsullivan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsullivan/32/31077_2.png) [@tsullivan](https://discuss.elastic.co/u/tsullivan)\
**Post date:** [June 8, 2016, 8:38pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243/2 "2016-06-08T20:38:01Z")

</div>

Hi Abhishek,

Yes, you can write a Java application that uses Elasticsearch APIs to create documents for the `.kibana` index. That's the index that stores the settings for Kibana's Index Patterns, Visualizations, Dashboards, Saved Searches, etc.

To get started, I would suggest manually create and save some visualizations and then use the Sense plugin to explore the structure of the `.kibana` index.

---

<div class="post-metadata">

**Author:** ![abhi.kedari](https://avatars.discourse-cdn.com/v4/letter/a/f6c823/32.png) [@abhi.kedari](https://discuss.elastic.co/u/abhi.kedari)\
**Post date:** [June 8, 2016, 9:00pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243/3 "2016-06-08T21:00:19Z")

</div>

What do you mean by create document for the .kibana index. Do you mean visualization right? not creating ELASTICSEARCH document?

Also I am not able to find .kibana index. Is it available in Version 4.0.3 ?

---

<div class="post-metadata">

**Author:** ![tsullivan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsullivan/32/31077_2.png) [@tsullivan](https://discuss.elastic.co/u/tsullivan)\
**Post date:** [June 8, 2016, 9:14pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243/4 "2016-06-08T21:14:19Z")

</div>

Sorry, I didn't realize you are using Kibana 4.0.3.

In newer versions of Kibana, 4.1+, there is an index for Kibana that stores all of the saved objects. So if you had Kibana 4.5 and the Sense plugin, you could do something like:

```auto
GET .kibana/visualization/_search

```

And you'd see result documents that look like (this is one generated by Beats Dashboard creator):

```auto
{
  "_index": ".kibana",
  "_type": "visualization",
  "_id": "Servers",
  "_score": 1,
  "_source": {
    "visState": "{\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMeticsAtAllLevels\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu.user_p\"}},{\"id\":\"3\",\"type\":\"avg\",\"schema\":\"metric\",\"params\":{\"field\":\"cpu.system_p\"}},{\"id\":\"4\",\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"mem.total\"}},{\"id\":\"5\",\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"mem.used\"}},{\"id\":\"8\",\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"mem.used_p\"}},{\"id\":\"6\",\"type\":\"max\",\"schema\":\"metric\",\"params\":{\"field\":\"mem.free\"}},{\"id\":\"9\",\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"beat.name\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}",
    "description": "",
    "title": "Servers",
    "version": 1,
    "savedSearchId": "System-stats",
    "kibanaSavedObjectMeta": {
      "searchSourceJSON": "{\"filter\":[]}"
    }
  }
}

```

So if you could programatically create those kind of documents yourself, and index them into the `.kibana` index.

But I am not sure exactly how this could be done in Kibana 4.0.x. It must have some method of storing saved objects in an Elasticsearch index.

---

<div class="post-metadata">

**Author:** ![abhi.kedari](https://avatars.discourse-cdn.com/v4/letter/a/f6c823/32.png) [@abhi.kedari](https://discuss.elastic.co/u/abhi.kedari)\
**Post date:** [June 8, 2016, 10:52pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243/5 "2016-06-08T22:52:45Z")

</div>

Thanks Tim. I looked at the documentation. For 4.1 onwards they do have mentioned for .kibana index but not before that. So I am not sure whether it is possible or not

---

<div class="post-metadata">

**Author:** ![abhi.kedari](https://avatars.discourse-cdn.com/v4/letter/a/f6c823/32.png) [@abhi.kedari](https://discuss.elastic.co/u/abhi.kedari)\
**Post date:** [June 8, 2016, 11:54pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243/6 "2016-06-08T23:54:10Z")

</div>

I found it with index name .kibana-4.  
Thanks for the help.

---

<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 6, 2017, 1:51pm UTC](https://discuss.elastic.co/t/java-apis-to-create-visualization-in-kibana/52243/7 "2017-07-06T13:51:07Z")

</div>


