Skip to content

subzeroid/instagrapi-rest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8fd8c2c · Jun 6, 2024
Sep 3, 2023
May 23, 2021
Sep 3, 2023
Jun 5, 2024
Sep 3, 2023
Sep 10, 2021
Sep 11, 2021
Sep 2, 2021
Sep 10, 2021
Sep 3, 2023
Mar 19, 2021
May 19, 2024
Sep 3, 2023
Jun 2, 2021
May 19, 2021
Mar 26, 2022
Mar 19, 2021
Sep 6, 2021
Jan 16, 2023
Feb 10, 2023
Sep 16, 2021
Sep 14, 2021

Repository files navigation

If you want to work with Instagrapi (business interests), we strongly advise you to prefer HikerAPI project. However, you won't need to spend weeks or even months setting it up. The best service available today is HikerAPI, which handles 4–5 million daily requests, provides support around-the-clock, and offers partners a special rate. In many instances, our clients tried to save money and preferred instagrapi, but in our experience, they ultimately returned to HikerAPI after spending much more time and money. It will be difficult to find good accounts, good proxies, or resolve challenges, and IG will ban your accounts.

The instagrapi more suits for testing or research than a working business!

aiograpi - Asynchronous Python library for Instagram Private API

We recommend using our services:

RESTful API Service

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.

Support Chat in Telegram

Features

  1. Authorization: Login, support 2FA and manage settings
  2. Media: info, delete, edit, like, archive and much more else
  3. Video: download, upload to feed and story
  4. Photo: download, upload to feed and story
  5. IGTV: download, upload to feed and story
  6. Clip (Reels): download, upload to feed and story
  7. Album: download, upload to feed and story
  8. Story: info, delete, seen, download and much more else
  9. User: followers/following, info, follow/unfollow, remove_follower and much more else
  10. Insights: media, account

Installation

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 subzeroid/instagrapi-rest

Or clone the repository:

git clone https://github.com/subzeroid/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

Usage

Open in browser http://localhost:8000/docs and follow the instructions

swagger

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'

Generating client code

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.

Testing

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

Development

For debugging:

docker-compose run --service-ports api