Get actual value instead of ID in Address API for Country and State/Province
This is possible in the "trunk" version of CiviCRM, and will be available in CiviCRM 4.7.15, releasing January 4, 2017.  Earlier versions of CiviCRM don't have a StateProvince API.

Using the "Join" feature of the API, you can pull in fields from related tables.  See my screenshot for how I would construct an address pulling in actual state/province names (and/or state abbreviations) as well as country:

    $result = civicrm_api3('Address', 'get', array(
  'sequential' =&gt; 1,
  'return' =&gt; array("street_address", "supplemental_address_1", "supplemental_address_2", "city", "state_province_id.name", "state_province_id.abbreviation", "country_id.name"),
));




Before 4.7.0, API joins didn't exist - and before 4.7.15 there was no StateProvince API.  So in the past, developers would either implement their own StateProvince API or use a hybrid of API and BAO calls.