diff --git a/lib/travis/api/app/helpers/mime_types.rb b/lib/travis/api/app/helpers/mime_types.rb
index 9e002e62..cf31b505 100644
--- a/lib/travis/api/app/helpers/mime_types.rb
+++ b/lib/travis/api/app/helpers/mime_types.rb
@@ -18,6 +18,10 @@ class Travis::Api::App
       def png?
         request.accept =~ %r(image/png)
       end
+
+      def atom?
+        request.accept =~ %r(application/atom+xml)
+      end
     end
   end
 end
diff --git a/lib/travis/api/app/middleware/rewrite.rb b/lib/travis/api/app/middleware/rewrite.rb
index 8ac8b9f2..1f1a6f86 100644
--- a/lib/travis/api/app/middleware/rewrite.rb
+++ b/lib/travis/api/app/middleware/rewrite.rb
@@ -3,7 +3,7 @@ require 'travis/api/app'
 class Travis::Api::App
   class Middleware
     class Rewrite < Middleware
-      FORMAT      = %r(\.(json|xml|png|txt)$)
+      FORMAT      = %r(\.(json|xml|png|txt|atom)$)
       V1_REPO_URL = %r(^(/[^/]+/[^/]+(?:/builds(?:/[\d]+)?|/cc)?)$)
 
       helpers :accept
@@ -56,6 +56,10 @@ class Travis::Api::App
           env['travis.format'] == 'xml'
         end
 
+        def atom?
+          env['travis.format'] == 'atom'
+        end
+
         def v1?
           accept_version == 'v1'
         end
diff --git a/spec/integration/v1/repositories_spec.rb b/spec/integration/v1/repositories_spec.rb
index c06e68bd..a7482a94 100644
--- a/spec/integration/v1/repositories_spec.rb
+++ b/spec/integration/v1/repositories_spec.rb
@@ -102,5 +102,13 @@ describe 'v1 repos' do
       response = get '/repositories/svenfuchs/minimal/builds', {}, headers
       response.content_type.should =~ /^application\/atom\+xml/
     end
-  end  
+  end
+
+  context 'with .atom extension and "Accept: */*" header' do
+    let(:headers) { { 'HTTP_ACCEPT' => '*/*' } }
+    it 'GET /repositories/svenfuchs/minimal/builds.atom' do
+      response = get '/repositories/svenfuchs/minimal/builds.atom', {}, headers
+      response.content_type.should =~ /^application\/atom\+xml/
+    end
+  end
 end
diff --git a/spec/integration/v2/repositories_spec.rb b/spec/integration/v2/repositories_spec.rb
index 297cd1e8..fcf89a1f 100644
--- a/spec/integration/v2/repositories_spec.rb
+++ b/spec/integration/v2/repositories_spec.rb
@@ -147,4 +147,12 @@ describe 'Repos' do
       response.content_type.should =~ /^application\/atom\+xml/
     end
   end
+
+  context 'with .atom extension' do
+    let(:headers) { { 'HTTP_ACCEPT' => '*/*' } }
+    it 'GET /repositories/svenfuchs/minimal/builds.atom' do
+      response = get '/repositories/svenfuchs/minimal/builds.atom', {}, headers
+      response.content_type.should =~ /^application\/atom\+xml/
+    end
+  end
 end