Før en kampanje starter, kan du automatisk sammenligne hver IG-konto i briefen med offentlige profildata. Kontrollen avdekker avvik i brukernavn, privat profilstatus, endringer i navn eller bio og forskjeller mellom antall innlegg og forventet intervall. Resultatet er en kontrolltabell for markedsføreren, ikke en automatisk avgjørelse om hvorvidt en skaper er egnet.

Problemet: Briefen blir utdatert raskere enn regnearket
Kampanjelisten kan inneholde kontonavn, lenke, anslag over antall følgere og krav til den offentlige profilen. Disse opplysningene kan lett bli utdaterte: Kontoen endrer brukernavn, profilen blir privat, mens tallene i briefen forblir de samme. Det er enkelt å kontrollere én profil manuelt; det er vanskeligere å kontrollere og gjenta prosessen for en hel kontoliste før hver kampanje.
En nyttig løsning er å angi tydelige regler for hver rad, hente tilgjengelige offentlige felt på kontrolltidspunktet og føre de opprinnelige og faktiske verdiene ved siden av hverandre. «Stemmer» betyr da bare at et bestemt felt oppfyller en bestemt regel; vurderingen av målgruppetreff eller innholdskvalitet er fortsatt spesialistens ansvar.
Hvilke data skal hentes?
Dokumentasjonen for IG API-endepunktene beskriver GET-endepunktet /v1/user/by/username med den obligatoriske parameteren username. I det kontrollerte svaret ligger profildataene i objektet ig: der finner du brukernavn, fullt navn, bio, status for privat profil og verifisering samt antall innlegg, følgere og kontoer som følges. Disse feltene beskriver et tilgjengelig øyeblikksbilde av profilen.
Dette er nok til en innledende kontroll av kontonavn, personvernstatus og numeriske terskler. Bioen kan vises til operatøren for gjennomgang eller kontrolleres med en enkel regel, for eksempel om et obligatorisk uttrykk forekommer. Et slikt tekstfilter finner strengtreff, men vurderer ikke i seg selv betydningen og bekrefter ikke at avtaleforpliktelser er oppfylt.
Slik integrerer du forespørselen i Python
Lagre først lisensnøkkelen i miljøvariabelen JSONSCRAPER_INSTAGRAM_LICENSE_KEY. Eksemplet bruker den bekreftede basisadressen, endepunktet, parameteren username og nøkkelnavnet license_key. CSV-filen inneholder feltene username,min_followers,max_followers,require_public; for hver konto sammenligner skriptet svaret med reglene og markerer rader som må kontrolleres.
import csv
import os
import sys
import requests
BASE_URL = "https://ig.jsonscraper.com"
API_KEY = os.environ.get("JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
if not API_KEY:
raise SystemExit("Set JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
# brief.csv: username,min_followers,max_followers,require_public
with open("brief.csv", newline="", encoding="utf-8") as source:
brief = list(csv.DictReader(source))
results = []
for row in brief:
username = row.get("username", "").strip()
minimum_text = row.get("min_followers", "").strip()
if not username or not minimum_text:
results.append({
"requested_username": username,
"needs_review": True,
"error": "Missing username or min_followers",
})
continue
try:
response = requests.get(
f"{BASE_URL}/v1/user/by/username",
params={"username": username, "license_key": API_KEY},
timeout=30,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
raise ValueError("Unexpected API response")
profile = payload["ig"]
followers = profile.get("follower_count")
minimum = int(minimum_text)
maximum_text = row.get("max_followers", "").strip()
maximum = int(maximum_text) if maximum_text else None
public_required = row.get("require_public", "").strip().lower() == "true"
checks = {
"username_matches": (
isinstance(profile.get("username"), str)
and profile["username"].lower() == username.lstrip("@").lower()
),
"followers_in_range": (
isinstance(followers, int)
and followers >= minimum
and (maximum is None or followers
Kjør med python check_profiles.py. Installer biblioteket requests, angi miljøvariabelen i kjøremiljøet og legg brief.csv ved siden av skriptet. Ikke skriv nøkkelen inn i kildekoden eller den endelige CSV-filen. Skriptet behandler listen sekvensielt, noe som gjør kontroll og feilsøking av mindre kontolister enklere.
Hvorfor manglende verdier må være synlige
Kontrollreglene må skille mellom verdien null og et felt som mangler. I eksemplet regnes antall følgere bare som godkjent når feltet inneholder en numerisk verdi; hvis telleren mangler, er vilkåret ikke bekreftet, og oppføringen sendes til manuell kontroll. En tom terskel for min_followers markeres også som en feil i inndataene, i stedet for automatisk å bli gjort om til null.
Det er lurt å gjøre kontrollen av svaret til en del av arbeidsflyten. Skriptet kontrollerer først at ekstern status er ok, og undersøker deretter om objektet ig finnes. HTTP-feil, uventet JSON eller en ugyldig regel føres i rapporten uten feilmeldingsteksten som kunne ha avslørt nøkkelen i URL-en. Dermed kan operatøren skille en forespørselsfeil fra et profilavvik uten å spre hemmelig informasjon.
Slik leser og automatiserer du kontrollresultatet
Filen profile_check.csv inneholder det opprinnelige brukernavnet, det returnerte navnet, tilgjengelige offentlige felt, resultatene av enkeltkontroller og det samlede flagget needs_review. Teamet kan filtrere rader etter dette flagget, mens utvikleren kan lagre rapporten i et datalager eller sende den videre til neste trinn i en ETL-prosess. For planlagte kjøringer kan du bruke en jobbplanlegger og lagre kjøringsdatoen separat, slik at kampanjeøyeblikksbilder kan sammenlignes.

Hvis en regel endres, bør den lagres i briefen i stedet for å bygges inn i koden. Da blir tersklene etterprøvbare: For hver rad er det synlig hvilket følgerintervall eller hvilken personvernstatus som var forventet. Du kan legge til en kontroll av om bioen inneholder en bestemt tekst, men et bokstavelig treff erstatter ikke en faglig vurdering.
IG Scraper API-siden viser basisadressen, et eksempel på en forespørsel og en lenke til Postman. Løsningen ovenfor bruker bare det bekreftede profiloppslaget etter brukernavn og forutsetter ikke at forespørselen returnerer innlegg.
Det praktiske resultatet er en etterprøvbar forhåndskontroll: I stedet for å gå gjennom hele listen manuelt får teamet en oversikt over treff og unntak knyttet til bestemte felt i briefen. Det gjør kontrollen før kampanjestart raskere, samtidig som den ansvarlige spesialisten beholder avgjørelsen om kampanjen er egnet.