{"_id":"@aymantaybi/instagram-private-api","_rev":"5-ae2efb4d6f2444dbf57932f4bd2f78cf","time":{"created":"2023-01-19T17:39:11.970Z","1.45.3":"2023-01-19T15:13:21.520Z","modified":"2023-01-19T18:18:57.410Z","1.45.4":"2023-01-19T17:39:12.294Z","1.45.5":"2023-01-19T17:52:11.276Z","1.45.6":"2023-01-19T18:18:57.305Z"},"name":"@aymantaybi/instagram-private-api","dist-tags":{"latest":"1.45.6"},"versions":{"1.45.4":{"name":"@aymantaybi/instagram-private-api","description":"Instagram private API wrapper for full access to instagram","version":"1.45.4","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","engines":{"node":">=8.0.0"},"bugs":{"url":"https://github.com/dilame/instagram-private-api/issues","email":"dilame.nickolson@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/dilame/instagram-private-api.git"},"homepage":"https://github.com/dilame/instagram-private-api","scripts":{"build":"rimraf dist && tsc -p tsconfig.build.json","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json -c tslint.json","typecheck":"tsc -p tsconfig.build.json --noEmit","prepare":"npm run build","test":"mocha --inline-diffs --timeout 1000000 tests/run.js","generate-interface":"ts-node ./tools/response-to-interface.ts","generate-docs":"typedoc"},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"dependencies":{"@lifeomic/attempt":"^3.0.0","@types/chance":"^1.0.2","@types/request-promise":"^4.1.43","bluebird":"^3.7.1","chance":"^1.0.18","class-transformer":"^0.3.1","debug":"^4.1.1","image-size":"^0.7.3","json-bigint":"^1.0.0","lodash":"^4.17.20","luxon":"^1.12.1","reflect-metadata":"^0.1.13","request":"^2.88.0","request-promise":"^4.2.4","rxjs":"^6.5.2","snakecase-keys":"^3.1.0","tough-cookie":"^2.5.0","ts-custom-error":"^2.2.2","ts-xor":"^1.0.6","url-regex-safe":"^3.0.0","utility-types":"^3.10.0"},"peerDependencies":{"re2":"^1.17.2"},"peerDependenciesMeta":{"re2":{"optional":true}},"devDependencies":{"@types/bluebird":"^3.5.26","@types/lodash":"^4.14.123","@types/luxon":"^1.12.0","@types/node":"^10.14.5","@types/tough-cookie":"^2.3.5","dotenv":"^6.2.0","husky":"^1.3.1","inquirer":"^1.1.2","json-ts":"^1.6.4","prettier":"^1.19.1","pretty-quick":"^1.10.0","rimraf":"^2.6.3","ts-node":"^8.1.0","tslint":"^5.16.0","typedoc":"^0.22.11","typedoc-plugin-markdown":"^3.11.14","typescript":"^4.3.5"},"gitHead":"075773a509499a6ca3a77a60f4488b7460db11c9","_id":"@aymantaybi/instagram-private-api@1.45.4","_nodeVersion":"16.17.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-KX3aQwR+DmrVgmkuvH+HbJvUs4MYgJFwlkx9XDTjFZ5sLv5Y3wh9RAZpXwCLWF5G1eBqkvb3Trn6w02vX/PBLQ==","shasum":"9ff138f04a71de9c4a6b348e7dd481b03610bf27","tarball":"https://registry.npmjs.org/@aymantaybi/instagram-private-api/-/instagram-private-api-1.45.4.tgz","fileCount":798,"unpackedSize":977482,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWWfXGLloebue0if/p78tb2yDUafjGoFhOJlTLcIp6IwIhAIJsW6Ae1r1QRk3arMzQJQqJfLDMQLH0E56Gkill1U10"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyYBAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoa6RAAkZkVx0kiNkA/IzApylBoJKhAFwOrKIpY71xHN2pXuhoaH1Wz\r\nM+tJqHy2bXaqYYLkvvDzcVChkd4g7lf6Ou3du4YFNyrZl5BUr5YKd/DiqRCz\r\nK+g+l5eAU+Q8WtA2FgPfSlzDRm1QhRzbWBYGlnssWlgLcOPurAGTbphSnJWg\r\nfZQxdqqbxkfNfbcNz92Ca9r3C5qS6P6wD7zhEcmXhs7NsnY7ri2NdzWqCsD3\r\nlbuHbSeSA9N54HH7xc5+B7PjRSpyA0MBM9NOWlAPHwA8FevCjBnNK4EhAN2t\r\nabDcc7jmAIIHmGVlag7kx5WYY/5CymD9qjGlgGIBuK04WRUw1rvL2xATKgjF\r\n8uMra2WAmmQSgVO2R3+GyKSfiwOiQ0Cu6VABSQbSQnO8eEq3PDqjvwIPO/xQ\r\nU9jzjplKqr6ViXgEgprNCYZCb4Z1ioL8qA3OlBN8mg8aZKxDF8VO3VLCkqgr\r\n8+cuP6+QhB7cm6eOyjJUphtdqEKllbRtm5qAgY7akESxWIP3DnN9VPTwZMIz\r\nw3OnwExPvpne+QwtQRocBoz599b9DUxEy8yeoLJr+7Ynswp8Gip+G4c/LeVH\r\n4hFLXThtCsdh6Wrz72/Wn0u6HGtIUbubzZ7/GEfFbjmQoAr9gkPao1QQmFAS\r\nx9tIlUstDr3v15gxU/JiR5Kkelh7KXBbL44=\r\n=lbLo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aymantaybi","email":"taybiayman0@gmail.com"},"directories":{},"maintainers":[{"name":"aymantaybi","email":"taybiayman0@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/instagram-private-api_1.45.4_1674149952042_0.779023220060419"},"_hasShrinkwrap":false},"1.45.5":{"name":"@aymantaybi/instagram-private-api","description":"Instagram private API wrapper for full access to instagram","version":"1.45.5","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","engines":{"node":">=8.0.0"},"bugs":{"url":"https://github.com/dilame/instagram-private-api/issues","email":"dilame.nickolson@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/dilame/instagram-private-api.git"},"homepage":"https://github.com/dilame/instagram-private-api","scripts":{"build":"rimraf dist && tsc -p tsconfig.build.json","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json -c tslint.json","typecheck":"tsc -p tsconfig.build.json --noEmit","prepare":"npm run build","test":"mocha --inline-diffs --timeout 1000000 tests/run.js","generate-interface":"ts-node ./tools/response-to-interface.ts","generate-docs":"typedoc"},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"dependencies":{"@lifeomic/attempt":"^3.0.0","@types/chance":"^1.0.2","@types/request-promise":"^4.1.43","bluebird":"^3.7.1","chance":"^1.0.18","class-transformer":"^0.3.1","debug":"^4.1.1","image-size":"^0.7.3","json-bigint":"^1.0.0","lodash":"^4.17.20","luxon":"^1.12.1","reflect-metadata":"^0.1.13","request":"^2.88.0","request-promise":"^4.2.4","rxjs":"^6.5.2","snakecase-keys":"^3.1.0","tough-cookie":"^2.5.0","ts-custom-error":"^2.2.2","ts-xor":"^1.0.6","url-regex-safe":"^3.0.0","utility-types":"^3.10.0"},"peerDependencies":{"re2":"^1.17.2"},"peerDependenciesMeta":{"re2":{"optional":true}},"devDependencies":{"@types/bluebird":"^3.5.26","@types/lodash":"^4.14.123","@types/luxon":"^1.12.0","@types/node":"^10.14.5","@types/tough-cookie":"^2.3.5","dotenv":"^6.2.0","husky":"^1.3.1","inquirer":"^1.1.2","json-ts":"^1.6.4","prettier":"^1.19.1","pretty-quick":"^1.10.0","rimraf":"^2.6.3","ts-node":"^8.1.0","tslint":"^5.16.0","typedoc":"^0.22.11","typedoc-plugin-markdown":"^3.11.14","typescript":"^4.3.5"},"gitHead":"6a7dae2f4f302792831131afc9ea88ecfb8e863f","_id":"@aymantaybi/instagram-private-api@1.45.5","_nodeVersion":"16.17.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-e4sOMwRWXvTGvsN3flRodLwmlcqmL80kAjlYtbnSQAxtbSRO/65rr6dxhdiQGVhARPPR9T6ThgJ8B2MC43fmtw==","shasum":"2b82adaf3db626c36cc91835b6bf59bd7ad036af","tarball":"https://registry.npmjs.org/@aymantaybi/instagram-private-api/-/instagram-private-api-1.45.5.tgz","fileCount":798,"unpackedSize":977629,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDKtKgcbpWXvzIMWZsEllydGWteiX55Bfe7UG6611mTFAiEAiAhHkY1yl9TJg3ZVxh9OqAHUNm/483X2sxJV7d2MX8g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyYNLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCBxAAl1JTWHvKQTLTL8ScQisDlxMSNSId7+UPFWFuwkQhM6TGmpZL\r\nYR1nyf74kutKsse6hmjfWmMwxpQGkEERBCalgXxCI49678TrmpWf8QfTuoSK\r\nxKMcFXaMXuck/s2gEytVY9ogBcTdCuYvpg2AYCgCFJTXao24KSn3bjR9s4K2\r\nRj1BAFoN8DzzDZbw4jO1q0kddtSzn63EKIsi0ZwnMMkZa07uw4lHNdyzjDIB\r\npWbnvSCKh3NGrJUVRjAiDk4yRNzv4gErhZ/2LeOblv5+UsolMK+7NDO3cFGK\r\nX48tWZcHiuUJ8ov+1k/mYIKBTDINoCqxAJY33bHH84XuCKn40P8EobP6mGaI\r\nHb1NtCb62/frA4vwJCMOLpJ1rQNmBta08jUto1HIAjMk83dduIPy4vwMjGGL\r\n0om0Bn8PpiYTIpjIxKi/EUy/yDm9Hz31hxsZadBLctO0Cl3FcUIFmhvJpFQb\r\nHNsEjGCCUVsT3s9FcZ+3OV7GYs2w8hTVyGuW8JmMCzIDYm5+MBaXKW9ITxU3\r\nbdYhju1jNhe7Xis7o7yADIWMubUjGWWuIfLvO17Ozg4dt50RMd2QxNLpXC3+\r\nWB4pJ174qOt4ihgeErSr3oLaUVZD48Qm2Ch+3p+u2g9BmQcptgjzwf8QWNAf\r\nFDIV7PT8RPs+tlaQc3SbFSdKgjNRmKAspEA=\r\n=BJha\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aymantaybi","email":"taybiayman0@gmail.com"},"directories":{},"maintainers":[{"name":"aymantaybi","email":"taybiayman0@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/instagram-private-api_1.45.5_1674150731076_0.7255178899741577"},"_hasShrinkwrap":false},"1.45.6":{"name":"@aymantaybi/instagram-private-api","description":"Instagram private API wrapper for full access to instagram","version":"1.45.6","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","engines":{"node":">=8.0.0"},"bugs":{"url":"https://github.com/dilame/instagram-private-api/issues","email":"dilame.nickolson@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/dilame/instagram-private-api.git"},"homepage":"https://github.com/dilame/instagram-private-api","scripts":{"build":"rimraf dist && tsc -p tsconfig.build.json","format":"prettier --write \"src/**/*.ts\"","lint":"tslint -p tsconfig.json -c tslint.json","typecheck":"tsc -p tsconfig.build.json --noEmit","prepare":"npm run build","test":"mocha --inline-diffs --timeout 1000000 tests/run.js","generate-interface":"ts-node ./tools/response-to-interface.ts","generate-docs":"typedoc"},"husky":{"hooks":{"pre-commit":"pretty-quick --staged"}},"dependencies":{"@lifeomic/attempt":"^3.0.0","@types/chance":"^1.0.2","@types/request-promise":"^4.1.43","bluebird":"^3.7.1","chance":"^1.0.18","class-transformer":"^0.3.1","debug":"^4.1.1","image-size":"^0.7.3","json-bigint":"^1.0.0","lodash":"^4.17.20","luxon":"^1.12.1","reflect-metadata":"^0.1.13","request":"^2.88.0","request-promise":"^4.2.4","rxjs":"^6.5.2","snakecase-keys":"^3.1.0","tough-cookie":"^2.5.0","ts-custom-error":"^2.2.2","ts-xor":"^1.0.6","url-regex-safe":"^3.0.0","utility-types":"^3.10.0"},"peerDependencies":{"re2":"^1.17.2"},"peerDependenciesMeta":{"re2":{"optional":true}},"devDependencies":{"@types/bluebird":"^3.5.26","@types/lodash":"^4.14.123","@types/luxon":"^1.12.0","@types/node":"^10.14.5","@types/tough-cookie":"^2.3.5","dotenv":"^6.2.0","husky":"^1.3.1","inquirer":"^1.1.2","json-ts":"^1.6.4","prettier":"^1.19.1","pretty-quick":"^1.10.0","rimraf":"^2.6.3","ts-node":"^8.1.0","tslint":"^5.16.0","typedoc":"^0.22.11","typedoc-plugin-markdown":"^3.11.14","typescript":"^4.3.5"},"gitHead":"0b00560e0aae598356f3a15c325999cee7cddfe9","_id":"@aymantaybi/instagram-private-api@1.45.6","_nodeVersion":"16.17.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-5xjQtsyIjD6gVTkEzsOQeUwafdtZslRfw0O1y9n5Vggc/Wem0WjWcl8LgGoVD6eFFynchq1DYb4/oS4pz8kcjA==","shasum":"370e33de974ba6466057f09d73ea60786967827c","tarball":"https://registry.npmjs.org/@aymantaybi/instagram-private-api/-/instagram-private-api-1.45.6.tgz","fileCount":798,"unpackedSize":977631,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsgiiA7hmEB5o473bBekljOdvwoG8x/QZtt54Ni74RiwIgZKHLV4oFqQshgo81KR7Iw/5yarwoec43Bwv6FmNAIjY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyYmRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpm7A//RBTqP37pnLHGqX6+AaJY1V7qXQ+9oIWufghLETH6HG+AzzKj\r\nQAYLG4uKN7FcVbbR4VjgD1XIzRddr+H/EOWmb+E6EkIbPPexX64pIept7xWp\r\nJG7f3TLtrZkiGQZ5bwx7qxwMSCRN6RTgwo0yb2Lm1nq9DZOzHAOokV87VyG9\r\n9zYwi30HjwVG+/bvw6yQ9axvX+0tM3a5d+Td7vCjdfE52ykgBdkH2CRI9rHF\r\nS665OTqTM6T0CD53kMb/z03dU1Pip5zOJdUciiDakmFmkDgaOxD+kDtk1iQ8\r\nsYjBsOpUSlg3bcSaTBjgR1z2vQOVlqm2eKTWGMph4NwEOGGmPU4ZuEW+I7yJ\r\nNiL7MDTUG2ETRe4yvKg15Vkiadxe98r37h078a/WQz9tqVR1i7+UdHR9iHhQ\r\nc3YheHAAeDNYuYqULOYiyr2izP6ukigehHg8WWFCtoAy679VtQm7luoTsoDR\r\nbZ2lVLFa375heHFwSfdzw0nvQvTfxWLQDupPXkLwrCmFed2uNyC34JSQ/mHW\r\nlZZ5YuiE6uXix3+EN0y6+SaN6MO/mbxZKiIKDed+v8/mOma0ZRZdiW4jlj6+\r\nnlGvytsPnKTMMfKQGNUo52ObE3N1GNiSRVMSazGyMFUz0z2sYa7DIbDKExmo\r\nqCRufMz1ZknTn1qDbKUkYicxFYG4tIyG8PY=\r\n=M1ZP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aymantaybi","email":"taybiayman0@gmail.com"},"directories":{},"maintainers":[{"name":"aymantaybi","email":"taybiayman0@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/instagram-private-api_1.45.6_1674152337072_0.829070242403573"},"_hasShrinkwrap":false}},"maintainers":[{"name":"aymantaybi","email":"taybiayman0@gmail.com"}],"description":"Instagram private API wrapper for full access to instagram","homepage":"https://github.com/dilame/instagram-private-api","repository":{"type":"git","url":"git+https://github.com/dilame/instagram-private-api.git"},"bugs":{"url":"https://github.com/dilame/instagram-private-api/issues","email":"dilame.nickolson@gmail.com"},"license":"MIT","readme":"# NodeJS Instagram private API client\n\n![logo](https://cloud.githubusercontent.com/assets/1809268/15931032/2792427e-2e56-11e6-831e-ffab238cc4a2.png)\n\n[![Telegram Chat](https://img.shields.io/badge/telegram-join%20chat-informational.svg)](https://t.me/igpapi)\n[![npm](https://img.shields.io/npm/dm/instagram-private-api.svg?maxAge=600)](https://www.npmjs.com/package/instagram-private-api)\n[![npm](https://img.shields.io/npm/l/instagram-private-api.svg?maxAge=600)](https://github.com/huttarichard/instagram-private-api/blob/master/LICENSE)\n[![Join the chat at https://gitter.im/instagram-private-api/Lobby](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/instagram-private-api/Lobby)\n\n---\n\n# Next major version\n\nMe and [Nerix](https://github.com/Nerixyz) are ready to announce the next 2.x.x version of this library.\nIt has extended feature list.\nIt's a big release.\nWe have significantly expanded the functionality and capabilities.\nThe library turned into a monorepository and now it's a set of libraries, connected in an ecosystem.\nIt consists of\n\n- Android API\n- Web API\n- FBNS, Realtime\n\nWe've done some work on design decisions.\nWe simplified the state management process.\nNow you can easily make a snapshot of account state, save it in a persistent storage and then restore a 1-to-1 copy with just 1 function call.\nWith new realtime features you can listen for new direct messages, notifications and any other events.\n\nThe new version is hosted in private repository. Access is paid.\nMembers get **basic** support for installation, configuration, and usage.\nWe also will try to react on your feature requests.\n\nYou can contact me in [telegram](https://t.me/bowzee) or [email](mailto:dilame.bowzee@gmail.com) for details.\n\n# Table of Contents\n\n- [Install](#install)\n- [Support us](#support-us)\n- [Examples](#examples)\n- [Basic Concepts](#basic-concepts)\n  - [Feeds](#feeds)\n  - [Repositories](#repositories)\n  - [Services](#services)\n- [Contribution](#contribution)\n- [Useful Links](#useful-links)\n  - [Special Thanks](#special-thanks)\n  - [Thanks to Contributors](#thanks-to-contributors)\n  - [End User License Agreement (EULA)](#end-user-license-agreement-eula)\n\n# Install\n\nFrom npm\n\n```\nnpm install instagram-private-api\n```\n\nFrom github\n\n```\nnpm install github:dilame/instagram-private-api\n```\n\nThis package uses [`url-regex-safe`](https://www.npmjs.com/package/url-regex-safe) ([GitHub](https://github.com/spamscanner/url-regex-safe)) to check for links when sending direct messages.\nBy default, the **safe** regex engine [`re2`](https://github.com/uhop/node-re2) is **not** installed.\n⚠ It's highly recommended for you to install `re2` by running `npm install re2`, else you _will_ be vulnerable to [CVE-2020-7661](https://nvd.nist.gov/vuln/detail/CVE-2020-7661).\n\n# Support us\n\nIf you find this library useful for you, you can support it by donating any amount\n\nBTC: 1Dqnz9QuswAvD3t7Jsw7LhwprR6HAWprW6\n\n# Examples\n\nYou can find usage examples [here](examples).\n\n_Note for JavaScript users:_\nAs of Node v.13.5.0, there isn't support for ESModules and the 'import'-syntax.\nSo you have to read the imports in the examples like this:\n\n`import { A } from 'b'` ➡ `const { A } = require('b')`\n\n```typescript\nimport { IgApiClient } from 'instagram-private-api';\nimport { sample } from 'lodash';\n\nconst ig = new IgApiClient();\n// You must generate device id's before login.\n// Id's generated based on seed\n// So if you pass the same value as first argument - the same id's are generated every time\nig.state.generateDevice(process.env.IG_USERNAME);\n// Optionally you can setup proxy url\nig.state.proxyUrl = process.env.IG_PROXY;\n(async () => {\n  // Execute all requests prior to authorization in the real Android application\n  // Not required but recommended\n  await ig.simulate.preLoginFlow();\n  const loggedInUser = await ig.account.login(process.env.IG_USERNAME, process.env.IG_PASSWORD);\n  // The same as preLoginFlow()\n  // Optionally wrap it to process.nextTick so we dont need to wait ending of this bunch of requests\n  process.nextTick(async () => await ig.simulate.postLoginFlow());\n  // Create UserFeed instance to get loggedInUser's posts\n  const userFeed = ig.feed.user(loggedInUser.pk);\n  const myPostsFirstPage = await userFeed.items();\n  // All the feeds are auto-paginated, so you just need to call .items() sequentially to get next page\n  const myPostsSecondPage = await userFeed.items();\n  await ig.media.like({\n    // Like our first post from first page or first post from second page randomly\n    mediaId: sample([myPostsFirstPage[0].id, myPostsSecondPage[0].id]),\n    moduleInfo: {\n      module_name: 'profile',\n      user_id: loggedInUser.pk,\n      username: loggedInUser.username,\n    },\n    d: sample([0, 1]),\n  });\n})();\n```\n\n# Basic concepts\n\n**You can find documentation in the [`docs` folder](docs)**.\nConsider starting in [`IgApiClient` (`index` module)](docs/classes/index/IgApiClient.md), the root class.\n\nYou'll often see `ig` in the docs.\nThis just refers to the client, an instance of [`IgApiClient`](docs/classes/index/IgApiClient.md) holding the state for one user.\n\n```typescript\nimport { IgApiClient } from 'instagram-private-api';\n\n// This is the general convention on how to name the client\n//    vv\nconst ig = new IgApiClient();\n\n// login, load a session etc.\n```\n\n## Repositories\n\nRepositories implement low-level operations - every method sends exactly _one_ api-request.\n\n- See the list of **available repositories** [here](docs/modules/repositories.md).\n- See the list of **their keys** in [`IgApiClient` here](docs/classes/index/IgApiClient.md).\n\nYou access repositories on the [client (`IgApiClient`)](docs/classes/index/IgApiClient.md) by their lower-case (_camelCase_) name without the `Repository` suffix.\nFor example, you access the instance of [`AddressBookRepository`](docs/classes/repositories/AddressBookRepository.md) by [`ig.addressBook`](docs/classes/index/IgApiClient.md#addressbook).\n\n## Feeds\n\nFeeds represent paginated endpoints like a user's feed ([`UserFeed`](docs/classes/index/FeedFactory.md#user)).\nThink of feeds like (async-)iterators/streams/observables (in fact feeds are [async iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) and observable (`feed.item$`)).\nEvery feed is accessible via `ig.feed.feedName()` (_camelCase_ name). `ig.feed` is the [`FeedFactory`](docs/classes/index/FeedFactory.md) that creates feeds for you connected to the instance of `ig`.\n\n- See the list of **available feeds** [here](docs/modules/feeds.md).\n- See the list of **their keys** in [`FeedFactory` (`ig.feed`) here](docs/classes/index/FeedFactory.md).\n- See [this example](examples/account-followers.feed.example.ts) and learn how to work with library feeds.\n\nMost of the feeds require initialization parameter(s), like a user-pk (id).\n\n## Services\n\nServices will help you to maintain some actions without calling a couple repository methods or perform complex things like pre and postlogin flow simulations or photo/video publishing.\n\n- See the list of **available repositories** [here](docs/modules/services.md).\n- See the list of **their keys** in [`IgApiClient` here](docs/classes/index/IgApiClient.md).\n\n# Debugging\n\nIn order to get debug infos provided by the library, you can enable debugging.\nThe prefix for this library is `ig`.\nTo get all debug logs (_recommended_) set the namespace to `ig:*`.\n\n#### Node\n\nIn Node you only have to set the environment variable `DEBUG` to the desired namespace.\n[Further information](https://github.com/visionmedia/debug#environment-variables)\n\n# Contribution\n\nIf you need features that is not implemented - feel free to implement and create PRs!\n\nPlus we need some documentation, so if you are good in it - you are welcome.\n\nSetting up your environment is described [here](CONTRIBUTING.md).\n\n# Useful links\n\n[instagram-id-to-url-segment](https://www.npmjs.com/package/instagram-id-to-url-segment) - convert the image url fragment to the media ID\n\n## Special thanks\n\n- [Richard Hutta](https://github.com/huttarichard), original author of this library. Thanks to him for starting it.\n\n## Thanks to contributors\n\n- [Nerixyz](https://github.com/Nerixyz), for writing a huge amount of code for this library.\n","readmeFilename":"README.md"}