API Instagram Scoperta di contenuti

POST

Stato di salute dell'API

Operatività nelle ultime 24 ore
Normale
  • Buono / normale
  • Disponibile
  • Limitato
  • Quasi del tutto inattivo
Normale

Ultime 24 ore

Ultimi 30 giorni

Monitora i post di un hashtag di Instagram passato in keyword. Ottieni didascalia, tipo di contenuto multimediale, metriche di interazione, numero di follower dell'autore, luogo e data di pubblicazione. Imposta results_type su reels per i video brevi. I risultati non spiegano il ranking di Esplora né dimostrano una tendenza.

Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su instagram e action impostato su discover. Prezzo $0.56 per 1.000 richieste ($0.000556 per chiamata). Le chiamate non riuscite e i risultati vuoti non vengono addebitati. Asincrona per impostazione predefinita: restituisce prima un job_id; esegui il polling su GET /api/v1/jobs/{job_id}.

Instagram Content discovery elenca i post pubblici di un hashtag, che passi come keyword. Per ogni post restituisce la didascalia in text, il media_type (immagine, video o carosello), il numero di like, commenti e visualizzazioni, l'handle, il nome visualizzato e il numero di follower dell'autore, la data di pubblicazione e il testo della località. Marketer e analisti di tendenze la usano per vedere cosa pubblicano le persone con un tag, quali formati generano engagement e quali account lo usano di più.

keyword è la parola di un hashtag, come coffee, con o senza # iniziale, non una frase di ricerca libera. Ometti results_type per i post normali, oppure impostalo su reel o reels per i risultati video brevi. La funzionalità è asincrona: la chiamata restituisce un job_id invece delle righe, e recuperi i risultati in seguito con quell'ID. Un like_count, comment_count o view_count null significa che il numero non è stato reso noto, non che è zero.

Prompt per l'AI

#
Aiutami a scrivere uno script di raccolta dei dati con l'endpoint Instagram Scoperta di contenuti di EveryInfra (instagram/discover).

Come funziona l'endpoint:
- Richiesta: POST https://api.everyinfra.com/api/v1/social con l'header Authorization: Bearer <chiave API>. Leggi la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY e non scriverla mai direttamente nel codice.
- Nel corpo della richiesta imposta platform su instagram e action su discover, e inserisci i parametri in params.
- Parametri obbligatori:
  - keyword: Specifica l'hashtag di destinazione per l'azione discover e rimuove automaticamente l'eventuale # iniziale.
- Parametri facoltativi:
  - results_type: Seleziona il tipo di contenuto per discover e hashtag: omettilo per i post normali oppure passa reel o reels per i video brevi. posts non può essere passato esplicitamente e qualsiasi altro valore restituisce 422. (valori consentiti: reel / reels)
  - limit: Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 200. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. (predefinito: 30)
- Restituisce un elenco di record. Campi principali di ogni record: post_id, url, text, media_type, like_count, comment_count, view_count, author_username, author_name, posted_at, location, id; 21 campi in totale, elenco completo su https://api.everyinfra.com/api/v1/social/catalog?platform=instagram.
- Esempio di corpo della richiesta:
{
  "platform": "instagram",
  "action": "discover",
  "params": {
    "keyword": "coffee"
  }
}
- Prezzo: $0.56 per 1.000 richieste; le richieste non riuscite e i risultati vuoti non vengono addebitati.
- Questo endpoint è asincrono per impostazione predefinita: restituisce 202 e un job_id, poi esegui il polling su GET https://api.everyinfra.com/api/v1/jobs/{job_id} finché lo stato non è succeeded o failed.
- In caso di 422, correggi la richiesta usando i nomi dei parametri e i valori consentiti suggeriti nell'errore; in caso di 429 o 503, attendi il tempo indicato da Retry-After e riprova.

Prima di scrivere il codice, chiedimi quali target mi servono, quanti, quali campi e quale formato di output voglio; poi conferma con me il piano e il costo indicativo.

Parametri della richiesta

#
NomePosizioneTipoObbligatorioPredefinitoDescrizione
AuthorizationheaderstringSì-Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice.
platformbodystringSìinstagramIdentificativo della piattaforma, valore fisso.
actionbodystringSìdiscoverIdentificativo della funzionalità, valore fisso.
keywordbody.paramsstringSì-Specifica l'hashtag di destinazione per l'azione discover e rimuove automaticamente l'eventuale # iniziale. Questo parametro cerca hashtag, non esegue ricerche full-text generiche, ed è diverso dal parametro tag dell'azione hashtag.
results_typebody.paramsstring (enum)No-Seleziona il tipo di contenuto per discover e hashtag: omettilo per i post normali oppure passa reel o reels per i video brevi. posts non può essere passato esplicitamente e qualsiasi altro valore restituisce 422. Non sceglie il formato del file della risposta.Valori consentitireelreels
limitbody.paramsinteger (1–200)No30Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 200. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. I valori più alti restituiscono 422 prima di qualsiasi addebito.

Esempi di codice

#
bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "instagram",
  "action": "discover",
  "params": {
    "keyword": "coffee"
  }
}'

Definizione OpenAPI (JSON)Gli esempi leggono la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY; il codice copiato non contiene mai la tua chiave.

Esempio di risposta

#
Acquisita il October 24, 2026 at 18:28 (UTC) chiamando questa API con i parametri dell'esempio di codice qui sopra. results e count sono la risposta reale di quella chiamata, da cui sono state rimosse le informazioni personali (nomi, handle, avatar, link ai profili, recapiti); l'elenco conserva i primi 2. id, billing e quota cambiano a ogni chiamata, quindi ne viene mostrata solo la struttura.
json
{  "id": "req_…",  "platform": "instagram",  "action": "discover",  "results": [    {      "post_id": "De4za3DANzi",      "url": "https://www.instagram.com/p/De4za3DANzi/",      "text": "Some days I wake up a baddie, and some days I wake up a saddie.\n.\n.\n.\n.\n.\n.\n#fyp #instamood #burberry #coffee #cafe @••• @••• @••• @••• @•••",      "media_type": "image",      "like_count": -1,      "comment_count": 0,      "author_username": "•••",      "author_name": "•••",      "posted_at": "2026-10-24T18:43:18+00:00",      "id": "•••",      "image_url": "https://scontent-cph2-1.cdninstagram.com/v/t51.82787-15/865668555_18501136627099477_1202278696858241993_n.jpg?stp=dst-jpg_e35_p1080x1080_sh2.08_tt6&_nc_cat=102&ig_cache_key=NDAxNTE4NDU5MzExMTA0MDM5MQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU…",      "author_id": "•••",      "width": 2479,      "height": 3305,      "hashtags": [        "fyp",        "instamood",        "burberry"      ]    },    {      "post_id": "De4zXldkb3j",      "url": "https://www.instagram.com/p/De4zXldkb3j/",      "text": "♥️🌎🌎👌🏻👌🏻.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n#لايك #الكحلي #coffee #flowers #venezuela",      "media_type": "image",      "like_count": 1,      "comment_count": 0,      "author_username": "•••",      "author_name": "•••",      "posted_at": "2026-10-24T18:42:51+00:00",      "id": "•••",      "image_url": "https://scontent-cph2-1.cdninstagram.com/v/t51.82787-15/863292678_17970790107172812_3863795868010461481_n.webp?stp=dst-webp_p1080x1080_sh2.08&_nc_cat=102&ig_cache_key=NDAxNTE4NDUzNjc5NDMwNjU5MQ%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBp…",      "author_id": "•••",      "width": 1440,      "height": 1920,      "hashtags": [        "لايك",        "الكحلي",        "coffee"      ]    }  ],  "count": 18,  "billing": {    "charged": …,    "charged_usd": …,    "balance_after_usd": …,    …  },  "quota": { … }}

Campi della risposta

#

I dati di business si trovano in results. La tabella elenca i campi che un record può contenere; i valori che la piattaforma non mostra non vengono mai inventati.

CampoSignificato
post_idMantiene il significato attribuito dalla piattaforma
urlLink al record sulla piattaforma.
textTesto del contenuto senza HTML, restituito per intero e mai troncato (su alcune piattaforme i risultati degli elenchi contengono solo un estratto; lo indicano le note sui campi della piattaforma).
media_typeMantiene il significato attribuito dalla piattaforma
like_countLike. null significa che la piattaforma o questa funzionalità non li rende noti; non equivale a 0.
comment_countCommenti. null significa non resi noti, non 0.
view_countVisualizzazioni o riproduzioni. null significa non rese note, non 0.
author_usernameUsername dell'autore (@handle), di solito utilizzabile negli URL.
author_nameNome visualizzato dell'autore.
posted_atData e ora di pubblicazione in formato ISO 8601, UTC (ad esempio 2026-08-07T12:34:56+00:00). Le stringhe non standard della piattaforma vengono passate così come sono, quindi esegui il parsing in modo difensivo. null significa che la piattaforma non le rende note.
locationDescrizione della località passata così com'è; il formato varia in base alla piattaforma.
idID univoco del record sulla piattaforma. È univoco solo all'interno di una piattaforma; gli ID possono ripetersi tra piattaforme diverse.
image_urlLink all'immagine. Le funzionalità con più immagini possono restituire un array image_urls.
video_urlMantiene il significato attribuito dalla piattaforma
author_idID univoco dell'autore sulla piattaforma.
widthMantiene il significato attribuito dalla piattaforma
heightMantiene il significato attribuito dalla piattaforma
is_comments_disabledMantiene il significato attribuito dalla piattaforma
author_follower_countNumero di follower dell'autore. null significa non reso noto.
hashtagsHashtag presenti nel testo, in ordine di apparizione; assente se non ce ne sono.
top_commentsMantiene il significato attribuito dalla piattaforma

FAQ

#

Come ottengo i risultati di una chiamata di discovery asincrona?

#

Instagram Content discovery è asincrona, quindi la chiamata risponde con un job_id invece che con le righe. Salva quell'ID e usalo per recuperare i risultati in seguito. Il tuo codice procede quindi in due passaggi: invia l'hashtag e poi raccoglie le righe. Conserva la keyword e il results_type che hai inviato accanto al job_id, così ogni set di risultati resta legato alla sua richiesta.

keyword è una ricerca full-text?

#

No. In Instagram Content discovery, keyword è un hashtag: il # iniziale viene rimosso e viene cercato il tag stesso, quindi coffee e #coffee producono la stessa richiesta. Le parole che compaiono solo nelle didascalie non vengono cercate. Anche la funzionalità Instagram Hashtag elenca i post o i reel di un tag, ma in modo sincrono e con un nome di parametro diverso.

Come ottengo i Reel invece dei post normali?

#

Imposta results_type su reel o reels: entrambi i valori fanno restituire a Instagram Content discovery risultati video brevi. Ometti il parametro per i post normali: il valore posts non è accettato, e qualsiasi altro valore viene rifiutato con un errore 422 durante il controllo dei parametri. Il parametro sceglie il tipo di contenuto, non un formato di output come JSON o CSV.

Errori e addebiti

#
401
Chiave mancante o non valida.
402
Saldo insufficiente. Effettua prima una ricarica.
422
Nome o valore del parametro non valido. Correggilo seguendo i suggerimenti dell'errore. Nessun addebito.
429
Raggiunto il limite di richieste al minuto. Attendi il tempo indicato da Retry-After, poi riprova.
503
Impossibile completare. L'importo trattenuto torna sul tuo saldo. Se l'esito è incerto, verificalo prima di riprovare.
Risposta 200 vuota
Nessun dato. Nessun addebito.

Errori

Le nostre statistiche di visita interne sono sempre attive. Google Analytics viene caricato solo se scegli «Consenti analisi». Informativa sulla privacy