Når en markedsfører sjekker dusinvis av offentlige IG-profiler manuelt, er det største tidstapet ikke å åpne sidene, men mangelen på en sammenlignbar historikk. Ett øyeblikksbilde viser antall følgere i dag; to øyeblikksbilder lar deg beregne forskjellen over et valgt tidsrom. For enkel profilovervåking kan du automatisere forespørselen, lagre bare feltene du trenger og lage en endringstabell.
Nedenfor finner du et minimalt, fungerende eksempel i Python: Det henter profilinformasjon etter brukernavn via IG Scraper API og skriver en JSONL-linje med et tidsstempel. Resultatet er et lite historikkgrunnlag som kan kobles til cron, n8n eller din egen lagringsløsning. Den offisielle beskrivelsen av endepunktet og parameterne står i referansen for IG API.
Hvilket spørsmål løser et daglig øyeblikksbilde?
Anta at et team følger offentlige kontoer for merkevarer eller samarbeidspartnere og ønsker å oppdage endringer i antall følgere, innlegg eller verifiseringsstatus. En profilside viser gjeldende verdier, men lagrer ikke i seg selv tilstanden fra forrige uke. Derfor må du først bestemme hvilke felt som er viktige, og deretter lagre dem med datoen de ble observert.

Endepunktet /v1/user/by/username krever parameteren username. Svaret inneholder blant annet follower_count, following_count, media_count, is_verified, is_private og biography. Dette passer til et profiløyeblikksbilde; det inneholder ikke en historikk over innlegg og forklarer ikke i seg selv hvorfor verdiene endret seg.
Skriptet har med vilje et avgrenset formål: å hente et sett med observerbare felt på et bestemt tidspunkt og sammenligne dem med tidligere registreringer. Analytikeren kan for eksempel se at antall følgere endret seg mellom datoene som ble lagret, og undersøke dette videre utenfor den automatiserte innsamlingen.
Gjør klar nøkkelen og kontolisten
Installer forespørselsbiblioteket, og angi API-nøkkelen i en miljøvariabel. Ikke legg hemmeligheten i kildefilen, et kodearkiv eller programmets utskrift. API-et bruker forespørselsparameteren license_key; biblioteket nedenfor lager query string automatisk.
python -m pip install requests
export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="din_nøkkel"
Du kan lagre profillisten i en konfigurasjonsfil eller en prosjektvariabel. For første kjøring holder det med ett brukernavn, slik at du kan kontrollere svaret, tilgangen og lagringen. I eksemplet angis username som en API-parameter, mens nøkkelen bare leses fra miljøet.
Hent og lagre et øyeblikksbilde med Python
Skriptet kontrollerer HTTP-svaret, API-ets eksterne status og at objektet ig finnes. Deretter lagrer det bare verdier som faktisk er tilgjengelige. Hvis et felt mangler, blir null stående i registreringen: Å sette inn null ville blandet en ukjent verdi sammen med en faktisk nullverdi.

import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
API_URL = "https://ig.jsonscraper.com/v1/user/by/username"
LICENSE_KEY = os.environ["JSONSCRAPER_INSTAGRAM_LICENSE_KEY"]
USERNAME = "apple" # bytt ut med en profil fra listen din
OUTPUT = Path("instagram-profile-snapshots.jsonl")
response = requests.get(
API_URL,
params={"username": USERNAME, "license_key": LICENSE_KEY},
timeout=30,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
raise RuntimeError("API-et returnerte uventet status eller struktur")
profile = payload["ig"]
record = {
"observed_at": datetime.now(timezone.utc).isoformat(),
"username": profile.get("username", USERNAME),
"pk": profile.get("pk"),
"follower_count": profile.get("follower_count"),
"following_count": profile.get("following_count"),
"media_count": profile.get("media_count"),
"is_verified": profile.get("is_verified"),
"is_private": profile.get("is_private"),
}
with OUTPUT.open("a", encoding="utf-8") as file:
file.write(json.dumps(record, ensure_ascii=False) + "\n")
print("Øyeblikksbilde lagret:", record["username"], record["observed_at"])
Feltene og strukturen i eksemplet samsvarer med profilinformasjonen som er beskrevet for dette endepunktet. En vellykket forespørsel gir en observasjon på forespørselstidspunktet; for å analysere utviklingen må skriptet kjøres på nytt, og hvert øyeblikksbilde må lagres. Siden for IG Scraper API viser en grunnleggende forespørsel og et eksempel på svar i JSON-format.
Beregn endringen mellom øyeblikksbilder
JSONL lagrer én registrering per linje, så du kan lese filen med Pythons standardbibliotek. Den følgende kodesnutten finner de to siste registreringene for en profil og beregner forskjellen i antall følgere. Resultatet skrives bare ut når begge registreringene inneholder en tallverdi.
import json
from pathlib import Path
rows = [
json.loads(line)
for line in Path("instagram-profile-snapshots.jsonl").read_text(encoding="utf-8").splitlines()
]
username = "apple"
profile_rows = [row for row in rows if row.get("username") == username]
profile_rows.sort(key=lambda row: row["observed_at"])
if len(profile_rows) >= 2:
previous, current = profile_rows[-2:]
old = previous.get("follower_count")
new = current.get("follower_count")
if isinstance(old, int) and isinstance(new, int):
print({
"username": username,
"from": previous["observed_at"],
"to": current["observed_at"],
"follower_delta": new - old,
})
Forskjellen gjelder nøyaktig de to valgte observasjonene. Hvis du hopper over kjøringer, blir tidsrommet mellom dem lengre; rapporten bør derfor vise begge datoene i stedet for automatisk å omtale endringen som «daglig». Sett opp en planlagt kjøring med cron eller en skytjenestes planlegger. I n8n kan du sette sammen samme arbeidsflyt med noder for planlegging, HTTP-forespørsel og lagring av resultatet i en database eller et regneark; nodenavnene og tilkoblingen til lagringen avhenger av oppsettet ditt.
Utvid til flere profiler
For en kontoliste kan du legge brukernavnene i en egen fil og gå gjennom dem med en løkke. Lagre statusen for hver forespørsel separat: Da sletter ikke en feil for én profil data som ble hentet for de andre. Legg til en tidsavbruddsgrense, en feillogg og en ny kjøring bare for kontoer der forespørselen mislyktes.
Du kan bruke pk som nøkkel for en registrering hvis API-et returnerte den, og samtidig lagre brukernavnet for å gjøre informasjonen lettere å lese. En identifikator gjør det mulig å skille profilen fra en tekstetikett i rapporten; hvis verdien mangler, skal du ikke finne på en eller erstatte den med et annet felt. For analyse er det nyttig å lagre det opprinnelige innsamlingstidspunktet i UTC og angi sammenligningsperioden tydelig.
Hvis oppgaven bare krever at du henter informasjon med en bestemt frekvens, kan den dokumenterte parameteren cache_timeout angi en bufreperiode i sekunder; bufre er som standard slått av for IG. Velg en varighet som passer overvåkingsintervallet, og lagre den sammen med innsamlingsinnstillingene, slik at du kan ta forespørselsparametrene med i betraktningen når resultatene tolkes.
Hva du får ut
Etter flere kjøringer har du en fil med tidsstemplede øyeblikksbilder av offentlige profilverdier og en enkel beregnet forskjell mellom valgte datoer. Du kan laste filen inn i Google Sheets, PostgreSQL eller et analysesystem; et eget behandlingslag kan sende et varsel når endringen overskrider en terskel teamet har satt. Terskelen er en forretningsregel dere definerer, ikke en innebygd API-funksjon.
Profilendepunktet gir kontofelt. Hvis du skal kontrollere nye innlegg, trenger du derfor en egen innsamling av medier, ikke slutninger basert på media_count. Referansen for IG API lister opp et separat endepunkt for uthenting av innlegg med sidevis innlasting via user_id og parameteren end_cursor; bruk det hvis oppgaven krever at du undersøker selve innleggene. For resultatet som beskrives her – en historisk tabell med profilverdier – holder det med én forespørsel per bruker og gjentatt lagring av øyeblikksbilder.
Begynn med én profil og et par kjøringer: Kontroller at svarstatusen er korrekt, at datoene lagres, og at manglende data forblir tydelig ukjente. Legg deretter til en kontoliste og en tidsplan. Slik får du en reproduserbar observasjon med et tydelig tidsrom og opprinnelige verdier, som kan kontrolleres og sendes videre i en analyseprosess.