{"id":13825968,"url":"https://github.com/stanvanrooy/instauto","last_synced_at":"2025-07-08T22:33:04.455Z","repository":{"id":46283394,"uuid":"281213145","full_name":"stanvanrooy/instauto","owner":"stanvanrooy","description":"Simple to use wrapper around the private Instagram API, written in Python.","archived":false,"fork":false,"pushed_at":"2024-07-05T22:22:05.000Z","size":9545,"stargazers_count":108,"open_issues_count":10,"forks_count":24,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-06-23T19:04:50.156Z","etag":null,"topics":["bot","hacktoberfest","instagram","instagram-api","instagram-scraper","python"],"latest_commit_sha":null,"homepage":"https://instauto.readthedocs.io","language":"Python","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/stanvanrooy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2020-07-20T19:57:18.000Z","updated_at":"2025-05-31T16:34:30.000Z","dependencies_parsed_at":"2024-06-07T23:43:52.370Z","dependency_job_id":"539ef1f4-bd90-41da-9f34-8619e1adb099","html_url":"https://github.com/stanvanrooy/instauto","commit_stats":{"total_commits":318,"total_committers":22,"mean_commits":"14.454545454545455","dds":"0.39622641509433965","last_synced_commit":"e48821946d6c78cb7d6ec54bc6596afa8c7179ff"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/stanvanrooy/instauto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanvanrooy%2Finstauto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanvanrooy%2Finstauto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanvanrooy%2Finstauto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanvanrooy%2Finstauto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stanvanrooy","download_url":"https://codeload.github.com/stanvanrooy/instauto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanvanrooy%2Finstauto/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261539314,"owners_count":23174136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bot","hacktoberfest","instagram","instagram-api","instagram-scraper","python"],"created_at":"2024-08-04T09:01:30.071Z","updated_at":"2025-07-08T22:33:04.105Z","avatar_url":"https://github.com/stanvanrooy.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Instauto\n[![All Contributors](https://img.shields.io/badge/all_contributors-15-orange.svg?style=flat-square)](#contributors-)\n[![GitHub stars](https://img.shields.io/github/stars/stanvanrooy/instauto)](https://github.com/stanvanrooy/instauto/stargazers)\n[![PyPI license](https://img.shields.io/pypi/l/instauto)](https://pypi.python.org/project/instauto/)\n[![Downloads](https://pepy.tech/badge/instauto/week)](https://pepy.tech/project/instauto)\n[![Documentation Status](https://readthedocs.org/projects/instauto/badge/?version=latest)](https://instauto.readthedocs.io/en/latest/?badge=latest)\n\n\n`instauto` is a Python package for automating Instagram, making use of the private Instagram API. `instauto` tries to have feature parity with the Instagram app.\n\n## Overview\nInstauto has 3 main api's that can be used: `instauto.api`, `instauto.bot` and `instauto.helpers`. You should probably use `instauto.helpers` and only start using `instauto.api` when you actually need its functionality.\n\nEverything in `instauto`, is based around the 'core' `instauto.api` package. This package interacts directly with the private Instagram API and contains all functionality. This package is both the most flexible (you can update all requests sent and receive the full response back, for example), but also the most complex. You likely do not need to use this package.\n\nThe `instauto.helpers` package, is an abstraction above the `instauto.api` pacakge. It offers a little bit less flexibility, but is a lot less complex to use. It also offers [typed models](https://github.com/stanvanrooy/instauto/blob/master/instauto/helpers/models.py).\n\nThe `instauto.bot` package, is another abstraction, but this time over the `instauto.helpers` package. This package has pretty much no flexibility, but can be set up in 10 lines of Python code.\n\n## Installation\nThe package can be installed with the following pip command:\n```pip install instauto```\n\n## Getting started\nBelow are a few examples for getting stared quickly. After getting started, you'll probably want to take a quick look at the more [detailed documentation](https://instauto.readthedocs.io/) on readthedocs.\n\n### Authentication\nYou'll want to do this as little as possible. Instagram sees logging in often as a huge red flag.\n```python\nfrom instauto.api.client import ApiClient\nclient = ApiClient(username='your_username', password='your_password')\nclient.log_in()\n```\n\n### Restoring state\nBecause of that, you can restore your session.\n```python\nclient.save_to_disk('your-savefile.instauto')\nclient = ApiClient.initiate_from_file('your-savefile.instauto')\n```\n\n### Making new friends\nOfcourse `instauto` also supports (un)following users.\n```python\nfrom instauto.helpers.friendships import follow_user, unfollow_user\nfollow_user(client, username='stan000_')\nunfollow_user(client, username='stan000_')\n```\n\n### Finding new friends\nBut before you can follow users, you'll need to find them first.\n```python\nfrom instauto.helpers.search import search_username\nusers = search_username(client, \"username\", 10)\n```\n\n### Retrieving 100 of your followers\nGetting a list of users that follow you is also super simple. \n```python\nfrom instauto.helpers.friendships import get_followers\nfollowers = get_followers(client, username='your_username', limit=100)\n```\n\n### Uploading images\n`instauto` also offers a simple API for uploading images to your feed and story.\n```python\nfrom instauto.helpers.post import upload_image_to_feed\nupload_image_to_feed(client, './cat.jpg', 'Hello from instauto!')\n```\n\n### Looking at your feed\nYour feed can't be missing, it's pretty much what Instagram is about, isn't it?\n```python\nfrom instato.helpers.feed import get_feed\nposts = get_feed(client, 100)\n```\n\n## More examples \nLooking for something else? We have more examples:\n- [feed helper functions](https://github.com/stanvanrooy/instauto/tree/master/examples/helpers/feed)\n- [friendship helper functions](https://github.com/stanvanrooy/instauto/tree/master/examples/helpers/friendships)\n- [post helper functions](https://github.com/stanvanrooy/instauto/tree/master/examples/helpers/post)\n- [search helper function](https://github.com/stanvanrooy/instauto/tree/master/examples/helpers/search)\n- [advanced examples](https://github.com/stanvanrooy/instauto/tree/master/examples/api)\n\nStil no look? Submit a feature request!\n\n## Tutorials\n- Scraping Instagram API with Instauto: https://www.trickster.dev/post/scraping-instagram-api-with-instauto/\n- How I made an instagram bot that posts a quote every day: https://joaoramiro.medium.com/how-i-made-an-instagram-bot-that-publishes-a-post-every-day-cc49e526bc54\n\n## Support\nThis is a hobby project, which means sometimes other things take priority. I will review issues and work on issues when I have the time. Spamming new issues, asking for a ton of updates, or things like that, will not speed up the process. It will probably even give me less motivation to work on it :)\n\nIf you're looking for paid support, please reach out to me at [stanvanrooy6@gmail.com](mailto:stanvanrooy6@gmail.com).\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nThere's an [article up on the wiki](https://github.com/stanvanrooy/instauto/wiki/Setting-up-a-development-environment),  that explains how to set up a development environment.\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/marosgonda\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/16307489?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMaroš Gonda\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=marosgonda\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=marosgonda\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/gocnik95\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/68646331?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNorbert Gocník\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=gocnik95\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/juhas96\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/25826778?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJakub Juhas\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=juhas96\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=juhas96\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=juhas96\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Samu1808\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/64809910?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSamu1808\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=Samu1808\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.kevinjonathan.com\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/12078441?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKevin Jonathan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=kevinjon27\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/marvic2409\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/25594875?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMartin Nikolov\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=marvic2409\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/b177y\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/34008579?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eb177y\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=b177y\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=b177y\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=b177y\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/returnWOW\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/16145271?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ewowopo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=returnWOW\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://rooy.works\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/49564025?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStan van Rooy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=stanvanrooy\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=stanvanrooy\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=stanvanrooy\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/tibotix\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/38123657?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTizian Seehaus\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=tibotix\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/ItsFlorkast\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/43137808?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFlorkast\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=ItsFlorkast\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://atnartur.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5189110?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eArtur\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=atnartur\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=atnartur\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Fislix\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/84190063?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFelix Fischer\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=Fislix\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/alperenkaplan\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/48252753?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ealperenkaplan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=alperenkaplan\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=alperenkaplan\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/javad94\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7765309?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJavadz\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=javad94\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/stanvanrooy/instauto/commits?author=javad94\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanvanrooy%2Finstauto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstanvanrooy%2Finstauto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanvanrooy%2Finstauto/lists"}