# Creating kibana visualizations dynamically

**URL:** https://discuss.elastic.co/t/creating-kibana-visualizations-dynamically/75740
**Category:** Kibana
**Created:** [February 20, 2017, 12:58pm UTC](https://discuss.elastic.co/t/creating-kibana-visualizations-dynamically/75740 "2017-02-20T12:58:51Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![aviral\_srivastava](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aviral_srivastava/32/98018_2.png) [@aviral\_srivastava](https://discuss.elastic.co/u/aviral_srivastava)
#### Post date: [February 20, 2017, 12:58pm UTC](https://discuss.elastic.co/t/creating-kibana-visualizations-dynamically/75740/1 "2017-02-20T12:58:51Z")

</div>

Hi,

I am using elasticsearch 2.1.0 and kibana 4.3.0.  
To create visualizations dynamically, first I created it manually.  
Then I exported the same visualization .json file from Settings--Objects--Visualizations.

The .json is as follows:

```
[
  {
    "_id": "company",
    "_type": "visualization",
    "_source": {
      "title": "company",
      "visState": "{\"type\":\"pie\",\"params\":{\"shareYAxis\":true,\"addTooltip\":true,\"addLegend\":true,\"isDonut\":false},\"aggs\":[{\"id\":\"1\",\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"company\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\"}}],\"listeners\":{}}",
      "uiStateJSON": "{}",
      "description": "",
      "version": 1,
      "kibanaSavedObjectMeta": {
        "searchSourceJSON": "{\"index\":\"t0hen\",\"query\":{\"query_string\":{\"query\":\"*\",\"analyze_wildcard\":true}},\"filter\":[]}"
      }
    }
  }
]

```

Then I deleted the above visualization and reposted it again to .kibana index

```
POST http://xx.xx.xx.xx:9200/.kibana/visualization/company
{
	"title": "company",
	"visState": {
		"type": "pie",
		"params": {
			"shareYAxis": true,
			"addTooltip": true,
			"addLegend": true,
			"isDonut": false
		},
		"aggs": [{
			"id": "1",
			"type": "count",
			"schema": "metric",
			"params": {}
		}, {
			"id": "2",
			"type": "terms",
			"schema": "segment",
			"params": {
				"field": "company",
				"size": 5,
				"order": "desc",
				"orderBy": "1"
			}
		}],
		"listeners": {}
	},
	"uiStateJSON": {},
	"description": "",
	"version": 1,
	"kibanaSavedObjectMeta": {
		"searchSourceJSON": {
			"index": "t0hen",
			"query": {
				"query_string": {
					"query": "*",
					"analyze_wildcard": true
				}
			},
			"filter": []
		}
	}
}

```

But, I am getting following error:

```
{
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "failed to parse [visState]"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "failed to parse [visState]",
    "caused_by": {
      "type": "illegal_argument_exception",
      "reason": "unknown property [type]"
    }
  },
  "status": 400
}

```

Can anybody please help.

---

<div class="post-metadata">

### Author: ![weltenwort](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/weltenwort/32/53885_2.png) [@weltenwort](https://discuss.elastic.co/u/weltenwort)
#### Post date: [February 20, 2017, 1:59pm UTC](https://discuss.elastic.co/t/creating-kibana-visualizations-dynamically/75740/2 "2017-02-20T13:59:52Z")

</div>

Hi @aviral_srivastava,

when posting the document to Elasticsearch, make sure to keep the `visState` field as one string with properly escaped nested quotes. From your sample `POST` body it looks like you've tries to post that field as an object while Elasticsearch expects a string.

---

<div class="post-metadata">

### Author: ![aviral\_srivastava](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aviral_srivastava/32/98018_2.png) [@aviral\_srivastava](https://discuss.elastic.co/u/aviral_srivastava)
#### Post date: [February 21, 2017, 6:09am UTC](https://discuss.elastic.co/t/creating-kibana-visualizations-dynamically/75740/3 "2017-02-21T06:09:32Z")

</div>

Thanks @weltenwort

You saved my time.

---

<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: [March 21, 2017, 6:10am UTC](https://discuss.elastic.co/t/creating-kibana-visualizations-dynamically/75740/4 "2017-03-21T06:10:12Z")

</div>

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

---

<div class="post-metadata">

### Author: ![cjcenizal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cjcenizal/32/11216_2.png) [@cjcenizal](https://discuss.elastic.co/u/cjcenizal)
#### Post date: [December 9, 2017, 12:18am UTC](https://discuss.elastic.co/t/creating-kibana-visualizations-dynamically/75740/5 "2017-12-09T00:18:43Z")

</div>

For anyone else coming upon this thread, we now have an API for creating saved objects such as visualizations. See [Kibana visualization and foreach?](https://discuss.elastic.co/t/kibana-visualization-and-foreach/110708/2) for more info.

CJ
