diff --git a/src/config.cc b/src/config.cc
index 9a18bb0..52f5ea1 100644
--- a/src/config.cc
+++ b/src/config.cc
@@ -44,6 +44,9 @@
 
 }  // namespace config_keys
 
+const char kWeaveUrl[] = "https://www.googleapis.com/weave/v1/";
+const char kDeprecatedUrl[] = "https://www.googleapis.com/clouddevices/v1/";
+
 namespace {
 
 const int kCurrentConfigVersion = 1;
@@ -60,7 +63,7 @@
 Config::Settings CreateDefaultSettings() {
   Config::Settings result;
   result.oauth_url = "https://accounts.google.com/o/oauth2/";
-  result.service_url = "https://www.googleapis.com/clouddevices/v1/";
+  result.service_url = kWeaveUrl;
   result.local_anonymous_access_role = AuthScope::kViewer;
   result.pairing_modes.emplace(PairingType::kPinCode);
   result.device_id = base::GenerateGUID();
@@ -162,8 +165,11 @@
   if (dict->GetString(config_keys::kOAuthURL, &tmp))
     set_oauth_url(tmp);
 
-  if (dict->GetString(config_keys::kServiceURL, &tmp))
+  if (dict->GetString(config_keys::kServiceURL, &tmp)) {
+    if (tmp == kDeprecatedUrl)
+      tmp = kWeaveUrl;
     set_service_url(tmp);
+  }
 
   if (dict->GetString(config_keys::kName, &tmp))
     set_name(tmp);
diff --git a/src/config_unittest.cc b/src/config_unittest.cc
index fbfd25f..10ed07e 100644
--- a/src/config_unittest.cc
+++ b/src/config_unittest.cc
@@ -53,8 +53,7 @@
   EXPECT_EQ("", GetSettings().client_secret);
   EXPECT_EQ("", GetSettings().api_key);
   EXPECT_EQ("https://accounts.google.com/o/oauth2/", GetSettings().oauth_url);
-  EXPECT_EQ("https://www.googleapis.com/clouddevices/v1/",
-            GetSettings().service_url);
+  EXPECT_EQ("https://www.googleapis.com/weave/v1/", GetSettings().service_url);
   EXPECT_EQ("", GetSettings().oem_name);
   EXPECT_EQ("", GetSettings().model_name);
   EXPECT_EQ("", GetSettings().model_id);
diff --git a/src/weave_unittest.cc b/src/weave_unittest.cc
index fb00cc9..63d3348 100644
--- a/src/weave_unittest.cc
+++ b/src/weave_unittest.cc
@@ -344,19 +344,17 @@
   auto draft = CreateDictionaryValue(kDeviceResource);
   auto response = CreateDictionaryValue(kRegistrationResponse);
   response->Set("deviceDraft", draft->DeepCopy());
-  ExpectRequest(
-      HttpClient::Method::kPatch,
-      "https://www.googleapis.com/clouddevices/v1/registrationTickets/"
-      "TICKET_ID?key=TEST_API_KEY",
-      ValueToString(*response));
+  ExpectRequest(HttpClient::Method::kPatch,
+                "https://www.googleapis.com/weave/v1/registrationTickets/"
+                "TICKET_ID?key=TEST_API_KEY",
+                ValueToString(*response));
 
   response = CreateDictionaryValue(kRegistrationFinalResponse);
   response->Set("deviceDraft", draft->DeepCopy());
-  ExpectRequest(
-      HttpClient::Method::kPost,
-      "https://www.googleapis.com/clouddevices/v1/registrationTickets/"
-      "TICKET_ID/finalize?key=TEST_API_KEY",
-      ValueToString(*response));
+  ExpectRequest(HttpClient::Method::kPost,
+                "https://www.googleapis.com/weave/v1/registrationTickets/"
+                "TICKET_ID/finalize?key=TEST_API_KEY",
+                ValueToString(*response));
 
   ExpectRequest(HttpClient::Method::kPost,
                 "https://accounts.google.com/o/oauth2/token",
