{"_id":"olostep","_rev":"15-2943f791f590cb0cc27f60fe6247d798","name":"olostep","dist-tags":{"latest":"1.2.2"},"versions":{"0.1.2":{"name":"olostep","version":"0.1.2","keywords":["olostep","sdk","scraping","web","crawler","api-client","typescript"],"license":"MIT","_id":"olostep@0.1.2","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"fb37fdf3d258e7c71bbc7e5568823bd35889e1e8","tarball":"https://registry.npmjs.org/olostep/-/olostep-0.1.2.tgz","fileCount":74,"integrity":"sha512-WMNETsyjetULJwm9+lBR5FKC5JPt8Qt3KHDWZ5GLml/vAZiPiruD9B3PNzvPqC9QkrbGafb0ZKxkXk6Ox9utWA==","signatures":[{"sig":"MEUCIC5ZTPJ4ZWXmRUH2fPzmdhryrcU8sL2zEp7/CmQnzZtnAiEA8GJWn6g64i/41ltxnmfYEeT/11QF7vlfO/WQYyfi4O8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117147},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"18568b2a63a131e88a8ba84a0c9dd7ac795ccd3f","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"11.4.2","description":"Node.js SDK for the Olostep web data platform.","directories":{},"_nodeVersion":"23.2.0","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_0.1.2_1765540867949_0.08256919964297671","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"olostep","version":"0.1.3","keywords":["olostep","sdk","scraping","web","crawler","api-client","typescript"],"license":"MIT","_id":"olostep@0.1.3","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"d42ef38d334b9746085ebbfbe06297612d1fb633","tarball":"https://registry.npmjs.org/olostep/-/olostep-0.1.3.tgz","fileCount":86,"integrity":"sha512-2UfTTwLmUq0RUoj2MhR9H46F4KLBndIY4qGjkz5iMFqyJvCQWh2akCXo9klgH8c3QsbkagH/gaKl29BwgATnKA==","signatures":[{"sig":"MEYCIQCKkVtdbhl1d4dO7ruUQttht5bp14/HCaYIJ2Gz7XMZjwIhAL0nxIpDhd+Gmbi2MgtKZ6dDQ+3p6XcWe2zTKMJ9Sxdy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135312},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"6895886bd02635ab76d9e76b17ab843693987183","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data platform.","directories":{},"_nodeVersion":"20.20.1","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_0.1.3_1775180110703_0.4143019978819613","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"olostep","version":"0.1.4","keywords":["olostep","sdk","scraping","web","crawler","api-client","typescript"],"license":"MIT","_id":"olostep@0.1.4","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"69e5fdaf2995563aa6d9996ff5003868e558a430","tarball":"https://registry.npmjs.org/olostep/-/olostep-0.1.4.tgz","fileCount":86,"integrity":"sha512-D7FiTSWY2YUxQcEUmTWp1TNVHzayDmn3wkcU3eEfEgHloeLtYoX1pRxitCoTeSLJlLad3KFoF225dfYR1ZQ2VQ==","signatures":[{"sig":"MEUCIGJ8KZB0td9T10jI2v1AzCa2q5LbdjvUJdov3rdWqMgiAiEAv62l3lMub088MtxjBkLvOJRdIQRng9HVxGJqiiWacNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136714},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"2429cdff9a8a05297161158c56ac2f405abdd1ce","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data platform.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_0.1.4_1775741214430_0.7141969559580588","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"olostep","version":"0.1.5","keywords":["olostep","sdk","scraping","web","crawler","api-client","typescript"],"license":"MIT","_id":"olostep@0.1.5","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"479957ed3e397cf5d9887bc1d13e94ea3b778888","tarball":"https://registry.npmjs.org/olostep/-/olostep-0.1.5.tgz","fileCount":86,"integrity":"sha512-q9OC+r/fZQiicBGvYeWGLsCpt4FDJHZG0RUaSbaygSDht3cx5C2xx/WTaNFMZVE90IW66w8fCQm5/xwGuEdIZw==","signatures":[{"sig":"MEUCIFRmPy/LmA+7YFLo69ci2hzvu8PM8fVEDvCCmlksUo0IAiEAxObHl18FqcVXI2bahc2D2zPdB590qmX4WAKiPbtjn9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136703},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"82ea73f45de4dda31e0834510a538f2cc1d4fdf3","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data platform.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_0.1.5_1775742735087_0.7753575452250294","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"olostep","version":"1.0.0","keywords":["olostep","sdk","scraping","web","crawler","api-client","typescript"],"license":"MIT","_id":"olostep@1.0.0","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"69cc62f73dfdcfdf1c1a71ef7c8bc1198920599c","tarball":"https://registry.npmjs.org/olostep/-/olostep-1.0.0.tgz","fileCount":86,"integrity":"sha512-ENxoOGbsJ8N87rboZI5SryF60pqz6yDCcsOKW6OqGOKgPehl/dmw4sW+UiepiBO+VPsOz+GYddAEmnInsKCsjg==","signatures":[{"sig":"MEYCIQDi15LcVtMTxvHFR33bpEYL+yrIWZuv1Iipf4xlAKF10gIhAP1GgVtwsREfTWH7HOi3IHRJigJg5AK3DYG/tq7RCj78","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136703},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"a29847cb0663e4d6e8d5f0bea7aa37d09b7a0e29","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data platform.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_1.0.0_1775745494815_0.960029748995106","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"olostep","version":"1.1.0","keywords":["olostep","sdk","scraping","web","crawler","api-client","typescript"],"license":"MIT","_id":"olostep@1.1.0","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"8cdd3427c7eaf23c8ff16a10a5006db51fe7bf19","tarball":"https://registry.npmjs.org/olostep/-/olostep-1.1.0.tgz","fileCount":94,"integrity":"sha512-mLMzLCIjq2rMm4DWEtzq7dSTkxXK0fXHAf1gQ+ltWTe10bDq4DQ9R5kHcsfNT5S7PdGLeZefSegUdvFCAlg4sg==","signatures":[{"sig":"MEQCIGhU8FKVs4bj8A08Ebh2qrfMBeZ4AdJ53gNs8jc2nfXjAiBPZCjsGgjlUQ1y09qHKlUg0jnbqKqpsxy5H+5oRLyKzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149096},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7ea9f04f6f73e6fd8c6f99feafa577ae67adf2ff","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data platform.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_1.1.0_1778261262550_0.33688579817165665","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"olostep","version":"1.2.0","keywords":["olostep","sdk","scraping","web","crawler","api-client","typescript"],"license":"MIT","_id":"olostep@1.2.0","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"b46323b01a306751c795675bd57e0ab3bee1f047","tarball":"https://registry.npmjs.org/olostep/-/olostep-1.2.0.tgz","fileCount":102,"integrity":"sha512-9+QnaLmsG8uwJmq5a6UaC7gfRL+ao0uzfywRk/q5CNiCx/IH+kVnrc8WlovidoSvqkQUXhePpsZ0UPhj1EGDUg==","signatures":[{"sig":"MEQCIEhLTVLBOq7lGJ7pZY0Hm6bQnP40AeCNK31F75WC14PrAiA/LtmD2xKFTW2t7pBpscVI8SvoDpXmDnoqCbIB9U/1bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182177},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"b1af8dc11948ee4777cee95fa5580e859be89d2d","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data platform.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_1.2.0_1782138381165_0.5662398733268907","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"olostep","version":"1.2.1","keywords":["olostep","sdk","scraping","web","crawler","crawl","search","monitors","ai-answers","api-client","typescript"],"license":"MIT","_id":"olostep@1.2.1","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"2e3d200d409482d5a34c5035164e049726b9e370","tarball":"https://registry.npmjs.org/olostep/-/olostep-1.2.1.tgz","fileCount":102,"integrity":"sha512-MKi6rNv8fq8zFHCNaloSuVoYgeOH7pBIbW86QAki5DM2VJ8mZoxv9zv9KCEiF2WlCDta/CGTrKpftKakVIFvpw==","signatures":[{"sig":"MEYCIQCJf/iAoSbdKVOyOG4Xu8sQnT8a/57OBh6xi0Ct0q15MgIhAO6qzfTkNA+RGdi71lRH/GsXwlXmLWkMERkLI79MSud2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182304},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7fd8d9a4b86714e41d268cb4c9552415f9aa0c2c","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data API: scrape, crawl, batch, map, search, AI answers, and scheduled monitors.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_1.2.1_1782146332121_0.8883498042258962","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"olostep","version":"1.2.2","keywords":["olostep","sdk","scraping","web","crawler","crawl","search","monitors","ai-answers","api-client","typescript"],"license":"MIT","_id":"olostep@1.2.2","maintainers":[{"name":"olostep","email":"info@olostep.com"}],"homepage":"https://www.olostep.com","bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"dist":{"shasum":"f5660c73f23ec50d062f2e959ad3bce9be38a3ba","tarball":"https://registry.npmjs.org/olostep/-/olostep-1.2.2.tgz","fileCount":102,"integrity":"sha512-vg58HAUdzH/csgVUr7K4EKEr25vVoftFtK8yrnAyFBFTtR+vTsAN1MZYPf22QieKMukbHaBxG0n6gGYGHqQghg==","signatures":[{"sig":"MEUCIQCYnkBXd4vbljMokdwPmooRNGnBU39JbOrxEMuEGxAk0wIgChXeRaLfK3GEklwKJTQe9C/nq6Gbcp/czU/BXxymVKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183213},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"331bddb1c6c943f350641adf35fbd5fef4f727e4","scripts":{"lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings=0","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","check:types":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"olostep","email":"info@olostep.com"},"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js SDK for the Olostep web data API: scrape, crawl, batch, map, search, AI answers, and scheduled monitors.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"node-fetch":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^8.56.0","rimraf":"^5.0.5","ts-jest":"^29.4.6","typescript":"^5.4.0","@types/jest":"^30.0.0","@types/node":"^20.11.5","@typescript-eslint/parser":"^6.21.0","@typescript-eslint/eslint-plugin":"^6.21.0"},"_npmOperationalInternal":{"tmp":"tmp/olostep_1.2.2_1782148675270_0.07217056513711162","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-12-12T10:30:50.673Z","modified":"2026-08-01T09:39:12.718Z","0.1.0":"2025-12-12T10:30:50.803Z","0.1.1":"2025-12-12T10:59:30.696Z","0.1.2":"2025-12-12T12:01:08.119Z","0.1.3":"2026-04-03T01:35:10.886Z","0.1.4":"2026-04-09T13:26:54.583Z","0.1.5":"2026-04-09T13:52:15.223Z","1.0.0":"2026-04-09T14:38:15.011Z","1.1.0":"2026-05-08T17:27:42.676Z","1.2.0":"2026-06-22T14:26:21.406Z","1.2.1":"2026-06-22T16:38:52.334Z","1.2.2":"2026-06-22T17:17:55.417Z"},"bugs":{"url":"https://github.com/olostep-api/olostep-js/issues"},"license":"MIT","homepage":"https://www.olostep.com","keywords":["olostep","sdk","scraping","web","crawler","crawl","search","monitors","ai-answers","api-client","typescript"],"repository":{"url":"git+https://github.com/olostep-api/olostep-js.git","type":"git"},"description":"Node.js SDK for the Olostep web data API: scrape, crawl, batch, map, search, AI answers, and scheduled monitors.","maintainers":[{"email":"awaisyousaf75@gmail.com","name":"awaisyousaf75"},{"email":"info@olostep.com","name":"olostep-devs"}],"readme":"# Olostep Node SDK \r\nThis package is the official Node.js SDK for the [Olostep web data platform](https://www.olostep.com).  \r\n\r\n## Getting started\r\n\r\n```bash\r\nnpm install olostep\r\n```\r\n\r\n```ts\r\nimport Olostep from 'olostep';\r\n\r\nconst client = new Olostep({apiKey: process.env.OLOSTEP_API_KEY});\r\n\r\n// Minimal scrape example\r\nconst result = await client.scrapes.create('https://example.com');\r\nconsole.log(result.id, result.html_content);\r\n```\r\n\r\n## Usage\r\n\r\n### Scraping\r\n\r\nScrape a single URL with various options:\r\n\r\n```ts\r\nimport Olostep, {Format} from 'olostep';\r\n\r\nconst client = new Olostep({apiKey: 'your_api_key'});\r\n\r\n// Simple scrape\r\nconst scrape = await client.scrapes.create('https://example.com');\r\n\r\n// With multiple formats\r\nconst scrape = await client.scrapes.create({\r\n  url: 'https://example.com',\r\n  formats: [Format.HTML, Format.MARKDOWN, Format.TEXT],\r\n  waitBeforeScraping: 1000,\r\n  removeImages: true\r\n});\r\n\r\n// Access the content\r\nconsole.log(scrape.html_content);\r\nconsole.log(scrape.markdown_content);\r\n\r\n// Get scrape by ID\r\nconst fetched = await client.scrapes.get(scrape.id);\r\n```\r\n\r\n### Batch Processing\r\n\r\nProcess multiple URLs in a single batch:\r\n\r\n```ts\r\n// Using URL strings (custom IDs auto-generated)\r\nconst batch = await client.batches.create([\r\n  'https://example.com',\r\n  'https://example.org',\r\n  'https://example.net'\r\n]);\r\n\r\n// Or with explicit custom IDs\r\nconst batch = await client.batches.create([\r\n  {url: 'https://example.com', customId: 'site-1'},\r\n  {url: 'https://example.org', customId: 'site-2'}\r\n]);\r\n\r\nconsole.log(`Batch ${batch.id} created with ${batch.total_urls} URLs`);\r\n\r\n// Wait for completion\r\nawait batch.waitTillDone({\r\n  checkEveryNSecs: 5,\r\n  timeoutSeconds: 120\r\n});\r\n\r\n// Get batch info\r\nconst info = await batch.info();\r\nconsole.log(info);\r\n\r\n// Stream individual results\r\nfor await (const item of batch.items()) {\r\n  console.log(item.custom_id);\r\n}\r\n```\r\n\r\n### Crawling\r\n\r\nCrawl an entire website:\r\n\r\n```ts\r\nconst crawl = await client.crawls.create({\r\n  url: 'https://example.com',\r\n  maxPages: 100,\r\n  maxDepth: 3,\r\n  includeUrls: ['*/blog/*'],\r\n  excludeUrls: ['*/admin/*']\r\n});\r\n\r\nconsole.log(`Crawl ${crawl.id} started`);\r\n\r\n// Wait for completion\r\nawait crawl.waitTillDone({\r\n  checkEveryNSecs: 10,\r\n  timeoutSeconds: 300\r\n});\r\n\r\n// Get crawl info\r\nconst info = await crawl.info();\r\nconsole.log(`Crawled ${info.pages_crawled} pages`);\r\n\r\n// Stream crawled pages\r\nfor await (const page of crawl.pages()) {\r\n  console.log(page.url, page.status_code);\r\n}\r\n```\r\n\r\n### Site Mapping\r\n\r\nGenerate a sitemap of URLs from a website:\r\n\r\n```ts\r\nconst map = await client.maps.create({\r\n  url: 'https://example.com',\r\n  topN: 100,\r\n  includeSubdomain: true,\r\n  searchQuery: 'blog posts'\r\n});\r\n\r\nconsole.log(`Map ${map.id} created`);\r\n\r\n// Stream URLs\r\nfor await (const url of map.urls()) {\r\n  console.log(url);\r\n}\r\n\r\n// Get map info\r\nconst info = await map.info();\r\n```\r\n\r\n### Search\r\n\r\nSearch the web with a natural language query and get back deduplicated links:\r\n\r\n```ts\r\n// Simple search\r\nconst search = await client.searches.create('Best Answer Engine Optimization startups');\r\n\r\nconsole.log(`Search ${search.id} returned ${search.links.length} links`);\r\n\r\nfor (const link of search.links) {\r\n  console.log(link.url, '-', link.title);\r\n}\r\n```\r\n\r\nLimit the result count and filter by domain:\r\n\r\n```ts\r\nconst search = await client.searches.create({\r\n  query: 'OpenAI Sora shutdown analysis',\r\n  limit: 5,\r\n  includeDomains: ['bbc.com', 'nytimes.com', 'wsj.com'],\r\n  excludeDomains: ['pinterest.com']\r\n});\r\n```\r\n\r\nEmbed scraped page content directly on each link in a single round-trip:\r\n\r\n```ts\r\nimport Olostep, {Format} from 'olostep';\r\n\r\nconst search = await client.searches.create({\r\n  query: \"What's going on with OpenAI's Sora shutting down?\",\r\n  limit: 5,\r\n  scrapeOptions: {\r\n    formats: [Format.MARKDOWN],\r\n    removeCssSelectors: 'default',\r\n    timeout: 25\r\n  }\r\n});\r\n\r\nfor (const link of search.links) {\r\n  console.log(link.url, (link.markdown_content || '').length, 'chars');\r\n}\r\n\r\n// Get search by ID (idempotent read - no rebill, no rescrape)\r\nconst fetched = await client.searches.get(search.id);\r\n```\r\n\r\n### Monitors\r\n\r\nWatch a page or a query on a schedule and get notified when something changes. A monitor provisions in the background and runs on its own:\r\n\r\n```ts\r\nconst monitor = await client.monitors.create({\r\n  query: 'Alert me when the Stripe status page reports an incident',\r\n  frequency: 'every 30 minutes',\r\n  notification: {\r\n    channels: [{type: 'email', target: 'you@example.com'}]\r\n  }\r\n});\r\n\r\nconsole.log(monitor.id, monitor.status); // monitor_..., \"provisioning\"\r\n```\r\n\r\nRead, pause, resume, and list your monitors:\r\n\r\n```ts\r\nconst info = await client.monitors.get(monitor.id);\r\nconst all = await client.monitors.list();\r\n\r\nawait client.monitors.pause(monitor.id);\r\nawait client.monitors.resume(monitor.id);\r\n```\r\n\r\nReview the change history, then delete when you are done:\r\n\r\n```ts\r\nconst events = await client.monitors.events(monitor.id);\r\nawait client.monitors.delete(monitor.id);\r\n```\r\n\r\n### Content Retrieval\r\n\r\nRetrieve previously scraped content:\r\n\r\n```ts\r\n// Get content in specific format(s)\r\nconst content = await client.retrieve(retrieveId, Format.MARKDOWN);\r\nconsole.log(content.markdown_content);\r\n\r\n// Multiple formats\r\nconst content = await client.retrieve(retrieveId, [\r\n  Format.HTML,\r\n  Format.MARKDOWN\r\n]);\r\n```\r\n\r\n### Advanced Options\r\n\r\n#### Custom Actions\r\n\r\nPerform browser actions before scraping:\r\n\r\n```ts\r\nconst scrape = await client.scrapes.create({\r\n  url: 'https://example.com',\r\n  actions: [\r\n    {type: 'wait', milliseconds: 2000},\r\n    {type: 'click', selector: '#load-more'},\r\n    {type: 'scroll', distance: 1000},\r\n    {type: 'fill_input', selector: '#search', value: 'query'}\r\n  ]\r\n});\r\n```\r\n\r\n#### Geographic Location\r\n\r\nScrape from different countries using predefined country codes or any valid country code string:\r\n\r\n```ts\r\nimport Olostep, {Country} from 'olostep';\r\n\r\nconst client = new Olostep({apiKey: 'your_api_key'});\r\n\r\n// Using predefined enum values (US, DE, FR, GB, SG)\r\nconst scrape = await client.scrapes.create({\r\n  url: 'https://example.com',\r\n  country: Country.DE  // Germany\r\n});\r\n\r\n// Or use any valid country code as a string\r\nconst scrape2 = await client.scrapes.create({\r\n  url: 'https://example.com',\r\n  country: 'jp'  // Japan\r\n});\r\n```\r\n\r\n#### LLM Extraction\r\n\r\nExtract structured data using LLMs:\r\n\r\n```ts\r\nconst scrape = await client.scrapes.create({\r\n  url: 'https://example.com',\r\n  llmExtract: {\r\n    schema: {\r\n      title: 'string',\r\n      price: 'number',\r\n      description: 'string'\r\n    },\r\n    // Optionally provide a prompt to guide extraction\r\n    prompt: 'Extract product information from this page'\r\n  }\r\n});\r\n```\r\n\r\n### Client Configuration\r\n\r\n```ts\r\nimport Olostep from 'olostep';\r\n\r\nconst client = new Olostep({\r\n  apiKey: 'your_api_key',\r\n  apiBaseUrl: 'https://api.olostep.com/v1',  // optional\r\n  timeoutMs: 150000,  // 150 seconds (optional)\r\n  retry: {\r\n    maxRetries: 3,\r\n    initialDelayMs: 1000\r\n  },\r\n  userAgent: 'MyApp/1.0'  // optional\r\n});\r\n```\r\n\r\n### Feature highlights\r\n\r\n- Async-first client with full TypeScript support.\r\n- Type-safe inputs using TypeScript enums and interfaces (Formats, Countries, Actions, etc.).\r\n- Rich resource namespaces with both shorthand calls (`client.scrapes.create()`) and explicit methods (`client.scrapes.get()`).\r\n- Shared transport layer with retries, timeouts, and JSON decoding.\r\n- Comprehensive error hierarchy aligned with the Python SDK.\r\n\r\n## Project structure\r\n\r\n```\r\nolostep/\r\n├─ src/\r\n│  ├─ client.ts              # Client + facade wiring\r\n│  ├─ config.ts              # Option resolution & defaults\r\n│  ├─ errors.ts              # Exception hierarchy\r\n│  ├─ http/transport.ts      # Fetch-based HTTP transport with retries\r\n│  ├─ resources/             # Namespaces (scrape, batch, crawl, map, answer, search, retrieve)\r\n│  └─ types.ts               # Shared enums and DTOs\r\n├─ package.json              # NPM metadata + scripts\r\n├─ tsconfig*.json            # TypeScript build configs\r\n└─ README.md                 # You are here\r\n```\r\n\r\n## Scripts\r\n\r\n- `npm run build` – emit ESM to `dist/`.\r\n- `npm run lint` – lint the TypeScript sources with ESLint.\r\n- `npm run check:types` – type-check without emitting files.\r\n- `npm run clean` – remove the build output.\r\n\r\n## Examples\r\n\r\nSample scripts live in `examples/`. Copy `.env.example` to `.env` and set your `OLOSTEP_API_KEY`:\r\n\r\n```bash\r\ncp .env.example .env\r\n# Edit .env and add your API key\r\n```\r\n\r\nThen run the examples:\r\n\r\n```bash\r\nnpx tsx examples/scrape.ts\r\nnpx tsx examples/batch.ts\r\nnpx tsx examples/crawl.ts\r\nnpx tsx examples/map.ts\r\nnpx tsx examples/search.ts\r\nnpx tsx examples/retrieve.ts <retrieve_id>\r\n```\r\n\r\nThey exercise each namespace using the current SDK surface and are a quick way to verify changes manually.\r\n\r\n","readmeFilename":"README.md"}