Crowd has a REST resource (/search) to make entity queries. It works fine with XML request bodies, but it does not support JSON request bodies because it cannot unmarshall instances of the abstract class SearchRestrictionEntity.
{
"message": "Can not construct instance of com.atlassian.crowd.plugin.rest.entity.SearchRestrictionEntity, problem: abstract types can only be instantiated with additional type information\n at [Source: org.apache.catalina.connector.CoyoteInputStream@680108cd; line: 1, column: 1]",
"status-code": 500,
"stack-trace": "org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.atlassian.crowd.plugin.rest.entity.SearchRestrictionEntity, problem: abstract types can only be instantiated with additional type information\n at [Source: org.apache.catalina.connector.CoyoteInputStream@680108cd; line: 1, column: 1]\n\tat org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)\n\tat