# 8.3.9 - cannot parse the annotations extracted using system.historian.queryAnnotations

**URL:** <https://forum.inductiveautomation.com/t/8-3-9-cannot-parse-the-annotations-extracted-using-system-historian-queryannotations/117030>\
**Category:** Ignition\
**Tags:** scripting, ignition83\
**Created:** [September 9, 2026, 9:03am UTC](https://forum.inductiveautomation.com/t/8-3-9-cannot-parse-the-annotations-extracted-using-system-historian-queryannotations/117030 "2026-09-09T09:03:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![tristan.clare](https://avatars.discourse-cdn.com/v4/letter/t/67e7ee/32.png) [@tristan.clare](https://forum.inductiveautomation.com/u/tristan.clare)\
**Post date:** [September 9, 2026, 9:03am UTC](https://forum.inductiveautomation.com/t/8-3-9-cannot-parse-the-annotations-extracted-using-system-historian-queryannotations/117030/1 "2026-09-09T09:03:30Z")

</div>

The following code

```python
annotations = system.historian.queryAnnotations(
		paths=paths,
		startDate=system.date.addHours(system.date.now(), -1),
		endDate=system.date.now()
	)

	for anno in annotations.getResults():
		# HOW TO READ THE INFORMATION?
		logger.info(str(anno['source']))
		logger.info(str(anno.source))
		logger.info(str(anno.source()))

```

gives the error

> TypeError: 'com.inductiveautomation.historian.common.model.data.AnnotationPoint' object is unsubscriptable

I would like to display the following information for each annotation:

- path
- start time
- end time
- type
- data

How can I do?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [September 9, 2026, 4:20pm UTC](https://forum.inductiveautomation.com/t/8-3-9-cannot-parse-the-annotations-extracted-using-system-historian-queryannotations/117030/2 "2026-09-09T16:20:33Z")

</div>

Each element in `annotations.getResults()` will be an instance of [`AnnotationPoint`](https://sdk.inductiveautomation.com/javadoc/ignition83/8.3.9/com/inductiveautomation/historian/common/model/data/AnnotationPoint.html).  
This is a Java record, so you must extract values from it with named accessor _functions_; so to pull out the `Annotation` sub-record you use the [`value()`](https://sdk.inductiveautomation.com/javadoc/ignition83/8.3.9/com/inductiveautomation/historian/common/model/data/AnnotationPoint.html#value()) method, which returns an [`Annotation`](https://sdk.inductiveautomation.com/javadoc/ignition83/8.3.9/com/inductiveautomation/historian/common/model/data/Annotation.html) record which has three components, `author`, `notes,` and `type`.

So reworking your snippet, something like this should work to retrieve the innermost values off the annotation:

```python
for point in annotations.results:
	anno = point.value()
	notes = anno.notes()
	author = anno.author()
	type = anno.type()

```

And the base `anno` instance will have a start time, end time, source, etc _methods_ you can call, though they will return rich Java types that might require more coercion than you expect.
