diff --git a/.gitignore b/.gitignore
index 1315119761..d5608f4c71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+.DS_Store
 *.swp
 *~
 *.pyc
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/api-jobs.yaml b/modules/openstack_project/files/jenkins_job_builder/config/api-jobs.yaml
index a3241454a3..5f05e942c5 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/api-jobs.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/api-jobs.yaml
@@ -3,6 +3,88 @@
     jobs:
       - gate-{name}-merge
 
+# in zuul/layout.yaml specified to only run against master branch.
+# this copies static files from www
+- job:
+    name: openstack-api-site
+    concurrent: false
+    node: precise
+
+    triggers:
+      - zuul-post
+
+    builders:
+      - gerrit-git-prep
+
+    publishers:
+      - ftp:
+          site: api.openstack.org
+          source: 'www/**'
+          target: ''
+          remove-prefix: 'www/'
+          excludes: ''
+      - console-log-post
+
+# this replaces the old openstack-api-site job in Jenkins
+- job:
+    name: openstack-api-ref
+    project-type: maven
+    concurrent: false
+    node: precise
+
+    triggers:
+      - zuul-post
+
+    prebuilders:
+      - gerrit-git-prep
+
+    maven:
+      root-module:
+        group-id: org.openstack.docs
+        artifact-id: openstack-guide
+      root-pom: api-ref/pom.xml
+      goals: 'clean generate-sources'
+
+    publishers:
+      - console-log-post
+      - ftp:
+          site: api.openstack.org
+          source: 'api-ref/target/docbkx/html/api-ref/**'
+          target: ''
+          remove-prefix: 'api-ref/target/docbkx/html/api-ref/'
+          excludes: '**/*.xml,**/null*'
+          remote-directory: ''
+
+# this replaces the old openstack-api-quick-start job
+- job:
+    name: openstack-api-quick-start
+    project-type: maven
+    concurrent: false
+    node: precise
+
+    triggers:
+      - zuul-post
+
+    prebuilders:
+      - gerrit-git-prep
+
+    maven:
+      root-module:
+        group-id: org.openstack.docs
+        artifact-id: openstack-guide
+      root-pom: api-quick-start/pom.xml
+      goals: 'clean generate-sources'
+
+    publishers:
+      - console-log-post
+      - ftp:
+          site: api.openstack.org
+          source: 'doc/target/docbkx/webhelp/api-quick-start-onepager/**'
+          target: ''
+          remove-prefix: 'doc/target/docbkx/webhelp/api-quick-start-onepager/'
+          excludes: '**/*.xml,**/null*'
+          remote-directory: 'api/quick-start'
+
 # this replaces the old openstack-netconn-api-doc job
 - job:
     name: network-api-v10
diff --git a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
index fd721587ac..a5c52b5e12 100644
--- a/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
+++ b/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml
@@ -1,3 +1,12 @@
+- project:
+    name: api-site
+    github-org: openstack
+    node: precise
+    doc-publisher-site: api.openstack.org
+
+    jobs:
+      - gate-{name}-merge
+
 - project:
     name: ceilometer
     github-org: stackforge
diff --git a/modules/openstack_project/files/zuul/layout.yaml b/modules/openstack_project/files/zuul/layout.yaml
index e7544db3ac..b1cc8d8dc0 100644
--- a/modules/openstack_project/files/zuul/layout.yaml
+++ b/modules/openstack_project/files/zuul/layout.yaml
@@ -753,6 +753,16 @@ projects:
       - openstack-install-deploy-guide-apt-fedora
       - openstack-install-deploy-guide-ubuntu
 
+  - name: openstack/api-site
+    check:
+      - gate-api-site-merge
+    gate:
+      - gate-api-site-merge
+    post:
+      - openstack-api-quick-start
+      - openstack-api-site
+      - openstack-api-ref
+
   - name: openstack/compute-api
     check:
       - gate-compute-api-merge