diff --git a/www/mitaka/api/index.html b/www/mitaka/api/index.html
new file mode 100644
index 0000000000..6b27af3ef8
--- /dev/null
+++ b/www/mitaka/api/index.html
@@ -0,0 +1,65 @@
+{% set projects = PROJECT_DATA[SERIES] %}
+{% extends "templates/base.tmpl" %}
+{% block pagetitle %}API references{% endblock %}
+{% block title %}API references{% endblock %}
+{% block header %}
+{% endblock header %}
+{% block content %}
+
+
+
+
+
+
OpenStack {% if SERIES != 'latest' %}{{SERIES|title}}{% endif %} API Reference Documentation
+
+ This page contains documentation about the OpenStack API and how to use it.
+
+
+
+
+
+
+
+
+
+
+
API References
+ Combined
API Reference
+{% for project in projects|sort(attribute='service') %}
+{% if project.has_api_ref or project.has_api_guide or project.has_in_tree_api_docs %}
+ {{project.service}} ({{project.name}}):
+{% if project.has_api_ref %}
+
API Reference
+{% endif %}
+{% if project.has_in_tree_api_docs %}
+
API Guide
+{% endif %}
+{% if project.has_api_guide %}
+
API Guide
+{% endif %}
+
+{% endif %}
+{% endfor %}
+
+
+
+
+
+
+
Documentation treated like code, powered by the community - interested?
+
How To Contribute
+
+
+
+
+
+{% endblock content %}
diff --git a/www/newton/api/index.html b/www/newton/api/index.html
new file mode 100644
index 0000000000..6b27af3ef8
--- /dev/null
+++ b/www/newton/api/index.html
@@ -0,0 +1,65 @@
+{% set projects = PROJECT_DATA[SERIES] %}
+{% extends "templates/base.tmpl" %}
+{% block pagetitle %}API references{% endblock %}
+{% block title %}API references{% endblock %}
+{% block header %}
+{% endblock header %}
+{% block content %}
+
+
+
+
+
+
OpenStack {% if SERIES != 'latest' %}{{SERIES|title}}{% endif %} API Reference Documentation
+
+ This page contains documentation about the OpenStack API and how to use it.
+
+
+
+
+
+
+
+
+
+
+
API References
+ Combined
API Reference
+{% for project in projects|sort(attribute='service') %}
+{% if project.has_api_ref or project.has_api_guide or project.has_in_tree_api_docs %}
+ {{project.service}} ({{project.name}}):
+{% if project.has_api_ref %}
+
API Reference
+{% endif %}
+{% if project.has_in_tree_api_docs %}
+
API Guide
+{% endif %}
+{% if project.has_api_guide %}
+
API Guide
+{% endif %}
+
+{% endif %}
+{% endfor %}
+
+
+
+
+
+
+
Documentation treated like code, powered by the community - interested?
+
How To Contribute
+
+
+
+
+
+{% endblock content %}
diff --git a/www/ocata/api/index.html b/www/ocata/api/index.html
new file mode 100644
index 0000000000..6b27af3ef8
--- /dev/null
+++ b/www/ocata/api/index.html
@@ -0,0 +1,65 @@
+{% set projects = PROJECT_DATA[SERIES] %}
+{% extends "templates/base.tmpl" %}
+{% block pagetitle %}API references{% endblock %}
+{% block title %}API references{% endblock %}
+{% block header %}
+{% endblock header %}
+{% block content %}
+
+
+
+
+
+
OpenStack {% if SERIES != 'latest' %}{{SERIES|title}}{% endif %} API Reference Documentation
+
+ This page contains documentation about the OpenStack API and how to use it.
+
+
+
+
+
+
+
+
+
+
+
API References
+ Combined
API Reference
+{% for project in projects|sort(attribute='service') %}
+{% if project.has_api_ref or project.has_api_guide or project.has_in_tree_api_docs %}
+ {{project.service}} ({{project.name}}):
+{% if project.has_api_ref %}
+
API Reference
+{% endif %}
+{% if project.has_in_tree_api_docs %}
+
API Guide
+{% endif %}
+{% if project.has_api_guide %}
+
API Guide
+{% endif %}
+
+{% endif %}
+{% endfor %}
+
+
+
+
+
+
+
Documentation treated like code, powered by the community - interested?
+
How To Contribute
+
+
+
+
+
+{% endblock content %}
diff --git a/www/ocata/index.html b/www/ocata/index.html
index 69097c57f2..0522cc0976 100644
--- a/www/ocata/index.html
+++ b/www/ocata/index.html
@@ -81,7 +81,7 @@
diff --git a/www/project-data/mitaka.yaml b/www/project-data/mitaka.yaml
new file mode 100644
index 0000000000..bc78b8c99c
--- /dev/null
+++ b/www/project-data/mitaka.yaml
@@ -0,0 +1,127 @@
+---
+# Schema: See schema.yaml and README.txt
+
+- name: keystone
+ service: Identity service
+ service_type: identity
+ has_api_ref: true
+ type: service
+
+- name: glance
+ service: Image service
+ service_type: image
+ has_api_ref: true
+ type: service
+
+- name: nova
+ service: Compute service
+ service_type: compute
+ has_api_ref: true
+ has_api_guide: true
+ type: service
+
+- name: neutron
+ service: Networking service
+ service_type: network
+ has_api_ref: true
+ type: service
+
+- name: cinder
+ service: Block Storage service
+ service_type: block-storage
+ type: service
+ has_api_ref: true
+
+- name: ironic
+ service: Bare Metal service
+ service_type: baremetal
+ has_api_ref: true
+ type: service
+
+- name: magnum
+ service: Container Infrastructure Management service
+ service_type: container-infrastructure-management
+ has_api_ref: true
+ type: service
+
+- name: trove
+ service: Database service
+ service_type: database
+ has_api_ref: true
+ type: service
+
+- name: designate
+ service: DNS service
+ service_type: dns
+ has_api_ref: true
+ type: service
+
+- name: barbican
+ service: Key Manager service
+ service_type: key-manager
+ has_api_guide: true
+ has_api_ref: true
+ type: service
+
+- name: zaqar
+ service: Messaging service
+ service_type: message
+ has_api_ref: true
+ type: service
+
+- name: swift
+ service: Object Storage service
+ service_type: object-store
+ has_api_ref: true
+ type: service
+
+- name: heat
+ service: Orchestration service
+ service_type: orchestration
+ has_in_tree_api_docs: true
+ has_api_ref: true
+ type: service
+
+- name: manila
+ service: Shared File Systems service
+ service_type: shared-file-system
+ has_api_ref: true
+ type: service
+
+- name: sahara
+ service: Data Processing service
+ service_type: data-processing
+ has_api_ref: true
+ type: service
+
+- name: murano
+ service: Application Catalog service
+ service_type: application-catalog
+ type: service
+ has_api_ref: true
+
+- name: senlin
+ service: Clustering service
+ service_type: resource-cluster
+ type: service
+ has_api_ref: true
+
+- name: tacker
+ service: NFV Orchestration service
+ service_type: nfv-orchestration
+ type: service
+ has_api_ref: true
+
+- name: searchlight
+ service: Search service
+ # NOTE(dhellmann): This causes /search/ to redirect to the
+ # searchlight documentation.
+ service_type: search
+ type: service
+ has_api_ref: true
+
+- name: octavia
+ service: Load-balancer service
+ service_type: load-balancer
+ has_api_ref: true
+ type: service
diff --git a/www/project-data/newton.yaml b/www/project-data/newton.yaml
new file mode 100644
index 0000000000..266efa5811
--- /dev/null
+++ b/www/project-data/newton.yaml
@@ -0,0 +1,120 @@
+---
+# Schema: See schema.yaml and README.txt
+
+- name: keystone
+ service: Identity service
+ service_type: identity
+ has_api_ref: true
+ type: service
+
+- name: glance
+ service: Image service
+ service_type: image
+ has_api_ref: true
+ type: service
+
+- name: nova
+ service: Compute service
+ service_type: compute
+ has_api_ref: true
+ has_api_guide: true
+ type: service
+
+- name: neutron
+ service: Networking service
+ service_type: network
+ has_api_ref: true
+ type: service
+
+- name: cinder
+ service: Block Storage service
+ service_type: block-storage
+ type: service
+ has_api_ref: true
+
+- name: ironic
+ service: Bare Metal service
+ service_type: baremetal
+ has_api_ref: true
+ type: service
+
+- name: magnum
+ service: Container Infrastructure Management service
+ service_type: container-infrastructure-management
+ has_api_ref: true
+ type: service
+
+- name: trove
+ service: Database service
+ service_type: database
+ has_api_ref: true
+ type: service
+
+- name: designate
+ service: DNS service
+ service_type: dns
+ has_api_ref: true
+ type: service
+
+- name: barbican
+ service: Key Manager service
+ service_type: key-manager
+ has_api_guide: true
+ has_api_ref: true
+ type: service
+
+- name: zaqar
+ service: Messaging service
+ service_type: message
+ has_api_ref: true
+ type: service
+
+- name: swift
+ service: Object Storage service
+ service_type: object-store
+ has_api_ref: true
+ type: service
+
+- name: manila
+ service: Shared File Systems service
+ service_type: shared-file-system
+ has_api_ref: true
+ type: service
+
+- name: sahara
+ service: Data Processing service
+ service_type: data-processing
+ has_api_ref: true
+ type: service
+
+- name: murano
+ service: Application Catalog service
+ service_type: application-catalog
+ type: service
+ has_api_ref: true
+
+- name: tacker
+ service: NFV Orchestration service
+ service_type: nfv-orchestration
+ type: service
+ has_api_ref: true
+
+- name: searchlight
+ service: Search service
+ # NOTE(dhellmann): This causes /search/ to redirect to the
+ # searchlight documentation.
+ service_type: search
+ type: service
+ has_api_ref: true
+
+- name: octavia
+ service: Load-balancer service
+ service_type: load-balancer
+ has_api_ref: true
+ type: service
+
+- name: karbor
+ service: Data Protection Orchestration Service
+ service_type: data-protection-orchestration
+ has_api_ref: true
+ type: service
diff --git a/www/project-data/ocata.yaml b/www/project-data/ocata.yaml
new file mode 100644
index 0000000000..7df841e29b
--- /dev/null
+++ b/www/project-data/ocata.yaml
@@ -0,0 +1,133 @@
+---
+# Schema: See schema.yaml and README.txt
+
+- name: keystone
+ service: Identity service
+ service_type: identity
+ has_api_ref: true
+ type: service
+
+- name: glance
+ service: Image service
+ service_type: image
+ has_api_ref: true
+ type: service
+
+- name: nova
+ service: Compute service
+ service_type: compute
+ has_api_ref: true
+ has_api_guide: true
+ type: service
+
+- name: neutron
+ service: Networking service
+ service_type: network
+ has_api_ref: true
+ type: service
+
+- name: cinder
+ service: Block Storage service
+ service_type: block-storage
+ type: service
+ has_api_ref: true
+
+- name: ironic
+ service: Bare Metal service
+ service_type: baremetal
+ has_api_ref: true
+ type: service
+
+- name: magnum
+ service: Container Infrastructure Management service
+ service_type: container-infrastructure-management
+ has_api_ref: true
+ type: service
+
+- name: trove
+ service: Database service
+ service_type: database
+ has_api_ref: true
+ type: service
+
+- name: designate
+ service: DNS service
+ service_type: dns
+ has_api_ref: true
+ type: service
+
+- name: barbican
+ service: Key Manager service
+ service_type: key-manager
+ has_api_guide: true
+ has_api_ref: true
+ type: service
+
+- name: zaqar
+ service: Messaging service
+ service_type: message
+ has_api_ref: true
+ type: service
+
+- name: swift
+ service: Object Storage service
+ service_type: object-store
+ has_api_ref: true
+ type: service
+
+- name: heat
+ service: Orchestration service
+ service_type: orchestration
+ has_in_tree_api_docs: true
+ has_api_ref: true
+ type: service
+
+- name: manila
+ service: Shared File Systems service
+ service_type: shared-file-system
+ has_api_ref: true
+ type: service
+
+- name: sahara
+ service: Data Processing service
+ service_type: data-processing
+ has_api_ref: true
+ type: service
+
+- name: murano
+ service: Application Catalog service
+ service_type: application-catalog
+ type: service
+ has_api_ref: true
+
+- name: senlin
+ service: Clustering service
+ service_type: resource-cluster
+ type: service
+ has_api_ref: true
+
+- name: tacker
+ service: NFV Orchestration service
+ service_type: nfv-orchestration
+ type: service
+ has_api_ref: true
+
+- name: searchlight
+ service: Search service
+ # NOTE(dhellmann): This causes /search/ to redirect to the
+ # searchlight documentation.
+ service_type: search
+ type: service
+ has_api_ref: true
+
+- name: octavia
+ service: Load-balancer service
+ service_type: load-balancer
+ has_api_ref: true
+ type: service
+
+- name: karbor
+ service: Data Protection Orchestration Service
+ service_type: data-protection-orchestration
+ has_api_ref: true
+ type: service
diff --git a/www/templates/api_guides.tmpl b/www/templates/api_guides.tmpl
index 2767559f56..70919caaa2 100644
--- a/www/templates/api_guides.tmpl
+++ b/www/templates/api_guides.tmpl
@@ -1,5 +1,5 @@