diff --git a/acceptance/openstack/identity/v3/endpoint_test.go b/acceptance/openstack/identity/v3/endpoint_test.go
index 5f166c4..b8c1dcc 100644
--- a/acceptance/openstack/identity/v3/endpoint_test.go
+++ b/acceptance/openstack/identity/v3/endpoint_test.go
@@ -66,7 +66,7 @@
 
 	// Enumerate the endpoints available for this service.
 	endpointResults, err := endpoints3.List(client, endpoints3.ListOpts{
-		Interface: endpoints3.InterfacePublic,
+		Interface: gophercloud.InterfacePublic,
 		ServiceID: computeService.ID,
 	})
 
diff --git a/endpoint_search.go b/endpoint_search.go
index 7611f19..4c89dc5 100644
--- a/endpoint_search.go
+++ b/endpoint_search.go
@@ -10,6 +10,20 @@
 	ErrEndpointNotFound = errors.New("No suitable endpoint could be found in the service catalog.")
 )
 
+// Interface describes the accessibility of a specific service endpoint.
+type Interface string
+
+const (
+	// InterfaceAdmin makes an endpoint only available to administrators.
+	InterfaceAdmin Interface = "admin"
+
+	// InterfacePublic makes an endpoint available to everyone.
+	InterfacePublic Interface = "public"
+
+	// InterfaceInternal makes an endpoint only available within the cluster.
+	InterfaceInternal Interface = "internal"
+)
+
 // EndpointOpts contains options for finding an endpoint for an Openstack client.
 type EndpointOpts struct {
 
@@ -25,9 +39,10 @@
 	// Region is the region in which the service resides.
 	Region string
 
-	// URLType is they type of endpoint to be returned (e.g., "public", "private").
-	// URLType is not required, and defaults to "public".
-	URLType string
+	// Interface is they type of endpoint to be returned: InterfacePublic, InterfaceInternal, or InterfaceAdmin
+	// Interface is not required, and defaults to InterfacePublic.
+	// Not all interface types are accepted by all providers or identity services.
+	Interface Interface
 }
 
 // EndpointLocator is a function that describes how to locate a single endpoint from a service catalog for a specific ProviderClient.
diff --git a/openstack/client.go b/openstack/client.go
index 7e9b628..3bbff12 100644
--- a/openstack/client.go
+++ b/openstack/client.go
@@ -153,13 +153,13 @@
 
 	// Extract the appropriate URL from the matching Endpoint.
 	for _, endpoint := range endpoints {
-		switch opts.URLType {
-		case "public", "":
+		switch opts.Interface {
+		case gophercloud.InterfacePublic:
 			return endpoint.PublicURL, nil
-		case "private":
+		case gophercloud.InterfaceInternal:
 			return endpoint.InternalURL, nil
 		default:
-			return "", fmt.Errorf("Unexpected URLType in endpoint query: %s", opts.URLType)
+			return "", fmt.Errorf("Unexpected interface in endpoint query: %s", opts.Interface)
 		}
 	}
 
@@ -195,17 +195,9 @@
 }
 
 func v3endpointLocator(v3Client *gophercloud.ServiceClient, opts gophercloud.EndpointOpts) (string, error) {
-	// Transform URLType into an Interface.
-	var endpointInterface = endpoints3.InterfacePublic
-	switch opts.URLType {
-	case "", "public":
-		endpointInterface = endpoints3.InterfacePublic
-	case "internal":
-		endpointInterface = endpoints3.InterfaceInternal
-	case "admin":
-		endpointInterface = endpoints3.InterfaceAdmin
-	default:
-		return "", fmt.Errorf("Unrecognized URLType: %s", opts.URLType)
+	// Default Interface to InterfacePublic, if it isn't provided.
+	if opts.Interface == "" {
+		opts.Interface = gophercloud.InterfacePublic
 	}
 
 	// Discover the service we're interested in.
@@ -241,7 +233,7 @@
 
 	// Enumerate the endpoints available for this service.
 	endpointResults, err := endpoints3.List(v3Client, endpoints3.ListOpts{
-		Interface: endpointInterface,
+		Interface: opts.Interface,
 		ServiceID: service.ID,
 	})
 	if err != nil {
diff --git a/openstack/identity/v3/endpoints/requests.go b/openstack/identity/v3/endpoints/requests.go
index 97cc3cf..65d505a 100644
--- a/openstack/identity/v3/endpoints/requests.go
+++ b/openstack/identity/v3/endpoints/requests.go
@@ -8,20 +8,6 @@
 	"github.com/rackspace/gophercloud/openstack/utils"
 )
 
-// Interface describes the availability of a specific service endpoint.
-type Interface string
-
-const (
-	// InterfaceAdmin makes an endpoint only available to administrators.
-	InterfaceAdmin Interface = "admin"
-
-	// InterfacePublic makes an endpoint available to everyone.
-	InterfacePublic Interface = "public"
-
-	// InterfaceInternal makes an endpoint only available within the cluster.
-	InterfaceInternal Interface = "internal"
-)
-
 // maybeString returns nil for empty strings and nil for empty.
 func maybeString(original string) *string {
 	if original != "" {
@@ -32,7 +18,7 @@
 
 // EndpointOpts contains the subset of Endpoint attributes that should be used to create or update an Endpoint.
 type EndpointOpts struct {
-	Interface Interface
+	Interface gophercloud.Interface
 	Name      string
 	Region    string
 	URL       string
@@ -101,7 +87,7 @@
 // ListOpts allows finer control over the the endpoints returned by a List call.
 // All fields are optional.
 type ListOpts struct {
-	Interface Interface
+	Interface gophercloud.Interface
 	ServiceID string
 	Page      int
 	PerPage   int
diff --git a/openstack/identity/v3/endpoints/requests_test.go b/openstack/identity/v3/endpoints/requests_test.go
index f5705a0..a7088bb 100644
--- a/openstack/identity/v3/endpoints/requests_test.go
+++ b/openstack/identity/v3/endpoints/requests_test.go
@@ -59,7 +59,7 @@
 	client := serviceClient()
 
 	result, err := Create(client, EndpointOpts{
-		Interface: InterfacePublic,
+		Interface: gophercloud.InterfacePublic,
 		Name:      "the-endiest-of-points",
 		Region:    "underground",
 		URL:       "https://1.2.3.4:9000/",
@@ -71,7 +71,7 @@
 
 	expected := &Endpoint{
 		ID:        "12",
-		Interface: InterfacePublic,
+		Interface: gophercloud.InterfacePublic,
 		Name:      "the-endiest-of-points",
 		Region:    "underground",
 		ServiceID: "asdfasdfasdfasdf",
@@ -136,7 +136,7 @@
 		Endpoints: []Endpoint{
 			Endpoint{
 				ID:        "12",
-				Interface: InterfacePublic,
+				Interface: gophercloud.InterfacePublic,
 				Name:      "the-endiest-of-points",
 				Region:    "underground",
 				ServiceID: "asdfasdfasdfasdf",
@@ -144,7 +144,7 @@
 			},
 			Endpoint{
 				ID:        "13",
-				Interface: InterfaceInternal,
+				Interface: gophercloud.InterfaceInternal,
 				Name:      "shhhh",
 				Region:    "underground",
 				ServiceID: "asdfasdfasdfasdf",
@@ -202,7 +202,7 @@
 
 	expected := &Endpoint{
 		ID:        "12",
-		Interface: InterfacePublic,
+		Interface: gophercloud.InterfacePublic,
 		Name:      "renamed",
 		Region:    "somewhere-else",
 		ServiceID: "asdfasdfasdfasdf",
diff --git a/openstack/identity/v3/endpoints/results.go b/openstack/identity/v3/endpoints/results.go
index e972404..940eebc 100644
--- a/openstack/identity/v3/endpoints/results.go
+++ b/openstack/identity/v3/endpoints/results.go
@@ -9,12 +9,12 @@
 
 // Endpoint describes the entry point for another service's API.
 type Endpoint struct {
-	ID        string    `json:"id"`
-	Interface Interface `json:"interface"`
-	Name      string    `json:"name"`
-	Region    string    `json:"region"`
-	ServiceID string    `json:"service_id"`
-	URL       string    `json:"url"`
+	ID        string                `json:"id"`
+	Interface gophercloud.Interface `json:"interface"`
+	Name      string                `json:"name"`
+	Region    string                `json:"region"`
+	ServiceID string                `json:"service_id"`
+	URL       string                `json:"url"`
 }
 
 // EndpointList contains a page of Endpoint results.
