diff --git a/swh/web/api/apidoc.py b/swh/web/api/apidoc.py
--- a/swh/web/api/apidoc.py
+++ b/swh/web/api/apidoc.py
@@ -295,7 +295,8 @@
                 doc_data = get_doc_data(f, route, noargs)
                 return make_api_response(request, None, doc_data)
 
-            view_name = 'api-%s' % route[1:-1].replace('/', '-')
+            view_name = 'api-%s-%s' % \
+                (api_version, route[1:-1].replace('/', '-'))
             APIUrls.add_url_pattern(urlpattern, doc_view, view_name)
 
         @wraps(f)
diff --git a/swh/web/api/apiurls.py b/swh/web/api/apiurls.py
--- a/swh/web/api/apiurls.py
+++ b/swh/web/api/apiurls.py
@@ -33,7 +33,7 @@
         """
         Add a route to the self-documenting API reference
         """
-        route_view_name = 'api-%s' % route[1:-1].replace('/', '-')
+        route_view_name = 'api-1-%s' % route[1:-1].replace('/', '-')
         if route not in cls._apidoc_routes:
             d = {'docstring': docstring,
                  'route_view_name': route_view_name}
diff --git a/swh/web/api/utils.py b/swh/web/api/utils.py
--- a/swh/web/api/utils.py
+++ b/swh/web/api/utils.py
@@ -59,20 +59,20 @@
     if 'target' in obj and 'target_type' in obj:
         if obj['target_type'] in ('revision', 'release', 'directory'):
             obj['target_url'] = \
-                reverse('api-%s' % obj['target_type'],
+                reverse('api-1-%s' % obj['target_type'],
                         url_args={'sha1_git': obj['target']})
         elif obj['target_type'] == 'content':
             obj['target_url'] = \
-                reverse('api-content',
+                reverse('api-1-content',
                         url_args={'q': 'sha1_git:' + obj['target']})
         elif obj['target_type'] == 'snapshot':
             obj['target_url'] = \
-                reverse('api-snapshot',
+                reverse('api-1-snapshot',
                         url_args={'snapshot_id': obj['target']})
 
     if 'author' in obj:
         author = obj['author']
-        obj['author_url'] = reverse('api-person',
+        obj['author_url'] = reverse('api-1-person',
                                     url_args={'person_id': author['id']})
 
     return obj
@@ -89,18 +89,18 @@
         target_type = directory['type']
         target = directory['target']
         if target_type == 'file':
-            directory['target_url'] = \
-                reverse('api-content', url_args={'q': 'sha1_git:%s' % target})
+            directory['target_url'] = reverse(
+                'api-1-content', url_args={'q': 'sha1_git:%s' % target})
             if context_url:
                 directory['file_url'] = context_url + directory['name'] + '/'
         elif target_type == 'dir':
-            directory['target_url'] = reverse('api-directory',
-                                              url_args={'sha1_git': target})
+            directory['target_url'] = reverse(
+                'api-1-directory', url_args={'sha1_git': target})
             if context_url:
                 directory['dir_url'] = context_url + directory['name'] + '/'
         else:
-            directory['target_url'] = reverse('api-revision',
-                                              url_args={'sha1_git': target})
+            directory['target_url'] = reverse(
+                'api-1-revision', url_args={'sha1_git': target})
             if context_url:
                 directory['rev_url'] = context_url + directory['name'] + '/'
 
@@ -112,7 +112,7 @@
 
     """
     c = content.copy()
-    c['content_url'] = reverse('api-content',
+    c['content_url'] = reverse('api-1-content',
                                url_args={'q': 'sha1:%s' % c['id']})
     return c
 
@@ -146,14 +146,15 @@
     if hash_algo in checksums:
         q = '%s:%s' % (hash_algo, checksums[hash_algo])
         if top_url:
-            content['content_url'] = reverse('api-content', url_args={'q': q})
-        content['data_url'] = reverse('api-content-raw', url_args={'q': q})
-        content['filetype_url'] = reverse('api-content-filetype',
-                                          url_args={'q': q})
-        content['language_url'] = reverse('api-content-language',
-                                          url_args={'q': q})
-        content['license_url'] = reverse('api-content-license',
-                                         url_args={'q': q})
+            content['content_url'] = reverse(
+                'api-1-content', url_args={'q': q})
+        content['data_url'] = reverse('api-1-content-raw', url_args={'q': q})
+        content['filetype_url'] = reverse(
+            'api-1-content-filetype', url_args={'q': q})
+        content['language_url'] = reverse(
+            'api-1-content-language', url_args={'q': q})
+        content['license_url'] = reverse(
+            'api-1-content-license', url_args={'q': q})
 
     return content
 
@@ -166,32 +167,31 @@
         revision: the revision as a dict
     """
 
-    revision['url'] = reverse('api-revision',
+    revision['url'] = reverse('api-1-revision',
                               url_args={'sha1_git': revision['id']})
-    revision['history_url'] = reverse('api-revision-log',
+    revision['history_url'] = reverse('api-1-revision-log',
                                       url_args={'sha1_git': revision['id']})
 
     if 'author' in revision:
         author = revision['author']
-        revision['author_url'] = reverse('api-person',
+        revision['author_url'] = reverse('api-1-person',
                                          url_args={'person_id': author['id']})
 
     if 'committer' in revision:
         committer = revision['committer']
-        revision['committer_url'] = \
-            reverse('api-person', url_args={'person_id': committer['id']})
+        revision['committer_url'] = reverse(
+            'api-1-person', url_args={'person_id': committer['id']})
 
     if 'directory' in revision:
-        revision['directory_url'] = \
-            reverse('api-directory',
-                    url_args={'sha1_git': revision['directory']})
+        revision['directory_url'] = reverse(
+            'api-1-directory', url_args={'sha1_git': revision['directory']})
 
     if 'parents' in revision:
         parents = []
         for parent in revision['parents']:
             parents.append({
                 'id': parent,
-                'url': reverse('api-revision', url_args={'sha1_git': parent})
+                'url': reverse('api-1-revision', url_args={'sha1_git': parent})
             })
 
         revision['parents'] = parents
@@ -199,13 +199,13 @@
     if 'children' in revision:
         children = []
         for child in revision['children']:
-            children.append(reverse('api-revision',
-                                    url_args={'sha1_git': child}))
+            children.append(reverse(
+                'api-1-revision', url_args={'sha1_git': child}))
         revision['children_urls'] = children
 
     if 'message_decoding_failed' in revision:
         revision['message_url'] = \
-            reverse('api-revision-raw-message',
+            reverse('api-1-revision-raw-message',
                     url_args={'sha1_git': revision['id']})
 
     return revision
diff --git a/swh/web/api/views/content.py b/swh/web/api/views/content.py
--- a/swh/web/api/views/content.py
+++ b/swh/web/api/views/content.py
@@ -17,7 +17,7 @@
 
 
 @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/filetype/',
-           'api-content-filetype', checksum_args=['q'])
+           'api-1-content-filetype', checksum_args=['q'])
 @api_doc('/content/filetype/')
 def api_content_filetype(request, q):
     """
@@ -62,7 +62,7 @@
 
 
 @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/language/',
-           'api-content-language', checksum_args=['q'])
+           'api-1-content-language', checksum_args=['q'])
 @api_doc('/content/language/')
 def api_content_language(request, q):
     """
@@ -108,7 +108,7 @@
 
 
 @api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/license/',
-           'api-content-license', checksum_args=['q'])
+           'api-1-content-license', checksum_args=['q'])
 @api_doc('/content/license/')
 def api_content_license(request, q):
     """
@@ -151,7 +151,8 @@
         enrich_fn=utils.enrich_metadata_endpoint)
 
 
-@api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/ctags/', 'api-content-ctags')
+@api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/ctags/',
+           'api-1-content-ctags')
 @api_doc('/content/ctags/', tags=['hidden'])
 def api_content_ctags(request, q):
     """
@@ -164,7 +165,7 @@
         enrich_fn=utils.enrich_metadata_endpoint)
 
 
-@api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/raw/', 'api-content-raw',
+@api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/raw/', 'api-1-content-raw',
            checksum_args=['q'])
 @api_doc('/content/raw/', handle_response=True)
 def api_content_raw(request, q):
@@ -212,7 +213,7 @@
     return response
 
 
-@api_route(r'/content/symbol/(?P<q>.+)/', 'api-content-symbol')
+@api_route(r'/content/symbol/(?P<q>.+)/', 'api-1-content-symbol')
 @api_doc('/content/symbol/', tags=['hidden'])
 def api_content_symbol(request, q=None):
     """Search content objects by `Ctags <http://ctags.sourceforge.net/>`_-style
@@ -243,7 +244,7 @@
                 query_params['per_page'] = per_page
 
             result['headers'] = {
-                'link-next': reverse('api-content-symbol', url_args={'q': q},
+                'link-next': reverse('api-1-content-symbol', url_args={'q': q},
                                      query_params=query_params)
             }
 
@@ -254,8 +255,8 @@
     return result
 
 
-@api_route(r'/content/known/search/', 'api-content-known', methods=['POST'])
-@api_route(r'/content/known/(?P<q>(?!search).*)/', 'api-content-known')
+@api_route(r'/content/known/search/', 'api-1-content-known', methods=['POST'])
+@api_route(r'/content/known/(?P<q>(?!search).*)/', 'api-1-content-known')
 @api_doc('/content/known/', tags=['hidden'])
 def api_check_content_known(request, q=None):
     """
@@ -330,7 +331,7 @@
     return response
 
 
-@api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/', 'api-content',
+@api_route(r'/content/(?P<q>[0-9a-z_:]*[0-9a-f]+)/', 'api-1-content',
            checksum_args=['q'])
 @api_doc('/content/')
 def api_content_metadata(request, q):
diff --git a/swh/web/api/views/directory.py b/swh/web/api/views/directory.py
--- a/swh/web/api/views/directory.py
+++ b/swh/web/api/views/directory.py
@@ -10,10 +10,10 @@
 from swh.web.api.views.utils import api_lookup
 
 
-@api_route(r'/directory/(?P<sha1_git>[0-9a-f]+)/', 'api-directory',
+@api_route(r'/directory/(?P<sha1_git>[0-9a-f]+)/', 'api-1-directory',
            checksum_args=['sha1_git'])
 @api_route(r'/directory/(?P<sha1_git>[0-9a-f]+)/(?P<path>.+)/',
-           'api-directory',
+           'api-1-directory',
            checksum_args=['sha1_git'])
 @api_doc('/directory/')
 def api_directory(request, sha1_git, path=None):
diff --git a/swh/web/api/views/identifiers.py b/swh/web/api/views/identifiers.py
--- a/swh/web/api/views/identifiers.py
+++ b/swh/web/api/views/identifiers.py
@@ -15,7 +15,7 @@
 
 
 @api_route(r'/resolve/(?P<swh_id>.*)/',
-           'api-resolve-swh-pid')
+           'api-1-resolve-swh-pid')
 @api_doc('/resolve/')
 def api_resolve_swh_pid(request, swh_id):
     """
diff --git a/swh/web/api/views/origin.py b/swh/web/api/views/origin.py
--- a/swh/web/api/views/origin.py
+++ b/swh/web/api/views/origin.py
@@ -18,8 +18,8 @@
 def _enrich_origin(origin):
     if 'id' in origin:
         o = origin.copy()
-        o['origin_visits_url'] = \
-            reverse('api-origin-visits', url_args={'origin_id': origin['id']})
+        o['origin_visits_url'] = reverse(
+            'api-1-origin-visits', url_args={'origin_id': origin['id']})
         return o
 
     return origin
@@ -29,22 +29,22 @@
                          with_origin_url, with_origin_visit_url):
     ov = origin_visit.copy()
     if with_origin_url:
-        ov['origin_url'] = reverse('api-origin',
+        ov['origin_url'] = reverse('api-1-origin',
                                    url_args={'origin_id': ov['origin']})
     if with_origin_visit_url:
-        ov['origin_visit_url'] = reverse('api-origin-visit',
+        ov['origin_visit_url'] = reverse('api-1-origin-visit',
                                          url_args={'origin_id': ov['origin'],
                                                    'visit_id': ov['visit']})
     snapshot = ov['snapshot']
     if snapshot:
-        ov['snapshot_url'] = reverse('api-snapshot',
+        ov['snapshot_url'] = reverse('api-1-snapshot',
                                      url_args={'snapshot_id': snapshot})
     else:
         ov['snapshot_url'] = None
     return ov
 
 
-@api_route(r'/origins/', 'api-origins')
+@api_route(r'/origins/', 'api-1-origins')
 @api_doc('/origins/', noargs=True)
 def api_origins(request):
     """
@@ -92,14 +92,15 @@
     if len(results) > origin_count:
         origin_from = results.pop()['id']
         response['headers']['link-next'] = reverse(
-            'api-origins', query_params={'origin_from': origin_from,
-                                         'origin_count': origin_count})
+            'api-1-origins',
+            query_params={'origin_from': origin_from,
+                          'origin_count': origin_count})
     return response
 
 
-@api_route(r'/origin/(?P<origin_id>[0-9]+)/', 'api-origin')
+@api_route(r'/origin/(?P<origin_id>[0-9]+)/', 'api-1-origin')
 @api_route(r'/origin/(?P<origin_type>[a-z]+)/url/(?P<origin_url>.+)/',
-           'api-origin')
+           'api-1-origin')
 @api_doc('/origin/')
 def api_origin(request, origin_id=None, origin_type=None, origin_url=None):
     """
@@ -179,7 +180,7 @@
 
 
 @api_route(r'/origin/search/(?P<url_pattern>.+)/',
-           'api-origin-search')
+           'api-1-origin-search')
 @api_doc('/origin/search/')
 def api_origin_search(request, url_pattern):
     """
@@ -235,7 +236,7 @@
         query_params['regexp'] = regexp
 
         result['headers'] = {
-            'link-next': reverse('api-origin-search',
+            'link-next': reverse('api-1-origin-search',
                                  url_args={'url_pattern': url_pattern},
                                  query_params=query_params)
         }
@@ -248,7 +249,7 @@
 
 
 @api_route(r'/origin/metadata-search/',
-           'api-origin-metadata-search')
+           'api-1-origin-metadata-search')
 @api_doc('/origin/metadata-search/', noargs=True, need_params=True)
 def api_origin_metadata_search(request):
     """
@@ -297,7 +298,7 @@
     }
 
 
-@api_route(r'/origin/(?P<origin_id>[0-9]+)/visits/', 'api-origin-visits')
+@api_route(r'/origin/(?P<origin_id>[0-9]+)/visits/', 'api-1-origin-visits')
 @api_doc('/origin/visits/')
 def api_origin_visits(request, origin_id):
     """
@@ -377,7 +378,7 @@
                 query_params['per_page'] = per_page
 
             result['headers'] = {
-                'link-next': reverse('api-origin-visits',
+                'link-next': reverse('api-1-origin-visits',
                                      url_args={'origin_id': origin_id},
                                      query_params=query_params)
             }
@@ -390,7 +391,7 @@
 
 
 @api_route(r'/origin/(?P<origin_id>[0-9]+)/visit/(?P<visit_id>[0-9]+)/',
-           'api-origin-visit')
+           'api-1-origin-visit')
 @api_doc('/origin/visit/')
 def api_origin_visit(request, origin_id, visit_id):
     """
diff --git a/swh/web/api/views/origin_save.py b/swh/web/api/views/origin_save.py
--- a/swh/web/api/views/origin_save.py
+++ b/swh/web/api/views/origin_save.py
@@ -13,7 +13,7 @@
 
 
 @api_route(r'/origin/save/(?P<origin_type>.+)/url/(?P<origin_url>.+)/',
-           'api-save-origin', methods=['GET', 'POST'],
+           'api-1-save-origin', methods=['GET', 'POST'],
            throttle_scope='swh_save_origin')
 @never_cache
 @api_doc('/origin/save/')
diff --git a/swh/web/api/views/person.py b/swh/web/api/views/person.py
--- a/swh/web/api/views/person.py
+++ b/swh/web/api/views/person.py
@@ -9,7 +9,7 @@
 from swh.web.api.views.utils import api_lookup
 
 
-@api_route(r'/person/(?P<person_id>[0-9]+)/', 'api-person')
+@api_route(r'/person/(?P<person_id>[0-9]+)/', 'api-1-person')
 @api_doc('/person/')
 def api_person(request, person_id):
     """
diff --git a/swh/web/api/views/release.py b/swh/web/api/views/release.py
--- a/swh/web/api/views/release.py
+++ b/swh/web/api/views/release.py
@@ -10,7 +10,7 @@
 from swh.web.api.views.utils import api_lookup
 
 
-@api_route(r'/release/(?P<sha1_git>[0-9a-f]+)/', 'api-release',
+@api_route(r'/release/(?P<sha1_git>[0-9a-f]+)/', 'api-1-release',
            checksum_args=['sha1_git'])
 @api_doc('/release/')
 def api_release(request, sha1_git):
diff --git a/swh/web/api/views/revision.py b/swh/web/api/views/revision.py
--- a/swh/web/api/views/revision.py
+++ b/swh/web/api/views/revision.py
@@ -49,16 +49,16 @@
 
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)/log/',
-           'api-revision-origin-log')
+           'api-1-revision-origin-log')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)/log/',
-           'api-revision-origin-log')
+           'api-1-revision-origin-log')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/ts/(?P<ts>.+)/log/',
-           'api-revision-origin-log')
+           'api-1-revision-origin-log')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)'
            r'/ts/(?P<ts>.+)/log/',
-           'api-revision-origin-log')
+           'api-1-revision-origin-log')
 @api_doc('/revision/origin/log/')
 def api_revision_log_by(request, origin_id,
                         branch_name='HEAD',
@@ -147,7 +147,7 @@
             query_params['per_page'] = per_page
 
         result['headers'] = {
-            'link-next': reverse('api-revision-origin-log', url_args=params,
+            'link-next': reverse('api-1-revision-origin-log', url_args=params,
                                  query_params=query_params)
         }
 
@@ -160,22 +160,22 @@
 
 
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)/directory/',
-           'api-revision-origin-directory')
+           'api-1-revision-origin-directory')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)/directory/(?P<path>.+)/',
-           'api-revision-origin-directory')
+           'api-1-revision-origin-directory')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)/directory/',
-           'api-revision-origin-directory')
+           'api-1-revision-origin-directory')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)/ts/(?P<ts>.+)/directory/',
-           'api-revision-origin-directory')
+           'api-1-revision-origin-directory')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)/directory/(?P<path>.+)/',
-           'api-revision-origin-directory')
+           'api-1-revision-origin-directory')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)/ts/(?P<ts>.+)'
            r'/directory/(?P<path>.+)/',
-           'api-revision-origin-directory')
+           'api-1-revision-origin-directory')
 @api_doc('/revision/origin/directory/', tags=['hidden'])
 def api_directory_through_revision_origin(request, origin_id,
                                           branch_name='HEAD',
@@ -198,15 +198,15 @@
 
 
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)/',
-           'api-revision-origin')
+           'api-1-revision-origin')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)/',
-           'api-revision-origin')
+           'api-1-revision-origin')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)'
            r'/branch/(?P<branch_name>.+)/ts/(?P<ts>.+)/',
-           'api-revision-origin')
+           'api-1-revision-origin')
 @api_route(r'/revision/origin/(?P<origin_id>[0-9]+)/ts/(?P<ts>.+)/',
-           'api-revision-origin')
+           'api-1-revision-origin')
 @api_doc('/revision/origin/')
 def api_revision_with_origin(request, origin_id,
                              branch_name='HEAD',
@@ -271,7 +271,7 @@
         enrich_fn=utils.enrich_revision)
 
 
-@api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/', 'api-revision',
+@api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/', 'api-1-revision',
            checksum_args=['sha1_git'])
 @api_doc('/revision/')
 def api_revision(request, sha1_git):
@@ -328,7 +328,7 @@
 
 
 @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/raw/',
-           'api-revision-raw-message', checksum_args=['sha1_git'])
+           'api-1-revision-raw-message', checksum_args=['sha1_git'])
 @api_doc('/revision/raw/', tags=['hidden'], handle_response=True)
 def api_revision_raw_message(request, sha1_git):
     """Return the raw data of the message of revision identified by sha1_git
@@ -342,9 +342,9 @@
 
 
 @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/directory/',
-           'api-revision-directory', checksum_args=['sha1_git'])
+           'api-1-revision-directory', checksum_args=['sha1_git'])
 @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/directory/(?P<dir_path>.+)/',
-           'api-revision-directory', checksum_args=['sha1_git'])
+           'api-1-revision-directory', checksum_args=['sha1_git'])
 @api_doc('/revision/directory/')
 def api_revision_directory(request, sha1_git,
                            dir_path=None,
@@ -387,11 +387,11 @@
                                   with_data=with_data)
 
 
-@api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/log/', 'api-revision-log',
+@api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)/log/', 'api-1-revision-log',
            checksum_args=['sha1_git'])
 @api_route(r'/revision/(?P<sha1_git>[0-9a-f]+)'
            r'/prev/(?P<prev_sha1s>[0-9a-f]*/*)/log/',
-           'api-revision-log', checksum_args=['sha1_git', 'prev_sha1s'])
+           'api-1-revision-log', checksum_args=['sha1_git', 'prev_sha1s'])
 @api_doc('/revision/log/')
 def api_revision_log(request, sha1_git, prev_sha1s=None):
     """
@@ -464,7 +464,7 @@
             query_params['per_page'] = per_page
 
         result['headers'] = {
-            'link-next': reverse('api-revision-log',
+            'link-next': reverse('api-1-revision-log',
                                  url_args={'sha1_git': new_last_sha1},
                                  query_params=query_params)
         }
diff --git a/swh/web/api/views/snapshot.py b/swh/web/api/views/snapshot.py
--- a/swh/web/api/views/snapshot.py
+++ b/swh/web/api/views/snapshot.py
@@ -12,7 +12,7 @@
 from swh.web.api.views.utils import api_lookup
 
 
-@api_route(r'/snapshot/(?P<snapshot_id>[0-9a-f]+)/', 'api-snapshot',
+@api_route(r'/snapshot/(?P<snapshot_id>[0-9a-f]+)/', 'api-1-snapshot',
            checksum_args=['snapshot_id'])
 @api_doc('/snapshot/')
 def api_snapshot(request, snapshot_id):
@@ -109,7 +109,7 @@
 
     if results['next_branch'] is not None:
         response['headers']['link-next'] = \
-            reverse('api-snapshot',
+            reverse('api-1-snapshot',
                     url_args={'snapshot_id': snapshot_id},
                     query_params={'branches_from': results['next_branch'],
                                   'branches_count': branches_count,
diff --git a/swh/web/api/views/stat.py b/swh/web/api/views/stat.py
--- a/swh/web/api/views/stat.py
+++ b/swh/web/api/views/stat.py
@@ -8,7 +8,7 @@
 from swh.web.api.apiurls import api_route
 
 
-@api_route(r'/stat/counters/', 'api-stat-counters')
+@api_route(r'/stat/counters/', 'api-1-stat-counters')
 @api_doc('/stat/counters/', noargs=True)
 def api_stats(request):
     """
diff --git a/swh/web/api/views/utils.py b/swh/web/api/views/utils.py
--- a/swh/web/api/views/utils.py
+++ b/swh/web/api/views/utils.py
@@ -55,10 +55,10 @@
     return Response({}, template_name='api/api.html')
 
 
-APIUrls.add_url_pattern(r'^$', api_home, view_name='api-homepage')
+APIUrls.add_url_pattern(r'^$', api_home, view_name='api-1-homepage')
 
 
-@api_route(r'/', 'api-endpoints')
+@api_route(r'/', 'api-1-endpoints')
 def api_endpoints(request):
     """Display the list of opened api endpoints.
 
diff --git a/swh/web/api/views/vault.py b/swh/web/api/views/vault.py
--- a/swh/web/api/views/vault.py
+++ b/swh/web/api/views/vault.py
@@ -32,7 +32,7 @@
 
 
 @api_route(r'/vault/directory/(?P<dir_id>[0-9a-f]+)/',
-           'api-vault-cook-directory', methods=['GET', 'POST'],
+           'api-1-vault-cook-directory', methods=['GET', 'POST'],
            checksum_args=['dir_id'],
            throttle_scope='swh_vault_cooking')
 @never_cache
@@ -83,13 +83,13 @@
         dir_id, ['sha1'], 'Only sha1_git is supported.')
 
     res = _dispatch_cook_progress(request, 'directory', obj_id)
-    res['fetch_url'] = reverse('api-vault-fetch-directory',
+    res['fetch_url'] = reverse('api-1-vault-fetch-directory',
                                url_args={'dir_id': dir_id})
     return res
 
 
 @api_route(r'/vault/directory/(?P<dir_id>[0-9a-f]+)/raw/',
-           'api-vault-fetch-directory',
+           'api-1-vault-fetch-directory',
            checksum_args=['dir_id'])
 @api_doc('/vault/directory/raw/', handle_response=True)
 def api_vault_fetch_directory(request, dir_id):
@@ -123,7 +123,7 @@
 
 
 @api_route(r'/vault/revision/(?P<rev_id>[0-9a-f]+)/gitfast/',
-           'api-vault-cook-revision_gitfast', methods=['GET', 'POST'],
+           'api-1-vault-cook-revision_gitfast', methods=['GET', 'POST'],
            checksum_args=['rev_id'],
            throttle_scope='swh_vault_cooking')
 @never_cache
@@ -175,13 +175,13 @@
         rev_id, ['sha1'], 'Only sha1_git is supported.')
 
     res = _dispatch_cook_progress(request, 'revision_gitfast', obj_id)
-    res['fetch_url'] = reverse('api-vault-fetch-revision_gitfast',
+    res['fetch_url'] = reverse('api-1-vault-fetch-revision_gitfast',
                                url_args={'rev_id': rev_id})
     return res
 
 
 @api_route(r'/vault/revision/(?P<rev_id>[0-9a-f]+)/gitfast/raw/',
-           'api-vault-fetch-revision_gitfast',
+           'api-1-vault-fetch-revision_gitfast',
            checksum_args=['rev_id'])
 @api_doc('/vault/revision/gitfast/raw/', handle_response=True)
 def api_vault_fetch_revision_gitfast(request, rev_id):
diff --git a/swh/web/templates/api/api.html b/swh/web/templates/api/api.html
--- a/swh/web/templates/api/api.html
+++ b/swh/web/templates/api/api.html
@@ -14,7 +14,7 @@
 {% endblock %}
 
 {% block content %}
-<div class="swh-api-doc">
+<div class="swh-api-1-doc">
   {% include 'includes/apidoc-header.html' %}
 </div>
 <script>
diff --git a/swh/web/templates/api/endpoints.html b/swh/web/templates/api/endpoints.html
--- a/swh/web/templates/api/endpoints.html
+++ b/swh/web/templates/api/endpoints.html
@@ -22,7 +22,7 @@
 {% endblock %}
 
 {% block content %}
-<div class="swh-api-doc">
+<div class="swh-api-1-doc">
   <p>
     Below you can find a list of the available endpoints for version 1 of the
     Software Heritage API. For a more general introduction please refer to
@@ -36,7 +36,7 @@
   </p>
 </div>
 
-<div class="swh-api-doc table-responsive">
+<div class="swh-api-1-doc table-responsive">
   <table class="table table-striped search-res swh-table" width="100%">
     <col width="200">
     <thead class="thead-default">
@@ -45,7 +45,7 @@
     </thead>
     <tbody>
       {% for route, doc in doc_routes %}
-        <tr class="swh-api-doc-route swh-tr-hover-highlight {% for tag in doc.tags %} swh-api-doc-route-{{ tag }} {% endfor %}">
+        <tr class="swh-api-1-doc-route swh-tr-hover-highlight {% for tag in doc.tags %} swh-api-1-doc-route-{{ tag }} {% endfor %}">
           {% if doc.tags|length > 0 %}
             <td id="{{ route }}">
               {% url doc.route_view_name %}
diff --git a/swh/web/templates/homepage.html b/swh/web/templates/homepage.html
--- a/swh/web/templates/homepage.html
+++ b/swh/web/templates/homepage.html
@@ -88,8 +88,8 @@
       </a>
     </div>
     <div class="col-md-3 swh-web-app-link" align="center">
-      <a href="{% url 'api-homepage' %}">
-        <img id="swh-web-api-img" alt="Software Heritage Web API" src="{% static 'img/swh-api.png' %}"/>
+      <a href="{% url 'api-1-homepage' %}">
+        <img id="swh-web-api-1-img" alt="Software Heritage Web API" src="{% static 'img/swh-api.png' %}"/>
         <h5>Web API</h5>
         <p>Query the archive programmatically using a RESTful API.</p>
       </a>
diff --git a/swh/web/templates/layout.html b/swh/web/templates/layout.html
--- a/swh/web/templates/layout.html
+++ b/swh/web/templates/layout.html
@@ -122,8 +122,8 @@
                 <p>Browse</p>
               </a>
             </li>
-            <li class="nav-item swh-api-item" title="Query the archive programmatically using a RESTful API">
-              <a href="{% url 'api-homepage' %}" class="nav-link swh-api-link">
+            <li class="nav-item swh-api-1-item" title="Query the archive programmatically using a RESTful API">
+              <a href="{% url 'api-1-homepage' %}" class="nav-link swh-api-1-link">
                 <img class="nav-icon" src="{% static 'img/swh-api.png' %}"/>
                 <p>Web API</p>
               </a>
@@ -196,7 +196,7 @@
         Heritage are available under their own copyright and licenses. <br />
         <span class="link-color">Terms of use: </span>
         <a href="https://www.softwareheritage.org/legal/bulk-access-terms-of-use/">Archive access</a>,
-        <a href="https://www.softwareheritage.org/legal/api-terms-of-use/">API</a>-
+        <a href="https://www.softwareheritage.org/legal/api-1-terms-of-use/">API</a>-
         <a href="https://www.softwareheritage.org/contact/">Contact</a>-
         <a href="{% url 'jslicenses' %}" rel="jslicense">JavaScript license information</a>
       </div>
diff --git a/swh/web/tests/admin/test_origin_save.py b/swh/web/tests/admin/test_origin_save.py
--- a/swh/web/tests/admin/test_origin_save.py
+++ b/swh/web/tests/admin/test_origin_save.py
@@ -123,7 +123,7 @@
     def test_accept_pending_save_request(self, mock_scheduler):
         origin_type = 'git'
         origin_url = 'https://v2.pikacode.com/bthate/botlib.git'
-        save_request_url = reverse('api-save-origin',
+        save_request_url = reverse('api-1-save-origin',
                                    url_args={'origin_type': origin_type,
                                              'origin_url': origin_url})
         response = self.client.post(save_request_url, data={},
@@ -172,7 +172,7 @@
     def test_reject_pending_save_request(self, mock_scheduler):
         origin_type = 'git'
         origin_url = 'https://wikipedia.com'
-        save_request_url = reverse('api-save-origin',
+        save_request_url = reverse('api-1-save-origin',
                                    url_args={'origin_type': origin_type,
                                              'origin_url': origin_url})
         response = self.client.post(save_request_url, data={},
diff --git a/swh/web/tests/api/test_utils.py b/swh/web/tests/api/test_utils.py
--- a/swh/web/tests/api/test_utils.py
+++ b/swh/web/tests/api/test_utils.py
@@ -113,10 +113,10 @@
         # given
 
         def reverse_test_context(view_name, url_args):
-            if view_name == 'api-content':
+            if view_name == 'api-1-content':
                 id = url_args['q']
                 return '/api/1/content/%s/' % id
-            elif view_name == 'api-person':
+            elif view_name == 'api-1-person':
                 id = url_args['person_id']
                 return '/api/1/person/%s/' % id
             else:
@@ -150,8 +150,8 @@
         })
 
         mock_django_reverse.assert_has_calls([
-                call('api-content', url_args={'q': 'sha1_git:123'}),
-                call('api-person', url_args={'person_id': 100})
+                call('api-1-content', url_args={'q': 'sha1_git:123'}),
+                call('api-1-person', url_args={'person_id': 100})
         ])
 
     @patch('swh.web.api.utils.reverse')
@@ -170,7 +170,7 @@
             'target_url': '/api/1/dir/23/'
         })
 
-        mock_django_reverse.assert_called_once_with('api-directory',
+        mock_django_reverse.assert_called_once_with('api-1-directory',
                                                     url_args={'sha1_git': '23'}) # noqa
 
     @patch('swh.web.api.utils.reverse')
@@ -189,7 +189,7 @@
             'target_url': '/api/1/rev/3/'
         })
 
-        mock_django_reverse.assert_called_once_with('api-revision',
+        mock_django_reverse.assert_called_once_with('api-1-revision',
                                                     url_args={'sha1_git': '3'})
 
     @patch('swh.web.api.utils.reverse')
@@ -208,7 +208,7 @@
             'target_url': '/api/1/rev/4/'
         })
 
-        mock_django_reverse.assert_called_once_with('api-release',
+        mock_django_reverse.assert_called_once_with('api-1-release',
                                                     url_args={'sha1_git': '4'})
 
     @patch('swh.web.api.utils.reverse')
@@ -236,7 +236,7 @@
         })
 
         mock_django_reverse.assert_called_once_with(
-            'api-content', url_args={'q': 'sha1_git:123'})
+            'api-1-content', url_args={'q': 'sha1_git:123'})
 
     @patch('swh.web.api.utils.reverse')
     def test_enrich_directory_with_context_and_type_file(
@@ -265,7 +265,7 @@
         })
 
         mock_django_reverse.assert_called_once_with(
-            'api-content', url_args={'q': 'sha1_git:789'})
+            'api-1-content', url_args={'q': 'sha1_git:789'})
 
     @patch('swh.web.api.utils.reverse')
     def test_enrich_directory_with_context_and_type_dir(
@@ -295,7 +295,7 @@
             '/some/prefix/path/emacs-42/'
         })
 
-        mock_django_reverse.assert_called_once_with('api-directory',
+        mock_django_reverse.assert_called_once_with('api-1-directory',
                                                     url_args={'sha1_git': '456'}) # noqa
 
     def test_enrich_content_without_hashes(self):
@@ -339,10 +339,10 @@
             )
 
             mock_django_reverse.assert_has_calls([
-                call('api-content-raw', url_args={'q': query_string}),
-                call('api-content-filetype', url_args={'q': query_string}),
-                call('api-content-language', url_args={'q': query_string}),
-                call('api-content-license', url_args={'q': query_string}),
+                call('api-1-content-raw', url_args={'q': query_string}),
+                call('api-1-content-filetype', url_args={'q': query_string}),
+                call('api-1-content-language', url_args={'q': query_string}),
+                call('api-1-content-license', url_args={'q': query_string}),
             ])
 
             mock_django_reverse.reset()
@@ -387,21 +387,21 @@
             )
 
             mock_django_reverse.assert_has_calls([
-                call('api-content', url_args={'q': query_string}),
-                call('api-content-raw', url_args={'q': query_string}),
-                call('api-content-filetype', url_args={'q': query_string}),
-                call('api-content-language', url_args={'q': query_string}),
-                call('api-content-license', url_args={'q': query_string}),
+                call('api-1-content', url_args={'q': query_string}),
+                call('api-1-content-raw', url_args={'q': query_string}),
+                call('api-1-content-filetype', url_args={'q': query_string}),
+                call('api-1-content-language', url_args={'q': query_string}),
+                call('api-1-content-license', url_args={'q': query_string}),
             ])
 
             mock_django_reverse.reset()
 
     def _reverse_context_test(self, view_name, url_args):
-        if view_name == 'api-revision':
+        if view_name == 'api-1-revision':
             return '/api/revision/%s/' % url_args['sha1_git']
-        elif view_name == 'api-revision-context':
+        elif view_name == 'api-1-revision-context':
             return '/api/revision/%s/prev/%s/' % (url_args['sha1_git'], url_args['context'])  # noqa
-        elif view_name == 'api-revision-log':
+        elif view_name == 'api-1-revision-log':
             if 'prev_sha1s' in url_args:
                 return '/api/revision/%s/prev/%s/log/' % (url_args['sha1_git'], url_args['prev_sha1s'])  # noqa
             else:
@@ -413,13 +413,13 @@
     ):
         # given
         def reverse_test(view_name, url_args):
-            if view_name == 'api-revision':
+            if view_name == 'api-1-revision':
                 return '/api/revision/' + url_args['sha1_git'] + '/'
-            elif view_name == 'api-revision-log':
+            elif view_name == 'api-1-revision-log':
                 return '/api/revision/' + url_args['sha1_git'] + '/log/'
-            elif view_name == 'api-directory':
+            elif view_name == 'api-1-directory':
                 return '/api/directory/' + url_args['sha1_git'] + '/'
-            elif view_name == 'api-person':
+            elif view_name == 'api-1-person':
                 return '/api/person/' + url_args['person_id'] + '/'
 
         mock_django_reverse.side_effect = reverse_test
@@ -448,11 +448,11 @@
         self.assertEqual(actual_revision, expected_revision)
 
         mock_django_reverse.assert_has_calls(
-            [call('api-revision', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision-log', url_args={'sha1_git': 'rev-id'}),
-             call('api-person', url_args={'person_id': '1'}),
-             call('api-person', url_args={'person_id': '2'}),
-             call('api-directory', url_args={'sha1_git': '123'})])
+            [call('api-1-revision', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision-log', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-person', url_args={'person_id': '1'}),
+             call('api-1-person', url_args={'person_id': '2'}),
+             call('api-1-directory', url_args={'sha1_git': '123'})])
 
     @patch('swh.web.api.utils.reverse')
     def test_enrich_revision_with_children_and_parent_no_dir(
@@ -481,10 +481,10 @@
         self.assertEqual(actual_revision, expected_revision)
 
         mock_django_reverse.assert_has_calls(
-            [call('api-revision', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision-log', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision', url_args={'sha1_git': '123'}),
-             call('api-revision', url_args={'sha1_git': '456'})])
+            [call('api-1-revision', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision-log', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision', url_args={'sha1_git': '123'}),
+             call('api-1-revision', url_args={'sha1_git': '456'})])
 
     @patch('swh.web.api.utils.reverse')
     def test_enrich_revision_no_context(self, mock_django_reverse):
@@ -511,20 +511,20 @@
         self.assertEqual(actual_revision, expected_revision)
 
         mock_django_reverse.assert_has_calls(
-            [call('api-revision', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision-log', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision', url_args={'sha1_git': '123'}),
-             call('api-revision', url_args={'sha1_git': '456'})])
+            [call('api-1-revision', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision-log', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision', url_args={'sha1_git': '123'}),
+             call('api-1-revision', url_args={'sha1_git': '456'})])
 
     def _reverse_rev_message_test(self, view_name, url_args):
-        if view_name == 'api-revision':
+        if view_name == 'api-1-revision':
             return '/api/revision/%s/' % url_args['sha1_git']
-        elif view_name == 'api-revision-log':
+        elif view_name == 'api-1-revision-log':
             if 'prev_sha1s' in url_args and url_args['prev_sha1s'] is not None:
                 return '/api/revision/%s/prev/%s/log/' % (url_args['sha1_git'], url_args['prev_sha1s'])  # noqa
             else:
                 return '/api/revision/%s/log/' % url_args['sha1_git']
-        elif view_name == 'api-revision-raw-message':
+        elif view_name == 'api-1-revision-raw-message':
             return '/api/revision/' + url_args['sha1_git'] + '/raw/'
         else:
             return '/api/revision/%s/prev/%s/' % (url_args['sha1_git'], url_args['context'])  # noqa
@@ -556,10 +556,10 @@
         self.assertEqual(actual_revision, expected_revision)
 
         mock_django_reverse.assert_has_calls(
-            [call('api-revision', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision-log', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision', url_args={'sha1_git': '123'}),
-             call('api-revision', url_args={'sha1_git': '456'})]
+            [call('api-1-revision', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision-log', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision', url_args={'sha1_git': '123'}),
+             call('api-1-revision', url_args={'sha1_git': '456'})]
         )
 
     @patch('swh.web.api.utils.reverse')
@@ -592,8 +592,8 @@
         self.assertEqual(actual_revision, expected_revision)
 
         mock_django_reverse.assert_has_calls(
-            [call('api-revision', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision-log', url_args={'sha1_git': 'rev-id'}),
-             call('api-revision', url_args={'sha1_git': '123'}),
-             call('api-revision', url_args={'sha1_git': '456'}),
-             call('api-revision-raw-message', url_args={'sha1_git': 'rev-id'})]) # noqa
+            [call('api-1-revision', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision-log', url_args={'sha1_git': 'rev-id'}),
+             call('api-1-revision', url_args={'sha1_git': '123'}),
+             call('api-1-revision', url_args={'sha1_git': '456'}),
+             call('api-1-revision-raw-message', url_args={'sha1_git': 'rev-id'})]) # noqa
diff --git a/swh/web/tests/api/views/test_content.py b/swh/web/tests/api/views/test_content.py
--- a/swh/web/tests/api/views/test_content.py
+++ b/swh/web/tests/api/views/test_content.py
@@ -24,13 +24,13 @@
     def test_api_content_filetype(self, content):
 
         self.content_add_mimetype(content['sha1'])
-        url = reverse('api-content-filetype',
+        url = reverse('api-1-content-filetype',
                       url_args={'q': 'sha1_git:%s' % content['sha1_git']})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 200)
         self.assertEqual(rv['Content-Type'], 'application/json')
-        content_url = reverse('api-content',
+        content_url = reverse('api-1-content',
                               url_args={'q': 'sha1:%s' % content['sha1']})
         expected_data = self.content_get_mimetype(content['sha1'])
         expected_data['content_url'] = content_url
@@ -39,7 +39,7 @@
     def test_api_content_filetype_sha_not_found(self):
         unknown_content_ = random_content()
 
-        url = reverse('api-content-filetype',
+        url = reverse('api-1-content-filetype',
                       url_args={'q': 'sha1:%s' % unknown_content_['sha1']})
         rv = self.client.get(url)
 
@@ -56,13 +56,13 @@
     def test_api_content_language(self, content):
 
         self.content_add_language(content['sha1'])
-        url = reverse('api-content-language',
+        url = reverse('api-1-content-language',
                       url_args={'q': 'sha1_git:%s' % content['sha1_git']})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 200)
         self.assertEqual(rv['Content-Type'], 'application/json')
-        content_url = reverse('api-content',
+        content_url = reverse('api-1-content',
                               url_args={'q': 'sha1:%s' % content['sha1']})
         expected_data = self.content_get_language(content['sha1'])
         expected_data['content_url'] = content_url
@@ -71,7 +71,7 @@
     def test_api_content_language_sha_not_found(self):
         unknown_content_ = random_content()
 
-        url = reverse('api-content-language',
+        url = reverse('api-1-content-language',
                       url_args={'q': 'sha1:%s' % unknown_content_['sha1']})
         rv = self.client.get(url)
 
@@ -96,7 +96,7 @@
                 if ctag['name'] == contents_with_ctags['symbol_name']:
                     expected_data[content_sha1] = ctag
                     break
-        url = reverse('api-content-symbol',
+        url = reverse('api-1-content-symbol',
                       url_args={'q': contents_with_ctags['symbol_name']},
                       query_params={'per_page': 100})
         rv = self.client.get(url)
@@ -106,11 +106,11 @@
         for entry in rv.data:
             content_sha1 = entry['sha1']
             expected_entry = expected_data[content_sha1]
-            for key, view_name in (('content_url', 'api-content'),
-                                   ('data_url', 'api-content-raw'),
-                                   ('license_url', 'api-content-license'),
-                                   ('language_url', 'api-content-language'),
-                                   ('filetype_url', 'api-content-filetype')):
+            for key, view_name in (('content_url', 'api-1-content'),
+                                   ('data_url', 'api-1-content-raw'),
+                                   ('license_url', 'api-1-content-license'),
+                                   ('language_url', 'api-1-content-language'),
+                                   ('filetype_url', 'api-1-content-filetype')):
                 expected_entry[key] = reverse(view_name,
                                               url_args={'q': 'sha1:%s' %
                                                         content_sha1})
@@ -119,12 +119,12 @@
             self.assertEqual(entry, expected_entry)
         self.assertFalse('Link' in rv)
 
-        url = reverse('api-content-symbol',
+        url = reverse('api-1-content-symbol',
                       url_args={'q': contents_with_ctags['symbol_name']},
                       query_params={'per_page': 2})
         rv = self.client.get(url)
 
-        next_url = reverse('api-content-symbol',
+        next_url = reverse('api-1-content-symbol',
                            url_args={'q': contents_with_ctags['symbol_name']},
                            query_params={'last_sha1': rv.data[1]['sha1'],
                                          'per_page': 2})
@@ -132,7 +132,7 @@
 
     def test_api_content_symbol_not_found(self):
 
-        url = reverse('api-content-symbol', url_args={'q': 'bar'})
+        url = reverse('api-1-content-symbol', url_args={'q': 'bar'})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 404)
@@ -149,13 +149,13 @@
     def test_api_content_ctags(self, content):
 
         self.content_add_ctags(content['sha1'])
-        url = reverse('api-content-ctags',
+        url = reverse('api-1-content-ctags',
                       url_args={'q': 'sha1_git:%s' % content['sha1_git']})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 200)
         self.assertEqual(rv['Content-Type'], 'application/json')
-        content_url = reverse('api-content',
+        content_url = reverse('api-1-content',
                               url_args={'q': 'sha1:%s' % content['sha1']})
         expected_data = list(self.content_get_ctags(content['sha1']))
         for e in expected_data:
@@ -168,13 +168,13 @@
     def test_api_content_license(self, content):
 
         self.content_add_license(content['sha1'])
-        url = reverse('api-content-license',
+        url = reverse('api-1-content-license',
                       url_args={'q': 'sha1_git:%s' % content['sha1_git']})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 200)
         self.assertEqual(rv['Content-Type'], 'application/json')
-        content_url = reverse('api-content',
+        content_url = reverse('api-1-content',
                               url_args={'q': 'sha1:%s' % content['sha1']})
         expected_data = self.content_get_license(content['sha1'])
         expected_data['content_url'] = content_url
@@ -183,7 +183,7 @@
     def test_api_content_license_sha_not_found(self):
         unknown_content_ = random_content()
 
-        url = reverse('api-content-license',
+        url = reverse('api-1-content-license',
                       url_args={'q': 'sha1:%s' % unknown_content_['sha1']})
         rv = self.client.get(url)
 
@@ -198,16 +198,16 @@
     @given(content())
     def test_api_content_metadata(self, content):
 
-        url = reverse('api-content', {'q': 'sha1:%s' % content['sha1']})
+        url = reverse('api-1-content', {'q': 'sha1:%s' % content['sha1']})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 200)
         self.assertEqual(rv['Content-Type'], 'application/json')
         expected_data = self.content_get_metadata(content['sha1'])
-        for key, view_name in (('data_url', 'api-content-raw'),
-                               ('license_url', 'api-content-license'),
-                               ('language_url', 'api-content-language'),
-                               ('filetype_url', 'api-content-filetype')):
+        for key, view_name in (('data_url', 'api-1-content-raw'),
+                               ('license_url', 'api-1-content-license'),
+                               ('language_url', 'api-1-content-language'),
+                               ('filetype_url', 'api-1-content-filetype')):
             expected_data[key] = reverse(view_name,
                                          url_args={'q': 'sha1:%s' %
                                                    content['sha1']})
@@ -216,7 +216,7 @@
     def test_api_content_not_found_as_json(self):
         unknown_content_ = random_content()
 
-        url = reverse('api-content',
+        url = reverse('api-1-content',
                       url_args={'q': 'sha1:%s' % unknown_content_['sha1']})
         rv = self.client.get(url)
         self.assertEqual(rv.status_code, 404)
@@ -230,7 +230,7 @@
     def test_api_content_not_found_as_yaml(self):
         unknown_content_ = random_content()
 
-        url = reverse('api-content',
+        url = reverse('api-1-content',
                       url_args={'q': 'sha256:%s' % unknown_content_['sha256']})
         rv = self.client.get(url, HTTP_ACCEPT='application/yaml')
 
@@ -246,7 +246,7 @@
     def test_api_content_raw_ko_not_found(self):
         unknown_content_ = random_content()
 
-        url = reverse('api-content-raw',
+        url = reverse('api-1-content-raw',
                       url_args={'q': 'sha1:%s' % unknown_content_['sha1']})
         rv = self.client.get(url)
 
@@ -261,7 +261,7 @@
     @given(content())
     def test_api_content_raw_text(self, content):
 
-        url = reverse('api-content-raw',
+        url = reverse('api-1-content-raw',
                       url_args={'q': 'sha1:%s' % content['sha1']})
 
         rv = self.client.get(url)
@@ -279,7 +279,7 @@
     @given(content())
     def test_api_content_raw_text_with_filename(self, content):
 
-        url = reverse('api-content-raw',
+        url = reverse('api-1-content-raw',
                       url_args={'q': 'sha1:%s' % content['sha1']},
                       query_params={'filename': 'filename.txt'})
         rv = self.client.get(url)
@@ -297,7 +297,7 @@
     @given(content())
     def test_api_check_content_known(self, content):
 
-        url = reverse('api-content-known',
+        url = reverse('api-1-content-known',
                       url_args={'q': content['sha1']})
         rv = self.client.get(url)
 
@@ -317,7 +317,7 @@
     @given(content())
     def test_api_check_content_known_as_yaml(self, content):
 
-        url = reverse('api-content-known',
+        url = reverse('api-1-content-known',
                       url_args={'q': content['sha1']})
         rv = self.client.get(url, HTTP_ACCEPT='application/yaml')
 
@@ -337,7 +337,7 @@
     @given(content())
     def test_api_check_content_known_post_as_yaml(self, content):
 
-        url = reverse('api-content-known')
+        url = reverse('api-1-content-known')
         rv = self.client.post(
             url,
             data={
@@ -361,7 +361,7 @@
     def test_api_check_content_known_not_found(self):
         unknown_content_ = random_content()
 
-        url = reverse('api-content-known',
+        url = reverse('api-1-content-known',
                       url_args={'q': unknown_content_['sha1']})
         rv = self.client.get(url)
 
@@ -379,13 +379,13 @@
 
     @given(content())
     def test_api_content_uppercase(self, content):
-        url = reverse('api-content-uppercase-checksum',
+        url = reverse('api-1-content-uppercase-checksum',
                       url_args={'q': content['sha1'].upper()})
 
         resp = self.client.get(url)
         self.assertEqual(resp.status_code, 302)
 
-        redirect_url = reverse('api-content',
+        redirect_url = reverse('api-1-content',
                                url_args={'q': content['sha1']})
 
         self.assertEqual(resp['location'], redirect_url)
diff --git a/swh/web/tests/api/views/test_directory.py b/swh/web/tests/api/views/test_directory.py
--- a/swh/web/tests/api/views/test_directory.py
+++ b/swh/web/tests/api/views/test_directory.py
@@ -19,7 +19,7 @@
     @given(directory())
     def test_api_directory(self, directory):
 
-        url = reverse('api-directory', url_args={'sha1_git': directory})
+        url = reverse('api-1-directory', url_args={'sha1_git': directory})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 200)
@@ -33,7 +33,7 @@
     def test_api_directory_not_found(self):
         unknown_directory_ = random_sha1()
 
-        url = reverse('api-directory',
+        url = reverse('api-1-directory',
                       url_args={'sha1_git': unknown_directory_})
         rv = self.client.get(url)
 
@@ -50,7 +50,7 @@
         directory_content = self.directory_ls(directory)
         path = random.choice(directory_content)
 
-        url = reverse('api-directory',
+        url = reverse('api-1-directory',
                       url_args={'sha1_git': directory,
                                 'path': path['name']})
         rv = self.client.get(url)
@@ -63,7 +63,7 @@
     def test_api_directory_with_path_not_found(self, directory):
 
         path = 'some/path/to/nonexistent/dir/'
-        url = reverse('api-directory',
+        url = reverse('api-1-directory',
                       url_args={'sha1_git': directory,
                                 'path': path})
         rv = self.client.get(url)
@@ -77,13 +77,13 @@
 
     @given(directory())
     def test_api_directory_uppercase(self, directory):
-        url = reverse('api-directory-uppercase-checksum',
+        url = reverse('api-1-directory-uppercase-checksum',
                       url_args={'sha1_git': directory.upper()})
 
         resp = self.client.get(url)
         self.assertEqual(resp.status_code, 302)
 
-        redirect_url = reverse('api-directory',
+        redirect_url = reverse('api-1-directory',
                                url_args={'sha1_git': directory})
 
         self.assertEqual(resp['location'], redirect_url)
@@ -92,15 +92,15 @@
     def _enrich_dir_data(cls, dir_data):
         if dir_data['type'] == 'file':
             dir_data['target_url'] = \
-                reverse('api-content',
+                reverse('api-1-content',
                         url_args={'q': 'sha1_git:%s' % dir_data['target']})
         elif dir_data['type'] == 'dir':
             dir_data['target_url'] = \
-                reverse('api-directory',
+                reverse('api-1-directory',
                         url_args={'sha1_git': dir_data['target']})
         elif dir_data['type'] == 'rev':
             dir_data['target_url'] = \
-                reverse('api-revision',
+                reverse('api-1-revision',
                         url_args={'sha1_git': dir_data['target']})
 
         return dir_data
diff --git a/swh/web/tests/api/views/test_identifiers.py b/swh/web/tests/api/views/test_identifiers.py
--- a/swh/web/tests/api/views/test_identifiers.py
+++ b/swh/web/tests/api/views/test_identifiers.py
@@ -34,7 +34,7 @@
 
             swh_id = 'swh:1:%s:%s;origin=%s' % (obj_type_short, obj_id,
                                                 origin['url'])
-            url = reverse('api-resolve-swh-pid', url_args={'swh_id': swh_id})
+            url = reverse('api-1-resolve-swh-pid', url_args={'swh_id': swh_id})
 
             resp = self.client.get(url)
 
@@ -64,7 +64,7 @@
     def test_swh_id_resolve_invalid(self):
         rev_id_invalid = '96db9023b8_foo_50d6c108e9a3'
         swh_id = 'swh:1:rev:%s' % rev_id_invalid
-        url = reverse('api-resolve-swh-pid', url_args={'swh_id': swh_id})
+        url = reverse('api-1-resolve-swh-pid', url_args={'swh_id': swh_id})
 
         resp = self.client.get(url)
 
@@ -84,7 +84,7 @@
 
             swh_id = 'swh:1:%s:%s' % (obj_type_short, obj_id)
 
-            url = reverse('api-resolve-swh-pid', url_args={'swh_id': swh_id})
+            url = reverse('api-1-resolve-swh-pid', url_args={'swh_id': swh_id})
 
             resp = self.client.get(url)
 
diff --git a/swh/web/tests/api/views/test_origin.py b/swh/web/tests/api/views/test_origin.py
--- a/swh/web/tests/api/views/test_origin.py
+++ b/swh/web/tests/api/views/test_origin.py
@@ -30,7 +30,7 @@
 
         mock_get_origin_visits.side_effect = ValueError(err_msg)
 
-        url = reverse('api-origin-visits', url_args={'origin_id': 2})
+        url = reverse('api-1-origin-visits', url_args={'origin_id': 2})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 400)
@@ -47,7 +47,7 @@
 
         mock_get_origin_visits.side_effect = StorageDBError(err_msg)
 
-        url = reverse('api-origin-visits', url_args={'origin_id': 2})
+        url = reverse('api-1-origin-visits', url_args={'origin_id': 2})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 503)
@@ -65,7 +65,7 @@
 
         mock_get_origin_visits.side_effect = StorageAPIError(err_msg)
 
-        url = reverse('api-origin-visits', url_args={'origin_id': 2})
+        url = reverse('api-1-origin-visits', url_args={'origin_id': 2})
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 503)
@@ -93,7 +93,7 @@
                 (None, all_visits[:2]),
                 (all_visits[1]['visit'], all_visits[2:4])):
 
-            url = reverse('api-origin-visits',
+            url = reverse('api-1-origin-visits',
                           url_args={'origin_id': origin_id},
                           query_params={'per_page': 2,
                                         'last_visit': last_visit})
@@ -105,11 +105,11 @@
 
             for expected_visit in expected_visits:
                 origin_visit_url = reverse(
-                    'api-origin-visit',
+                    'api-1-origin-visit',
                     url_args={'origin_id': origin_id,
                               'visit_id': expected_visit['visit']})
                 snapshot_url = reverse(
-                    'api-snapshot',
+                    'api-1-snapshot',
                     url_args={'snapshot_id': expected_visit['snapshot']})
                 expected_visit['origin_visit_url'] = origin_visit_url
                 expected_visit['snapshot_url'] = snapshot_url
@@ -127,7 +127,7 @@
             visit_id = origin_visit['visit']
             self.storage.snapshot_add(origin_id, origin_visit['visit'],
                                       new_snapshots[i])
-            url = reverse('api-origin-visit',
+            url = reverse('api-1-origin-visit',
                           url_args={'origin_id': origin_id,
                                     'visit_id': visit_id})
 
@@ -137,10 +137,10 @@
 
             expected_visit = self.origin_visit_get_by(origin_id, visit_id)
 
-            origin_url = reverse('api-origin',
+            origin_url = reverse('api-1-origin',
                                  url_args={'origin_id': origin_id})
             snapshot_url = reverse(
-                'api-snapshot',
+                'api-1-snapshot',
                 url_args={'snapshot_id': expected_visit['snapshot']})
 
             expected_visit['origin_url'] = origin_url
@@ -155,7 +155,7 @@
 
         max_visit_id = max([v['visit'] for v in all_visits])
 
-        url = reverse('api-origin-visit',
+        url = reverse('api-1-origin-visit',
                       url_args={'origin_id': origin['id'],
                                 'visit_id': max_visit_id + 1})
 
@@ -172,13 +172,13 @@
     @given(origin())
     def test_api_origin_by_id(self, origin):
 
-        url = reverse('api-origin', url_args={'origin_id': origin['id']})
+        url = reverse('api-1-origin', url_args={'origin_id': origin['id']})
 
         rv = self.client.get(url)
 
         expected_origin = self.origin_get(origin)
 
-        origin_visits_url = reverse('api-origin-visits',
+        origin_visits_url = reverse('api-1-origin-visits',
                                     url_args={'origin_id': origin['id']})
 
         expected_origin['origin_visits_url'] = origin_visits_url
@@ -190,14 +190,14 @@
     @given(origin())
     def test_api_origin_by_type_url(self, origin):
 
-        url = reverse('api-origin',
+        url = reverse('api-1-origin',
                       url_args={'origin_type': origin['type'],
                                 'origin_url': origin['url']})
         rv = self.client.get(url)
 
         expected_origin = self.origin_get(origin)
 
-        origin_visits_url = reverse('api-origin-visits',
+        origin_visits_url = reverse('api-1-origin-visits',
                                     url_args={'origin_id': origin['id']})
 
         expected_origin['origin_visits_url'] = origin_visits_url
@@ -209,7 +209,7 @@
     @given(new_origin())
     def test_api_origin_not_found(self, new_origin):
 
-        url = reverse('api-origin',
+        url = reverse('api-1-origin',
                       url_args={'origin_type': new_origin['type'],
                                 'origin_url': new_origin['url']})
         rv = self.client.get(url)
@@ -243,7 +243,7 @@
                     }
                 }]
 
-            url = reverse('api-origin-metadata-search',
+            url = reverse('api-1-origin-metadata-search',
                           query_params={'fulltext': 'Jane Doe'})
             rv = self.client.get(url)
 
@@ -294,7 +294,7 @@
                     }
                 }]
 
-            url = reverse('api-origin-metadata-search',
+            url = reverse('api-1-origin-metadata-search',
                           query_params={'fulltext': 'Jane Doe'})
             rv = self.client.get(url)
 
@@ -304,7 +304,7 @@
             mock_idx_storage.origin_intrinsic_metadata_search_fulltext \
                 .assert_called_with(conjunction=['Jane Doe'], limit=70)
 
-            url = reverse('api-origin-metadata-search',
+            url = reverse('api-1-origin-metadata-search',
                           query_params={'fulltext': 'Jane Doe',
                                         'limit': 10})
             rv = self.client.get(url)
@@ -315,7 +315,7 @@
             mock_idx_storage.origin_intrinsic_metadata_search_fulltext \
                 .assert_called_with(conjunction=['Jane Doe'], limit=10)
 
-            url = reverse('api-origin-metadata-search',
+            url = reverse('api-1-origin-metadata-search',
                           query_params={'fulltext': 'Jane Doe',
                                         'limit': 987})
             rv = self.client.get(url)
@@ -329,7 +329,7 @@
     @patch('swh.web.common.service.idx_storage')
     def test_api_origin_metadata_search_invalid(self, mock_idx_storage):
 
-        url = reverse('api-origin-metadata-search')
+        url = reverse('api-1-origin-metadata-search')
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 400, rv.content)
@@ -347,7 +347,7 @@
         max_origin_id = expected_origins[-1]['id']
         origin_count = random.randint(1, max_origin_id - origin_from)
 
-        url = reverse('api-origins',
+        url = reverse('api-1-origins',
                       query_params={'origin_from': origin_from,
                                     'origin_count': origin_count})
 
@@ -361,7 +361,7 @@
 
         for expected_origin in expected_origins:
             expected_origin['origin_visits_url'] = reverse(
-                'api-origin-visits',
+                'api-1-origin-visits',
                 url_args={'origin_id': expected_origin['id']})
 
         self.assertEqual(rv.data, expected_origins)
@@ -369,7 +369,7 @@
         next_origin_id = expected_origins[-1]['id']+1
         if self.storage.origin_get({'id': next_origin_id}):
             self.assertIn('Link', rv)
-            next_url = reverse('api-origins',
+            next_url = reverse('api-1-origins',
                                query_params={'origin_from': next_origin_id,
                                              'origin_count': origin_count})
             self.assertIn(next_url, rv['Link'])
diff --git a/swh/web/tests/api/views/test_origin_save.py b/swh/web/tests/api/views/test_origin_save.py
--- a/swh/web/tests/api/views/test_origin_save.py
+++ b/swh/web/tests/api/views/test_origin_save.py
@@ -32,7 +32,7 @@
             url='https://gitlab.com/user_to_exclude')
 
     def test_invalid_origin_type(self):
-        url = reverse('api-save-origin',
+        url = reverse('api-1-save-origin',
                       url_args={'origin_type': 'foo',
                                 'origin_url': 'https://github.com/torvalds/linux'}) # noqa
 
@@ -40,7 +40,7 @@
         self.assertEqual(response.status_code, 400)
 
     def test_invalid_origin_url(self):
-        url = reverse('api-save-origin',
+        url = reverse('api-1-save-origin',
                       url_args={'origin_type': 'git',
                                 'origin_url': 'bar'})
 
@@ -86,7 +86,7 @@
                 'id': 1,
              }]
 
-        url = reverse('api-save-origin',
+        url = reverse('api-1-save-origin',
                       url_args={'origin_type': 'git',
                                 'origin_url': origin_url})
 
@@ -125,7 +125,7 @@
                 'id': 1,
              }]
 
-        url = reverse('api-save-origin',
+        url = reverse('api-1-save-origin',
                       url_args={'origin_type': 'git',
                                 'origin_url': origin_url})
 
@@ -249,7 +249,7 @@
 
     def test_get_save_requests_unknown_origin(self):
         unknown_origin_url = 'https://gitlab.com/foo/bar'
-        url = reverse('api-save-origin',
+        url = reverse('api-1-save-origin',
                       url_args={'origin_type': 'git',
                                 'origin_url': unknown_origin_url})
         response = self.client.get(url)
diff --git a/swh/web/tests/api/views/test_person.py b/swh/web/tests/api/views/test_person.py
--- a/swh/web/tests/api/views/test_person.py
+++ b/swh/web/tests/api/views/test_person.py
@@ -18,7 +18,7 @@
     @given(person())
     def test_api_person(self, person):
 
-        url = reverse('api-person', url_args={'person_id': person})
+        url = reverse('api-1-person', url_args={'person_id': person})
 
         rv = self.client.get(url)
 
@@ -31,7 +31,7 @@
     def test_api_person_not_found(self):
         unknown_person_ = random.randint(1000, 10000000)
 
-        url = reverse('api-person', url_args={'person_id': unknown_person_})
+        url = reverse('api-1-person', url_args={'person_id': unknown_person_})
 
         rv = self.client.get(url)
 
diff --git a/swh/web/tests/api/views/test_release.py b/swh/web/tests/api/views/test_release.py
--- a/swh/web/tests/api/views/test_release.py
+++ b/swh/web/tests/api/views/test_release.py
@@ -21,16 +21,16 @@
     @given(release())
     def test_api_release(self, release):
 
-        url = reverse('api-release', url_args={'sha1_git': release})
+        url = reverse('api-1-release', url_args={'sha1_git': release})
 
         rv = self.client.get(url)
 
         expected_release = self.release_get(release)
         author_id = expected_release['author']['id']
         target_revision = expected_release['target']
-        author_url = reverse('api-person',
+        author_url = reverse('api-1-person',
                              url_args={'person_id': author_id})
-        target_url = reverse('api-revision',
+        target_url = reverse('api-1-revision',
                              url_args={'sha1_git': target_revision})
         expected_release['author_url'] = author_url
         expected_release['target_url'] = target_url
@@ -73,14 +73,14 @@
 
             self.storage.release_add([sample_release])
 
-            url = reverse('api-release', url_args={'sha1_git': new_rel_id})
+            url = reverse('api-1-release', url_args={'sha1_git': new_rel_id})
 
             rv = self.client.get(url)
 
             expected_release = self.release_get(new_rel_id)
 
             author_id = expected_release['author']['id']
-            author_url = reverse('api-person',
+            author_url = reverse('api-1-person',
                                  url_args={'person_id': author_id})
 
             if target_type == 'content':
@@ -88,7 +88,7 @@
             else:
                 url_args = {'sha1_git': target}
 
-            target_url = reverse('api-%s' % target_type,
+            target_url = reverse('api-1-%s' % target_type,
                                  url_args=url_args)
             expected_release['author_url'] = author_url
             expected_release['target_url'] = target_url
@@ -100,7 +100,7 @@
     def test_api_release_not_found(self):
         unknown_release_ = random_sha1()
 
-        url = reverse('api-release', url_args={'sha1_git': unknown_release_})
+        url = reverse('api-1-release', url_args={'sha1_git': unknown_release_})
 
         rv = self.client.get(url)
 
@@ -113,13 +113,13 @@
 
     @given(release())
     def test_api_release_uppercase(self, release):
-        url = reverse('api-release-uppercase-checksum',
+        url = reverse('api-1-release-uppercase-checksum',
                       url_args={'sha1_git': release.upper()})
 
         resp = self.client.get(url)
         self.assertEqual(resp.status_code, 302)
 
-        redirect_url = reverse('api-release-uppercase-checksum',
+        redirect_url = reverse('api-1-release-uppercase-checksum',
                                url_args={'sha1_git': release})
 
         self.assertEqual(resp['location'], redirect_url)
diff --git a/swh/web/tests/api/views/test_revision.py b/swh/web/tests/api/views/test_revision.py
--- a/swh/web/tests/api/views/test_revision.py
+++ b/swh/web/tests/api/views/test_revision.py
@@ -26,7 +26,7 @@
     @given(revision())
     def test_api_revision(self, revision):
 
-        url = reverse('api-revision', url_args={'sha1_git': revision})
+        url = reverse('api-1-revision', url_args={'sha1_git': revision})
         rv = self.client.get(url)
 
         expected_revision = self.revision_get(revision)
@@ -40,7 +40,7 @@
     def test_api_revision_not_found(self):
         unknown_revision_ = random_sha1()
 
-        url = reverse('api-revision',
+        url = reverse('api-1-revision',
                       url_args={'sha1_git': unknown_revision_})
         rv = self.client.get(url)
 
@@ -54,7 +54,7 @@
     @given(revision())
     def test_api_revision_raw_ok(self, revision):
 
-        url = reverse('api-revision-raw-message',
+        url = reverse('api-1-revision-raw-message',
                       url_args={'sha1_git': revision})
         rv = self.client.get(url)
 
@@ -72,7 +72,7 @@
 
         new_revision_id = hash_to_hex(new_revision['id'])
 
-        url = reverse('api-revision-raw-message',
+        url = reverse('api-1-revision-raw-message',
                       url_args={'sha1_git': new_revision_id})
 
         rv = self.client.get(url)
@@ -87,7 +87,7 @@
     def test_api_revision_raw_ko_no_rev(self):
         unknown_revision_ = random_sha1()
 
-        url = reverse('api-revision-raw-message',
+        url = reverse('api-1-revision-raw-message',
                       url_args={'sha1_git': unknown_revision_})
         rv = self.client.get(url)
 
@@ -101,7 +101,7 @@
     def test_api_revision_with_origin_not_found(self):
         unknown_origin_id_ = random.randint(1000, 1000000)
 
-        url = reverse('api-revision-origin',
+        url = reverse('api-1-revision-origin',
                       url_args={'origin_id': unknown_origin_id_})
         rv = self.client.get(url)
 
@@ -115,7 +115,7 @@
     @given(origin())
     def test_api_revision_with_origin(self, origin):
 
-        url = reverse('api-revision-origin',
+        url = reverse('api-1-revision-origin',
                       url_args={'origin_id': origin['id']})
         rv = self.client.get(url)
 
@@ -138,7 +138,7 @@
             list(b for b in snapshot['branches'].keys()
                  if snapshot['branches'][b]['target_type'] == 'revision'))
 
-        url = reverse('api-revision-origin',
+        url = reverse('api-1-revision-origin',
                       url_args={'origin_id': origin['id'],
                                 'branch_name': branch_name})
 
@@ -164,7 +164,7 @@
             list(b for b in snapshot['branches'].keys()
                  if snapshot['branches'][b]['target_type'] == 'revision'))
 
-        url = reverse('api-revision-origin',
+        url = reverse('api-1-revision-origin',
                       url_args={'origin_id': origin['id'],
                                 'branch_name': branch_name,
                                 'ts': visit['date']})
@@ -195,7 +195,7 @@
 
         formatted_date = date.strftime('Today is %B %d, %Y at %X')
 
-        url = reverse('api-revision-origin',
+        url = reverse('api-1-revision-origin',
                       url_args={'origin_id': origin['id'],
                                 'branch_name': branch_name,
                                 'ts': formatted_date})
@@ -214,7 +214,7 @@
     def test_api_directory_through_revision_origin_ko(self):
         unknown_origin_id_ = random.randint(1000, 1000000)
 
-        url = reverse('api-revision-origin-directory',
+        url = reverse('api-1-revision-origin-directory',
                       url_args={'origin_id': unknown_origin_id_})
         rv = self.client.get(url)
 
@@ -229,7 +229,7 @@
     @given(origin())
     def test_api_directory_through_revision_origin(self, origin):
 
-        url = reverse('api-revision-origin-directory',
+        url = reverse('api-1-revision-origin-directory',
                       url_args={'origin_id': origin['id']})
         rv = self.client.get(url)
 
@@ -241,29 +241,29 @@
         for entry in directory:
             if entry['type'] == 'dir':
                 entry['target_url'] = reverse(
-                    'api-directory',
+                    'api-1-directory',
                     url_args={'sha1_git': entry['target']}
                 )
                 entry['dir_url'] = reverse(
-                    'api-revision-origin-directory',
+                    'api-1-revision-origin-directory',
                     url_args={'origin_id': origin['id'],
                               'path': entry['name']})
             elif entry['type'] == 'file':
                 entry['target_url'] = reverse(
-                    'api-content',
+                    'api-1-content',
                     url_args={'q': 'sha1_git:%s' % entry['target']}
                 )
                 entry['file_url'] = reverse(
-                    'api-revision-origin-directory',
+                    'api-1-revision-origin-directory',
                     url_args={'origin_id': origin['id'],
                               'path': entry['name']})
             elif entry['type'] == 'rev':
                 entry['target_url'] = reverse(
-                    'api-revision',
+                    'api-1-revision',
                     url_args={'sha1_git': entry['target']}
                 )
                 entry['rev_url'] = reverse(
-                    'api-revision-origin-directory',
+                    'api-1-revision-origin-directory',
                     url_args={'origin_id': origin['id'],
                               'path': entry['name']})
 
@@ -283,7 +283,7 @@
 
         per_page = 10
 
-        url = reverse('api-revision-log', url_args={'sha1_git': revision},
+        url = reverse('api-1-revision-log', url_args={'sha1_git': revision},
                       query_params={'per_page': per_page})
 
         rv = self.client.get(url)
@@ -301,7 +301,7 @@
         if has_next:
             self.assertIn('Link', rv)
             next_log_url = reverse(
-                'api-revision-log',
+                'api-1-revision-log',
                 url_args={'sha1_git': expected_log[-1]['id']},
                 query_params={'per_page': per_page})
             self.assertIn(next_log_url, rv['Link'])
@@ -309,7 +309,7 @@
     def test_api_revision_log_not_found(self):
         unknown_revision_ = random_sha1()
 
-        url = reverse('api-revision-log',
+        url = reverse('api-1-revision-log',
                       url_args={'sha1_git': unknown_revision_})
 
         rv = self.client.get(url)
@@ -332,7 +332,7 @@
 
         per_page = 10
 
-        url = reverse('api-revision-log',
+        url = reverse('api-1-revision-log',
                       url_args={'sha1_git': rev,
                                 'prev_sha1s': prev_rev},
                       query_params={'per_page': per_page})
@@ -353,7 +353,7 @@
 
         per_page = 10
 
-        url = reverse('api-revision-origin-log',
+        url = reverse('api-1-revision-origin-log',
                       url_args={'origin_id': origin['id']},
                       query_params={'per_page': per_page})
 
@@ -375,7 +375,7 @@
         if has_next:
             self.assertIn('Link', rv)
             next_log_url = reverse(
-                'api-revision-origin-log',
+                'api-1-revision-origin-log',
                 url_args={'origin_id': origin['id'],
                           'branch_name': 'HEAD'},
                 query_params={'per_page': per_page,
@@ -387,7 +387,7 @@
 
         invalid_branch_name = 'foobar'
 
-        url = reverse('api-revision-origin-log',
+        url = reverse('api-1-revision-origin-log',
                       url_args={'origin_id': origin['id'],
                                 'branch_name': invalid_branch_name})
 
@@ -492,28 +492,28 @@
 
     def _enrich_revision(self, revision):
         author_url = reverse(
-            'api-person',
+            'api-1-person',
             url_args={'person_id': revision['author']['id']})
 
         committer_url = reverse(
-            'api-person',
+            'api-1-person',
             url_args={'person_id': revision['committer']['id']})
 
         directory_url = reverse(
-            'api-directory',
+            'api-1-directory',
             url_args={'sha1_git': revision['directory']})
 
-        history_url = reverse('api-revision-log',
+        history_url = reverse('api-1-revision-log',
                               url_args={'sha1_git': revision['id']})
 
         parents_id_url = []
         for p in revision['parents']:
             parents_id_url.append({
                 'id': p,
-                'url': reverse('api-revision', url_args={'sha1_git': p})
+                'url': reverse('api-1-revision', url_args={'sha1_git': p})
             })
 
-        revision_url = reverse('api-revision',
+        revision_url = reverse('api-1-revision',
                                url_args={'sha1_git': revision['id']})
 
         revision['author_url'] = author_url
@@ -527,13 +527,13 @@
 
     @given(revision())
     def test_api_revision_uppercase(self, revision):
-        url = reverse('api-revision-uppercase-checksum',
+        url = reverse('api-1-revision-uppercase-checksum',
                       url_args={'sha1_git': revision.upper()})
 
         resp = self.client.get(url)
         self.assertEqual(resp.status_code, 302)
 
-        redirect_url = reverse('api-revision',
+        redirect_url = reverse('api-1-revision',
                                url_args={'sha1_git': revision})
 
         self.assertEqual(resp['location'], redirect_url)
diff --git a/swh/web/tests/api/views/test_snapshot.py b/swh/web/tests/api/views/test_snapshot.py
--- a/swh/web/tests/api/views/test_snapshot.py
+++ b/swh/web/tests/api/views/test_snapshot.py
@@ -22,7 +22,7 @@
     @given(snapshot())
     def test_api_snapshot(self, snapshot):
 
-        url = reverse('api-snapshot',
+        url = reverse('api-1-snapshot',
                       url_args={'snapshot_id': snapshot})
         rv = self.client.get(url)
 
@@ -51,7 +51,7 @@
 
         while branches_offset < len(snapshot_branches):
             branches_from = snapshot_branches[branches_offset]['name']
-            url = reverse('api-snapshot',
+            url = reverse('api-1-snapshot',
                           url_args={'snapshot_id': snapshot},
                           query_params={'branches_from': branches_from,
                                         'branches_count': branches_count})
@@ -75,7 +75,7 @@
 
             if branches_offset < len(snapshot_branches):
                 next_url = reverse(
-                    'api-snapshot',
+                    'api-1-snapshot',
                     url_args={'snapshot_id': snapshot},
                     query_params={'branches_from': next_branch,
                                   'branches_count': branches_count})
@@ -83,7 +83,7 @@
             else:
                 self.assertFalse(rv.has_header('Link'))
 
-        url = reverse('api-snapshot',
+        url = reverse('api-1-snapshot',
                       url_args={'snapshot_id': snapshot})
         rv = self.client.get(url)
 
@@ -105,7 +105,7 @@
 
         target_type = random.choice(snapshot_branches)['target_type']
 
-        url = reverse('api-snapshot',
+        url = reverse('api-1-snapshot',
                       url_args={'snapshot_id': snapshot},
                       query_params={'target_types': target_type})
         rv = self.client.get(url)
@@ -121,12 +121,12 @@
     def test_api_snapshot_errors(self):
         unknown_snapshot_ = random_sha1()
 
-        url = reverse('api-snapshot',
+        url = reverse('api-1-snapshot',
                       url_args={'snapshot_id': '63ce369'})
         rv = self.client.get(url)
         self.assertEqual(rv.status_code, 400)
 
-        url = reverse('api-snapshot',
+        url = reverse('api-1-snapshot',
                       url_args={'snapshot_id': unknown_snapshot_})
         rv = self.client.get(url)
         self.assertEqual(rv.status_code, 404)
@@ -135,9 +135,9 @@
         def _get_branch_url(target_type, target):
             url = None
             if target_type == 'revision':
-                url = reverse('api-revision', url_args={'sha1_git': target})
+                url = reverse('api-1-revision', url_args={'sha1_git': target})
             if target_type == 'release':
-                url = reverse('api-release', url_args={'sha1_git': target})
+                url = reverse('api-1-release', url_args={'sha1_git': target})
             return url
 
         for branch in snapshot['branches'].keys():
@@ -165,13 +165,13 @@
 
     @given(snapshot())
     def test_api_snapshot_uppercase(self, snapshot):
-        url = reverse('api-snapshot-uppercase-checksum',
+        url = reverse('api-1-snapshot-uppercase-checksum',
                       url_args={'snapshot_id': snapshot.upper()})
 
         resp = self.client.get(url)
         self.assertEqual(resp.status_code, 302)
 
-        redirect_url = reverse('api-snapshot-uppercase-checksum',
+        redirect_url = reverse('api-1-snapshot-uppercase-checksum',
                                url_args={'snapshot_id': snapshot})
 
         self.assertEqual(resp['location'], redirect_url)
@@ -184,7 +184,7 @@
             snp_dict['branches'][branch] = None
             break
         self.storage.snapshot_add([snp_dict])
-        url = reverse('api-snapshot',
+        url = reverse('api-1-snapshot',
                       url_args={'snapshot_id': snp_id})
         rv = self.client.get(url)
         self.assertEqual(rv.status_code, 200, rv.data)
diff --git a/swh/web/tests/api/views/test_stat.py b/swh/web/tests/api/views/test_stat.py
--- a/swh/web/tests/api/views/test_stat.py
+++ b/swh/web/tests/api/views/test_stat.py
@@ -19,7 +19,7 @@
         mock_service.stat_counters.side_effect = ValueError(
             'voluntary error to check the bad request middleware.')
 
-        url = reverse('api-stat-counters')
+        url = reverse('api-1-stat-counters')
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 400)
@@ -34,7 +34,7 @@
         mock_service.stat_counters.side_effect = StorageDBError(
             'Storage exploded! Will be back online shortly!')
 
-        url = reverse('api-stat-counters')
+        url = reverse('api-1-stat-counters')
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 503)
@@ -52,7 +52,7 @@
             'Storage API dropped dead! Will resurrect from its ashes asap!'
         )
 
-        url = reverse('api-stat-counters')
+        url = reverse('api-1-stat-counters')
         rv = self.client.get(url)
 
         self.assertEqual(rv.status_code, 503)
@@ -66,7 +66,7 @@
 
     def test_api_1_stat_counters(self):
 
-        url = reverse('api-stat-counters')
+        url = reverse('api-1-stat-counters')
 
         rv = self.client.get(url)