{"id":49331923,"url":"https://github.com/felipeinf/instagranode","last_synced_at":"2026-04-26T23:00:46.125Z","repository":{"id":350763540,"uuid":"1207603222","full_name":"felipeinf/instagranode","owner":"felipeinf","description":"TypeScript SDK that calls Instagram’s unofficial web API.","archived":false,"fork":false,"pushed_at":"2026-04-11T23:24:54.000Z","size":40,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-24T02:38:13.776Z","etag":null,"topics":["instagram","instagram-api","instagram-scraping","js","public-api","unofficial"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/instagranode","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felipeinf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-11T06:29:23.000Z","updated_at":"2026-04-20T02:11:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/felipeinf/instagranode","commit_stats":null,"previous_names":["felipeinf/instagranode"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/felipeinf/instagranode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeinf%2Finstagranode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeinf%2Finstagranode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeinf%2Finstagranode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeinf%2Finstagranode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felipeinf","download_url":"https://codeload.github.com/felipeinf/instagranode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeinf%2Finstagranode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32315712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T21:09:39.134Z","status":"ssl_error","status_checked_at":"2026-04-26T21:09:21.240Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["instagram","instagram-api","instagram-scraping","js","public-api","unofficial"],"created_at":"2026-04-26T23:00:45.374Z","updated_at":"2026-04-26T23:00:46.114Z","avatar_url":"https://github.com/felipeinf.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"img/instagranode-img-0.svg\" width=\"128\" height=\"auto\" alt=\"instagranode\" /\u003e\n\n# instagranode\n\n[![npm version](https://img.shields.io/npm/v/instagranode.svg)](https://www.npmjs.com/package/instagranode)\n\n\u003c/div\u003e\n\nTypeScript SDK for Node.js (18+) that calls Instagram’s **unofficial** web API endpoint `web_profile_info` using browser-like headers.\n\n**Public profiles.** The flow this library uses targets **publicly visible** profile data exposed by Instagram’s web client. **It does not require Instagram user authentication** (no login, no OAuth access token, no session cookies). That also means behavior for **private** accounts is limited to what the endpoint returns without a logged-in viewer (for example, follower counts may appear while post media may not).\n\n**Not an official product.** instagranode is **not** an official product, has **no** relationship with Meta, and is **not** affiliated with Instagram. **You are solely responsible** for your use of this library. It was **not** created with commercial use in mind and is **not** a commercial product, is **not** offered for sale, and is **not** intended as a substitute for any official Instagram tooling.\n\n## Install\n\n```bash\nnpm install instagranode\n```\n\n## Quick start\n\n```typescript\nimport { InstagraNode } from \"instagranode\";\n\nconst ig = new InstagraNode({ browser: \"chrome-mac\" });\nconst profile = await ig.searchProfile(\"google\");\n\nconsole.log(profile.id, profile.followerCount, profile.isPrivate);\nconsole.log(profile.mentions(), profile.links());\nconsole.log(profile.address(), profile.business());\nconsole.log(profile.hasVisibleMedia());\n\nawait profile.downloadProfilePic(\"./avatar.jpg\");\n```\n\n## Sandbox (no network)\n\n```bash\nexport INSTAGRANODE_SANDBOX=true\n```\n\nOr:\n\n```typescript\nconst ig = new InstagraNode({ sandbox: true });\n```\n\nFixture usernames: `sandbox_influencer`, `sandbox_business`, `sandbox_private`, `sandbox_private_media`. Any other username resolves to `sandbox_influencer` data with the requested username string.\n\n## Errors\n\nAll SDK errors extend `InstagraNodeError` with `code` and `recoverable`. Handle `ProfileNotFoundError`, `IncompleteProfileError`, `RateLimitedError`, `BlockedError`, `NetworkError`, and `CircuitOpenError` as needed.\n\n## Docs\n\nSee the `docs/` folder on GitHub: `getting-started.md`, `profiles.md`, `download.md`, `examples.md`.\n\n## License\n\n**MIT:** you may use, modify, and redistribute the code freely; the license includes a standard “as is” warranty disclaimer. The full text is in [LICENSE](./LICENSE). The separate **Legal disclaimer** at the end of this file also applies.\n\n## Legal disclaimer\n\n**What this is.** The following is a general informational disclaimer about the software and the project. It is not tailored to your situation or jurisdiction and does not create an attorney–client relationship.\n\nThis notice is written with U.S. law in mind; your rights and duties may differ elsewhere.\n\n**instagranode** is not affiliated with, endorsed by, maintained by, or sponsored by Meta Platforms, Inc., Instagram, or their affiliates. **Instagram** is a trademark of Meta Platforms, Inc.\n\nThe software is provided **“AS IS”** and **“AS AVAILABLE”**, without warranties of any kind, whether express or implied, including implied warranties of merchantability, fitness for a particular purpose, and non-infringement. **Your use is at your sole risk.** To the fullest extent permitted by law, the authors and contributors disclaim liability for any direct, indirect, incidental, special, consequential, or exemplary damages, and for any loss of data, account access, goodwill, or other intangible losses, arising out of or related to your use or inability to use this software—including claims arising from violation of Instagram’s terms, policies, or applicable law, or from misuse by you or third parties.\n\nThe project exists for **personal learning and experimentation** only. You are solely responsible for compliance with Instagram’s terms and all laws that apply to you. The maintainers do not encourage or support unlawful, abusive, or harmful use.\n\nThe above is for **general information only**. It is **not legal advice**.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeinf%2Finstagranode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipeinf%2Finstagranode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeinf%2Finstagranode/lists"}