diff --git a/app/serializers/build_entity.rb b/app/serializers/build_entity.rb
index cf1c418a88e82e620626cc3d869dc684ec4cc086..b5384e6462b2967398a4f94143fa31c8b0401a56 100644
--- a/app/serializers/build_entity.rb
+++ b/app/serializers/build_entity.rb
@@ -16,6 +16,9 @@ class BuildEntity < Grape::Entity
     path_to(:play_namespace_project_build, build)
   end
 
+  expose :created_at
+  expose :updated_at
+
   private
 
   def path_to(route, build)
diff --git a/spec/serializers/build_entity_spec.rb b/spec/serializers/build_entity_spec.rb
index 6dcfaec259e15ea84afdf69cb88c5530246c8ed9..60c9642ee2c6662c6433ebed77b77f2c7750a682 100644
--- a/spec/serializers/build_entity_spec.rb
+++ b/spec/serializers/build_entity_spec.rb
@@ -1,23 +1,30 @@
 require 'spec_helper'
 
 describe BuildEntity do
+  let(:build) { create(:ci_build) }
+
   let(:entity) do
     described_class.new(build, request: double)
   end
 
   subject { entity.as_json }
 
-  context 'when build is a regular job' do
-    let(:build) { create(:ci_build) }
+  it 'contains paths to build page and retry action' do
+    expect(subject).to include(:build_path, :retry_path)
+  end
 
-    it 'contains paths to build page and retry action' do
-      expect(subject).to include(:build_path, :retry_path)
-      expect(subject).not_to include(:play_path)
-    end
+  it 'does not contain sensitive information' do
+    expect(subject).not_to include(/token/)
+    expect(subject).not_to include(/variables/)
+  end
+
+  it 'contains timestamps' do
+    expect(subject).to include(:created_at, :updated_at)
+  end
 
-    it 'does not contain sensitive information' do
-      expect(subject).not_to include(/token/)
-      expect(subject).not_to include(/variables/)
+  context 'when build is a regular job' do
+    it 'does not contain path to play action' do
+      expect(subject).not_to include(:play_path)
     end
   end