Hi Dominic,
In your query you are asking for all snapshots of your artifact by its ObjectID. Your 'find' clause doesn't include a condition such as that State has changed.
Here is an example of how you can do that:
This would be the 'find' clause:
{$and: [{"ObjectID": 202805877388},{"_PreviousValues.State": {"$exists":true}}]}
Here is the full query:
https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/197887695532/artifact/snapshot/query.js?hydrate=["State","_PreviousValues.State"]&start=1&pagesize=2000&find={$and: [{"ObjectID": 202805877388},{"_PreviousValues.State": {"$exists":true}}]}&fields=["_SnapshotDate","_SnapshotNumber","FormattedID","Name","State","_PreviousValues.State"]
You can see that I added a condition of _PreviousValues.State exists. What this essentially means is that the query is asking only for snapshots of this ObjectID which do have the State field in the list of _PreviousValues. You should know that State will be included in _PreviousValues only when it changes. Generally, the _PreviousValues only will hold fields that changed.
In the full query URL you should replace the workspace objectID as well as the artifact ObjectID - to be what you need. You can see that we're asking for the _SnapshotDate which will give you the date you asked for and we're also hydrating on 'State' and '_PreviousValues.State' , which will show you the readable state values in your returned JSON.
I hope this helps.
Sagi