diff --git a/lib/datasource/index.js b/lib/datasource/index.js
index 06b8712ace3e1be2e2fed902c1b0ec0999b57f09..b6134555c6b97263a3447c0c43c481d4d2c1d4a8 100644
--- a/lib/datasource/index.js
+++ b/lib/datasource/index.js
@@ -81,23 +81,23 @@ async function fetchReleases(config) {
     logger.info({ purlStr }, 'Cannot parse purl');
     return null;
   }
-  if (!datasources[purl.type]) {
-    logger.warn({ purlStr }, 'Unknown purl type: ' + purl.type);
+  if (!datasources[purl.datasource]) {
+    logger.warn({ purlStr }, 'Unknown purl type: ' + purl.datasource);
     return null;
   }
-  const dep = await datasources[purl.type].getPkgReleases(purl, config);
+  const dep = await datasources[purl.datasource].getPkgReleases(purl, config);
   addMetaData(purl, dep);
   return dep;
 }
 
 function supportsDigests(purlStr) {
   const purl = parse(purlStr);
-  return !!datasources[purl.type].getDigest;
+  return !!datasources[purl.datasource].getDigest;
 }
 
 function getDigest(config, value) {
   const purl = parse(config.purl);
-  return datasources[purl.type].getDigest(config, value);
+  return datasources[purl.datasource].getDigest(config, value);
 }
 
 module.exports = {
diff --git a/lib/datasource/metadata.js b/lib/datasource/metadata.js
index 03fdef982abfc5210a55fd7664a7f8351629681b..99d88ffa27993442cb66f5852ab89dacbd7d485e 100644
--- a/lib/datasource/metadata.js
+++ b/lib/datasource/metadata.js
@@ -70,13 +70,16 @@ function addMetaData(purl, dep) {
   }
   const depName = purl.lookupName.toLowerCase();
   if (
-    manualChangelogUrls[purl.type] &&
-    manualChangelogUrls[purl.type][depName]
+    manualChangelogUrls[purl.datasource] &&
+    manualChangelogUrls[purl.datasource][depName]
   ) {
-    dep.changelogUrl = manualChangelogUrls[purl.type][depName];
+    dep.changelogUrl = manualChangelogUrls[purl.datasource][depName];
   }
-  if (manualSourceUrls[purl.type] && manualSourceUrls[purl.type][depName]) {
-    dep.sourceUrl = manualSourceUrls[purl.type][depName];
+  if (
+    manualSourceUrls[purl.datasource] &&
+    manualSourceUrls[purl.datasource][depName]
+  ) {
+    dep.sourceUrl = manualSourceUrls[purl.datasource][depName];
   }
   if (
     !dep.sourceUrl &&
diff --git a/lib/util/purl.js b/lib/util/purl.js
index 7a112eb6e790ec5919ddfd85cfc5fc4773d144c4..2b4e35ae7eabc9a09f1af427c334c6cd9220c1b0 100644
--- a/lib/util/purl.js
+++ b/lib/util/purl.js
@@ -25,7 +25,7 @@ function parse(input) {
     [remaining, res.version] = parts;
   }
   parts = remaining.split('/');
-  [res.type, ...remaining] = parts;
+  [res.datasource, ...remaining] = parts;
   if (remaining.length === 1) {
     [res.name] = remaining;
     res.lookupName = res.name;
diff --git a/test/util/__snapshots__/purl.spec.js.snap b/test/util/__snapshots__/purl.spec.js.snap
index a30d63171babc00f6e2ae09bf99c749b91c69b80..dfb2156edc7e0698b77d9d22df2ebd5ef52ab9a0 100644
--- a/test/util/__snapshots__/purl.spec.js.snap
+++ b/test/util/__snapshots__/purl.spec.js.snap
@@ -2,52 +2,53 @@
 
 exports[`util/purl parse() parses namespaced npm 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "@foo/bar",
   "name": "bar",
   "namespace": "@foo",
   "qualifiers": Object {},
-  "type": "npm",
 }
 `;
 
 exports[`util/purl parse() parses namespaced npm with version 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "@foo/bar",
   "name": "bar",
   "namespace": "@foo",
   "qualifiers": Object {},
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses npm with version and 1 qualifier 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {
     "a": "b",
   },
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses npm with version and 2 qualifiers 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {
     "a": "b",
     "c": "d",
   },
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses npm with version and 2 qualifiers and subpath 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {
@@ -55,16 +56,15 @@ Object {
     "c": "d",
   },
   "subpath": "stop",
-  "type": "npm",
   "version": "1.0.0",
 }
 `;
 
 exports[`util/purl parse() parses simple npm 1`] = `
 Object {
+  "datasource": "npm",
   "lookupName": "foo",
   "name": "foo",
   "qualifiers": Object {},
-  "type": "npm",
 }
 `;