= CiviCRM API - Adding Custom Values to Case Get Getting entities filtered by the value of custom field is only available for Contacts. Below is a deconstruction of the get API function for Contacts. Hopefully it'll show where the custom field magic happens. Each method gets a section (with the file it is in parenthesis) which contains a list of the functions that it calls. Hopefully I'll add some explanations of the processes that occurs in each later on. == [=#civicrm_api3_contact_get civicrm_api3_contact_get (api/v2/Contact.php)] The API function. 1. [#_civicrm_api3_contact_get_supportanomalies _civicrm_api3_contact_get_supportanomalies (api/v3/Contact.php)] 1. [#_civicrm_api3_get_using_query_object _civicrm_api3_get_using_query_object (api\v3\utils.php)] 1. [#civicrm_api3_create_success civicrm_api3_create_success (api\v3\utils.php)] == [=#_civicrm_api3_contact_get_supportanomalies _civicrm_api3_contact_get_supportanomalies (api/v2/Contact.php)] Changes a few of the parameters around for consistency and convenience. //No functions called// == [=#_civicrm_api3_get_using_query_object _civicrm_api3_get_using_query_object (api\v3\utils.php)] The comment for this function says that it is a general function for more complex //get// requests that is only used currently for Contacts, but can, and should, be extended for use by other entities. However, there is explicit use of the Contact BAO object in the method, so that aint gonna work is it? 1. [#_civicrm_api3_get_options_from_params _civicrm_api3_get_options_from_params (api\v3\utils.php)] 1. civicrm_api($entity, 'getfields', array('version' => 3, 'action' => 'get')); 1. [#CRM_Contact_BAO_Query::convertFormValues CRM_Contact_BAO_Query::convertFormValues (CRM/Contact/BAO/Query.php)] 1. [#CRM_Core_DAO::createSqlFilter CRM_Core_DAO::createSqlFilter (CRM\Core\DAO.php)] 1. [#CRM_Contact_BAO_Query::apiQuery CRM_Contact_BAO_Query::apiQuery (CRM/Contact/BAO/Query.php)] == [=#civicrm_api3_create_success civicrm_api3_create_success (api\v3\utils.php)] This wraps the the values created from the specific API request with things like count and is_error, etc. It also does some legacy shenanigans. Calls nothing else of importance. == [=#_civicrm_api3_get_options_from_params _civicrm_api3_get_options_from_params (api\v3\utils.php)] //Not Checked// == [=#CRM_Contact_BAO_Query::convertFormValues CRM_Contact_BAO_Query::convertFormValues (CRM/Contact/BAO/Query.php)] //Not Checked// == [=#CRM_Core_DAO::createSqlFilter CRM_Core_DAO::createSqlFilter (CRM\Core\DAO.php)] //Not Checked//