saveapi.org

API историй Instagram без логина: одна история или все активные

Истории — та часть Instagram, на которой скрейпинг ломается первым: они живут 24 часа, отдаются только залогиненной сессии, а в ссылке, которую вставляет пользователь, редко есть id истории. Эндпоинт принимает обе формы ссылки и возвращает тот же medias[], что и для reel. Это руководство — два вызова, цена и одно правило про срок жизни.

Обновлено

Одна история

Ссылка из меню «Поделиться» — instagram.com/stories/<username>/<id>/ — разрешается в эту одну историю. Без логина, без сессии: запрос — ссылка и ваш ключ, ответ — прямой URL видео или изображения.

Terminal
curl -s "https://api.saveapi.org/v1/instagram" \
  -H "Authorization: Bearer sk_live_xxxx" \
  -G --data-urlencode "url=https://www.instagram.com/stories/nasa/3981078788746068381/"

Все активные истории аккаунта

Уберите id и передайте instagram.com/stories/<username>/ — в ответе все истории, которые у аккаунта активны в этот момент, в порядке публикации. Этот вызов нужен, когда пользователь вставляет профиль, а не историю.

Terminal
curl -s "https://api.saveapi.org/v1/instagram" \
  -H "Authorization: Bearer sk_live_xxxx" \
  -G --data-urlencode "url=https://www.instagram.com/stories/nasa/"

Прочитайте ответ

Каждый элемент medias[] — одна история: видео или изображение с прямым URL. Десять активных историй дают десять записей. Аккаунт, у которого ничего не активно, возвращает MEDIA_NOT_FOUND — это правильный ответ, а не сбой с нашей стороны, потому код и финальный.

Python
data = resolve("https://www.instagram.com/stories/nasa/")

# Har element bitta story: video yoki rasm, e'lon qilingan tartibda
for media in data["medias"]:
    print(media["type"], media["url"])

Цена и что в неё не входит

Вызов истории стоит 5 кредитов, вернёт он одну историю или двенадцать — цена за разрешённую ссылку, и это самый дорогой вызов в API, потому что источники, умеющие читать истории, дороже всего в работе. Закрытые аккаунты не читаются ни за какую цену: вы получаете PRIVATE_CONTENT и списывается 0.1 кредита.

Заберите файл раньше, чем история сделает то, что делают истории

URL медиа — подписанный адрес CDN, а сама история исчезает через 24 часа после публикации. Если файл нужен, скачайте его в момент разрешения; повторный запрос завтра не вернёт ничего, потому что разрешать будет нечего.

Terminal
curl -sL -o video.mp4 "<medias[0].url>"

Вопросы перед началом

Нужны cookie аккаунта или залогиненная сессия?
Нет. Запрос — ссылка и ваш API-ключ; ничто с вашей стороны не общается с Instagram.
Почему история стоит 5 кредитов, когда reel — 1.5?
Потому что источники, умеющие читать истории без сессии, — редкая и дорогая часть цепочки. Цена за разрешённую ссылку, так что вызов, вернувший восемь историй, всё равно стоит 5.
Можно получить архивные истории?
Нет. Архивные истории не публичны, а эндпоинт разрешает только то, что у аккаунта активно сейчас, или одну историю по ссылке «Поделиться».

Платформы, использованные здесь

Другие руководства

Запустите это руководство со своим ключом

Ключ за минуту. 1 000 бесплатных кредитов, без карты и без срока.

Получить ключ и попробоватьПолный справочник API