To know if an identity has changed without using the event stream, you would need to periodically fetch the identity data and compare it to a previously stored version. Ory does not provide a built-in mechanism (other than event streams) to notify you of changes to an identity. Some possible approaches, based on the knowledge sources: -
Polling: Regularly call the Ory Identities API (e.g., using the getIdentity or listIdentities endpoints) and compare the returned identity data (such as traits, metadata, or timestamps like updated_at) to your previously stored data. If there are differences, the identity has changed. -
Webhooks: You can configure webhooks to trigger on certain flows (like registration or settings update) and have your backend receive those notifications. If you enable response parsing, you can even modify the identity in response to the webhook, but you can also use the webhook as a notification mechanism for changes during those flows. However, this only covers changes made through those specific flows, not all possible updates (e.g., admin API changes) [Modify identities via webhooks](
https://www.ory.sh/docs/guides/integrate-with-ory-cloud-through-webhooks#modify-identities). -
SCIM: If you use SCIM, you can track changes by polling the SCIM endpoints or by monitoring the
active
property for deactivation, but this is still a form of polling or indirect notification [SCIM events](
https://www.ory.sh/docs/kratos/manage-identities/scim#events). There is no mention in the knowledge sources of a built-in "last modified" timestamp or version field that you can rely on for efficient change detection, other than the general approach of polling and comparing data.
Summary: Without using event streams, you must rely on polling the API and comparing identity data, or use webhooks for specific flows. There is no built-in push notification or change flag outside of these mechanisms in the provided documentation.