If you are tired of being blocked when receiving data from Instagram, I recommend using our service - Lamadava SaaS and Datalama SaaS
Features:
- Anonymous getting of user, posts, stories, highlights, followers and following users
- Anonymous getting an email and phone number, if the user specified them in his business profile
- Anonymous getting of post, story, album, Reels, IGTV data and the ability to download content
- Anonymous getting of hashtag and location data, as well as a list of posts for them
- Anonymous getting of all comments on a post and a list of users who liked it
- Management of proxy servers, mobile devices, solving captcha and challenge resolver
- Login by username and password, sessionid and support 2FA
- Managing messages and threads for Direct and attach files
- Download and upload a Photo, Video, IGTV, Reels, Albums and Stories
- Work with Users, Posts, Comments, Insights, Collections, Location and Hashtag
- Insights by account, posts and stories
- Like, following, commenting, editing account (Bio) and much more else
RESTful API Service for instagrapi
Allows you to use the Instagram Private API on any operating system from any programming language (C++, C#, F#, D, Golang, Erlang, Elixir, Nim, Haskell, Lisp, Closure, Julia, R, Java, Kotlin, Scala, OCaml, JavaScript, Crystal, Ruby, Rust, Swift, Objective-C, Visual Basic, .NET, Pascal, Perl, Lua, PHP and others) to automate the work of your accounts.
- Authorization: Login, support 2FA and manage settings
- Media: info, delete, edit, like, archive and much more else
- Video: download, upload to feed and story
- Photo: download, upload to feed and story
- IGTV: download, upload to feed and story
- Clip (Reels): download, upload to feed and story
- Album: download, upload to feed and story
- Story: info, delete, seen, download and much more else
- User: followers/following, info, follow/unfollow, remove_follower and much more else
- Insights: media, account
Install ImageMagick library:
sudo apt install imagemagick
...and comment the line with strict security policies of ImageMagick in /etc/ImageMagick-6/policy.xml
:
<!--<policy domain="path" rights="none" pattern="@*"/>-->
Run docker container:
docker run adw0rd/instagrapi-rest
Or clone the repository:
git clone https://github.com/adw0rd/instagrapi-rest.git
cd instagrapi-rest
Build your image and run the container:
docker build -t instagrapi-rest .
docker run -p 8000:8000 instagrapi-rest
Or you can use docker-compose:
docker-compose up -d
Or manual installation and launch:
python3 -m venv .venv
. .venv/bin/activate
pip install -U wheel pip -Ur requirements.txt
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
Open in browser http://localhost:8000/docs and follow the instructions
Get sessionid:
curl -X 'POST' \
'http://localhost:8000/auth/login' \
-H 'accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=<USERNAME>&password=<PASSWORD>&verification_code=<2FA CODE>'
Upload photo:
curl -X 'POST' \
'http://localhost:8000/photo/upload_to_story' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'sessionid=<SESSIONID>' \
-F 'file=@photo.jpeg;type=image/jpeg'
Upload photo by URL:
curl -X 'POST' \
'https://localhost:8000/photo/upload_to_story/by_url' \
-H 'accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'sessionid=<SESSIONID>&url=https%3A%2F%2Fapi.telegram.org%2Ffile%2Ftest.jpg'
Upload video:
curl -X 'POST' \
'http://localhost:8000/video/upload_to_story' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'sessionid=<SESSIONID>' \
-F 'file=@video.mp4;type=video/mp4'
Upload video by URL:
curl -X 'POST' \
'https://localhost:8000/video/upload_to_story/by_url' \
-H 'accept: application/json' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'sessionid=<SESSIONID>&url=https%3A%2F%2Fapi.telegram.org%2Ffile%2Ftest.MP4'
You can use this repo to generate client code for this rest api in any language you want to use.
Exapmle:
openapi-generator-cli generate -g python -i https://localhost:8000]/openapi.json --skip-validate-spec
Note skip-validate-spec
is not necesserily required, when running it on my pc it couldn't validate the spec for some reason.
Tests can be run like this:
docker-compose run api pytest tests.py
One test:
docker-compose run api pytest tests.py::test_media_pk_from_code
or without docker-compose:
docker run --rm -v "$(pwd):/app" instagrapi-rest pytest tests.py
For debugging:
docker-compose run --service-ports api