diff --git a/modules/topRTBBidAdapter.js b/modules/topRTBBidAdapter.js
new file mode 100644
index 00000000000..783d4008b33
--- /dev/null
+++ b/modules/topRTBBidAdapter.js
@@ -0,0 +1,65 @@
+import * as utils from '../src/utils';
+import {registerBidder} from '../src/adapters/bidderFactory';
+import {BANNER, VIDEO} from '../src/mediaTypes';
+
+const BIDDER_CODE = 'topRTB';
+const ENDPOINT_URL = 'https://ssp.toprtb.com/ssp/rest/ReqAd?ref=www.google.com&hbid=0&adUnitId=';
+var adName = '';
+export const spec = {
+ code: BIDDER_CODE,
+ supportedMediaTypes: [BANNER, VIDEO],
+ isBidRequestValid: function (bid) {
+ if (utils.deepAccess(bid, 'mediaTypes.banner')) {
+ adName = 'banner';
+ return bid.params && !!bid.params.adUnitId;
+ }
+ if (utils.deepAccess(bid, 'mediaTypes.video')) {
+ adName = 'video';
+ return bid.params && !!bid.params.adUnitId;
+ }
+ },
+
+ buildRequests: function (validBidRequests, bidderRequest) {
+ let adunitid = [];
+ utils._each(validBidRequests, function (bid) {
+ adunitid.push(bid.params.adUnitId + '_' + bid.bidId);
+ });
+
+ return {
+ method: 'GET',
+ url: ENDPOINT_URL + adunitid.toString()
+ };
+ },
+
+ interpretResponse: function(serverResponses, request) {
+ const bidResponses = [];
+ utils._each(serverResponses.body, function(response) {
+ if (response.cpm > 0) {
+ const bidResponse = {
+ requestId: response.bidId,
+ cpm: response.cpm,
+ width: response.width,
+ height: response.height,
+ ad: response.mediadata,
+ ttl: response.ttl,
+ creativeId: response.id,
+ netRevenue: true,
+ currency: response.currency,
+ tracking: response.tracking,
+ impression: response.impression
+ };
+ if (adName == 'video') {
+ bidResponse.vastXml = response.mediadata;
+ bidResponse.mediaType = 'video';
+ } else {
+ bidResponse.ad = response.mediadata;
+ bidResponse.mediaType = 'banner';
+ }
+ bidResponses.push(bidResponse);
+ }
+ });
+ return bidResponses;
+ }
+};
+
+registerBidder(spec);
diff --git a/modules/topRTBBidAdapter.md b/modules/topRTBBidAdapter.md
new file mode 100644
index 00000000000..d1930c928e4
--- /dev/null
+++ b/modules/topRTBBidAdapter.md
@@ -0,0 +1,30 @@
+# Overview
+
+```
+Module Name: topRTB Bidder Adapter
+Module Type: Bidder Adapter
+Maintainer: karthikeyan.d@djaxtech.com
+```
+
+# Description
+
+topRTB Bidder Adapter for Prebid.js.
+Only Banner & video format is supported.
+
+# Test Parameters
+```
+ var adUnits = [
+ {
+ code: 'test-div-0',
+ sizes: [[728, 90]], // a display size
+ bids: [
+ {
+ bidder: 'topRTB',
+ params: {
+ adUnitId: 'c5c06f77430c4c33814a0577cb4cc978'
+ }
+ }
+ ]
+ }
+ ];
+```
diff --git a/test/spec/modules/topRTBBidAdapter_spec.js b/test/spec/modules/topRTBBidAdapter_spec.js
new file mode 100644
index 00000000000..83e5de3e4b9
--- /dev/null
+++ b/test/spec/modules/topRTBBidAdapter_spec.js
@@ -0,0 +1,67 @@
+import { expect } from 'chai';
+import { spec } from 'modules/topRTBBidAdapter';
+
+describe('topRTBBidAdapterTests', function () {
+ it('validate_pub_params', function () {
+ expect(spec.isBidRequestValid({
+ bidder: 'topRTB',
+ params: {
+ adUnitId: 'c5c06f77430c4c33814a0577cb4cc978'
+ },
+ adName: 'banner'
+ }));
+ });
+
+ it('validate_generated_params', function () {
+ let bidRequestData = [{
+ bidId: 'bid12345',
+ bidder: 'topRTB',
+ adName: 'banner',
+ adType: '{"banner":{"sizes":[[]]}}',
+ params: {
+ adUnitId: 'c5c06f77430c4c33814a0577cb4cc978'
+ },
+ sizes: [[728, 90]]
+ }];
+
+ let request = spec.buildRequests(bidRequestData);
+ const current_url = request.url;
+ const search_params = current_url.searchParams;
+ });
+
+ it('validate_response_params', function () {
+ let bidRequestData = {
+ data: {
+ bidId: 'bid12345'
+ }
+ };
+
+ let serverResponse = {
+ body: [{
+ 'cpm': 1,
+ 'mediadata': "",
+ 'width': 728,
+ 'currency': 'USD',
+ 'id': 'cd95dffec6b645afbc4e5aa9f68f2ff3',
+ 'type': 'RICHMEDIA',
+ 'ttl': 4000,
+ 'bidId': 'bid12345',
+ 'status': 'success',
+ 'height': 90}],
+ 'adName': 'banner',
+ 'vastXml': '',
+ 'mediaType': 'banner',
+ 'tracking': 'https://ssp.toprtb.com/ssp/tracking?F0cloTiKIw%2BjZ2UNDvlKGn5%2FWoAO9cnlAUDm6gFBM8bImY2fKo%2BMTvI0XvXzFTZSb5v8o4EUbPId9hckptTqA4QPaWvpVYCRKRZceXNa4kjtvfm4j2e%2FcRKgkns2goHXi7IZC0sBIbE77WWg%2BPBYv%2BCu84H%2FSH69mi%2FDaWcQlfaEOdkaJdstJEkaZtkgWnFnS7aagte%2BfdEbOqcTxq5hzj%2BZ4NZbwgReuWTQZbfrMWjkXFbn%2B35vZuI319o6XH9n9fKLS4xp8zstXfQT2oSgjw1NmrwqRKf1efB1UaWlS1TbkSqxZ7Kcy7nJvAZrDk0tzcSeIxe4VfHpwgPPs%2BueUeGwz3o7OCh7H1sCmogSrmJFB9JTeXudFjC13iANAtu4SvG9bGIbiJxS%2BNfkjy2mLFm8kSIcIobjNkMEcUAwmoqJNRndwb66a3Iovk2NTo0Ly%2FV7Y5ECPcS5%2FPBrIEOuQXS5SNUPRWKoklX5nexHtOc%3D',
+ 'impression': 'https://ssp.toprtb.com/ssp/impression?id=64f29f7b226249f19925a680a506b32d'
+ };
+
+ let bids = spec.interpretResponse(serverResponse, bidRequestData);
+ expect(bids).to.have.lengthOf(1);
+ let bid = bids[0];
+ expect(bid.cpm).to.equal(1);
+ expect(bid.currency).to.equal('USD');
+ expect(bid.width).to.equal(728);
+ expect(bid.height).to.equal(90);
+ expect(bid.requestId).to.equal('bid12345');
+ });
+});