# Get document id (\_id) inside a native script

**URL:** <https://discuss.elastic.co/t/get-document-id--id-inside-a-native-script/26376>\
**Category:** Elasticsearch\
**Created:** [July 28, 2015, 12:18am UTC](https://discuss.elastic.co/t/get-document-id--id-inside-a-native-script/26376 "2015-07-28T00:18:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jconwell](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jconwell/32/4059_2.png) [@jconwell](https://discuss.elastic.co/u/jconwell)\
**Post date:** [July 28, 2015, 12:18am UTC](https://discuss.elastic.co/t/get-document-id--id-inside-a-native-script/26376/1 "2015-07-28T00:18:18Z")

</div>

I've got a native script that runs as a transform when adding a new document. I need the document id but its not passed in as part of the script params. Is there any way to get ElasticSearch to pass in the document id? Or some way of reading it ... somehow?

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [July 28, 2015, 12:20am UTC](https://discuss.elastic.co/t/get-document-id--id-inside-a-native-script/26376/2 "2015-07-28T00:20:03Z")

</div>

You'd have to define it yourself as otherwise ES generates one automatically, and it cannot pass that to the script until it's been indexed (catch-22).

---

<div class="post-metadata">

**Author:** ![jconwell](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jconwell/32/4059_2.png) [@jconwell](https://discuss.elastic.co/u/jconwell)\
**Post date:** [July 28, 2015, 12:22am UTC](https://discuss.elastic.co/t/get-document-id--id-inside-a-native-script/26376/3 "2015-07-28T00:22:40Z")

</div>

I do define it and pass it in when calling prepareIndex(), but the native script (implementation of AbstractExecutableScript) only gets passed the values for \_source, and not the \_id.

Is there a way I can ask for the \_id?

---

<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, 11:58pm UTC](https://discuss.elastic.co/t/get-document-id--id-inside-a-native-script/26376/4 "2017-07-05T23:58:45Z")

</div>


