This is an old revision of the document!
Path Specifiers
Path specifiers use a specific syntax and require knowledge about the data you'll be working with. For example, given this Indigo event data:
{
"foo": 1234567890,
"bar": "Baz",
"data": ["Thing 1", "Thing 2"], # a list
"more_data": {'a': 1, 'b': 2}, # a dictionary
"timestamp": "2025-08-07T14:32:21",
}
You could use path specifiers like these to retrieve the associated data:
| Specifier | Result |
|---|---|
bar | “Baz” |
data | [“Thing 1”, “Thing 2”] |
more_data['b'] | 2 |
If you want to go deeper into the payload, specifiers can be chained together like this:
{
"foo": 1234567890,
"bar": "Baz",
"data": [
"Thing 1",
[
"Thing A",
"Thing B",
"Thing C"
]
],
"more_data": {
"a": 1,
"b": 2,
"c": [
1,
2,
3,
4,
5
]
},
"timestamp": "2025-08-07T14:32:21"
}
You can go deeper like this:
| Specifier | Result |
|---|---|
data[0] | “Thing 1” (The index of the list element, the index starts at zero) |
data[1][2] | “Thing C” # The second element (index 1) of “data” is a list and the third element (index 2) of that list is “Thing C” |
more_data.a | 1 # The value of key “a” is 1 |
more_data.c[3] | 4 # The value of key “c” is a list and the fourth element (index 3) of that list is 4 |
You can chain these path specifiers as needed, such as some_json[3].a.foo[9]. NOTE: if a path specifier is not provided, Indigo will return the entire payload. Any path that includes a collection (like the lists and dicts above), Indigo will convert it to JSON and respond with that data.