diff --git a/services/pub/pub.service.js b/services/pub/pub.service.js
index 67bbc90c310843838c3ccd807c34914961e7ff40..15c5d3aa0851f776224cb0cb71ab979ae13ca158 100644
--- a/services/pub/pub.service.js
+++ b/services/pub/pub.service.js
@@ -4,7 +4,9 @@ import { BaseJsonService, redirector, pathParam, queryParam } from '../index.js'
 import { baseDescription } from './pub-common.js'
 
 const schema = Joi.object({
-  versions: Joi.array().items(Joi.string()).required(),
+  versions: Joi.array()
+    .items(Joi.object({ version: Joi.string().required() }))
+    .required(),
 }).required()
 
 const queryParamSchema = Joi.object({
@@ -45,14 +47,14 @@ class PubVersion extends BaseJsonService {
   async fetch({ packageName }) {
     return this._requestJson({
       schema,
-      url: `https://pub.dartlang.org/packages/${packageName}.json`,
+      url: `https://pub.dev/api/packages/${packageName}`,
     })
   }
 
   async handle({ packageName }, queryParams) {
     const data = await this.fetch({ packageName })
     const includePre = queryParams.include_prereleases !== undefined
-    const versions = data.versions
+    const versions = data.versions.map(x => x.version)
     const version = latest(versions, { pre: includePre })
     return renderVersionBadge({ version })
   }