diff --git a/app/controllers/v1/educational_stages_controller.rb b/app/controllers/v1/educational_stages_controller.rb
index f2ff30b80bf539a88eec52a7b77c1ad61f780160..3518fabd954327e2023efaaf64118559b3807255 100644
--- a/app/controllers/v1/educational_stages_controller.rb
+++ b/app/controllers/v1/educational_stages_controller.rb
@@ -1,9 +1,12 @@
 class V1::EducationalStagesController < ApplicationController
 
+  include ::Paginator
+
+
   # GET /educational_stages
   # GET /educational_stages.json
   def index
-    educational_stages = EducationalStage.all
+    educational_stages = paginate EducationalStage.all
     render json: educational_stages
   end
 
diff --git a/app/controllers/v1/subjects_controller.rb b/app/controllers/v1/subjects_controller.rb
index c00ee1f852ecb5bed2b6586321da7db13ea60786..6b4ed162edf426978dfdec919e95cfcfee6f73bf 100644
--- a/app/controllers/v1/subjects_controller.rb
+++ b/app/controllers/v1/subjects_controller.rb
@@ -1,9 +1,12 @@
 class V1::SubjectsController < ApplicationController
+  
+  include ::Paginator
+
 
   # GET /subjects
   # GET /subjects.json
   def index
-    subjects = Subject.all
+    subjects = paginate Subject.all
     render json: subjects
   end
 
diff --git a/spec/acceptance/educational_stages_spec.rb b/spec/acceptance/educational_stages_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..aad09050a1db7f85e517e21ed84709106d5bb8d0
--- /dev/null
+++ b/spec/acceptance/educational_stages_spec.rb
@@ -0,0 +1,25 @@
+require 'acceptance_helpers'
+
+resource 'Educational Stages' do
+  header 'Accept', 'application/json'
+  header 'Content-Type', 'application/json'
+
+  before { 12.times { create(:educational_stage) } }
+
+  let(:educational_stages) { EducationalStage.all }
+
+  get '/v1/educational_stages' do
+    parameter :limit, 'Limit of educational stages'
+    parameter :offset, 'Offset of educational stages'
+
+    let(:limit) { 12 }
+    let(:offset) { 0 }
+
+    example_request 'Get a list of educational stages' do
+      # active model serializer may render model associations in different order for collections (array of items), so we're verifing only returned ids
+      expect(JSON.parse(response_body).map { |o| o['id'] }.sort).to eq(EducationalStage.limit(limit).offset(offset).pluck(:id).sort)
+      expect(status).to eq(200)
+    end
+  end
+
+end
diff --git a/spec/factories/educational_stages.rb b/spec/factories/educational_stages.rb
new file mode 100644
index 0000000000000000000000000000000000000000..2220d4a01de6f71c378eb0a2eef8b6007b5e3551
--- /dev/null
+++ b/spec/factories/educational_stages.rb
@@ -0,0 +1,5 @@
+FactoryGirl.define do
+  factory :educational_stage do
+    sequence(:name) { |i| "EducationalStage #{i}" }
+  end
+end