Vai al contenuto principale

Modello a oggetti

Tweet

I Tweet sono l’unità di base di tutto ciò che riguarda X. L’oggetto Tweet dispone di un lungo elenco di campi a “livello radice”, come id, text e created_at. Gli oggetti Tweet sono anche l’oggetto “genitore” di diversi oggetti “figlio”, tra cui user, media, poll e place. Usa il parametro tweet.fields quando richiedi questi campi di livello radice sull’oggetto Tweet. L’oggetto Tweet può essere trovato ed espanso nella risorsa utente. Ulteriori Tweet correlati al Tweet richiesto possono essere trovati ed espansi anche nella risorsa Tweet. L’oggetto è disponibile per l’espansione con ?expansions=pinned_tweet_id nella risorsa utente o con ?expansions=referenced_tweets.id nella risorsa Tweet per ottenere l’oggetto con i soli campi predefiniti. Usa l’espansione insieme al parametro tweet.fields quando richiedi campi aggiuntivi per completare l’oggetto.
Valore del CampoTipoDescrizioneCome Può Essere Utilizzato
id (predefinito)stringL’identificatore univoco del Tweet richiesto.Utilizzalo per recuperare programmaticamente un Tweet specifico.
text (predefinito)stringIl testo UTF-8 effettivo del Tweet. Vedi twitter-text per dettagli sui caratteri validi.Estrazione di parole chiave e analisi/classificazione del sentiment.
edit_history_tweet_ids (predefinito)objectIdentificatori univoci che indicano tutte le versioni di un Tweet. Per Tweet senza modifiche, ci sarà un ID. Per Tweet con cronologia di modifiche, ci saranno più ID.Utilizza queste informazioni per trovare la cronologia di modifiche di un Tweet.
articleobjectContiene metadata per l’Articolo presente in questo Tweet.Utilizzalo per ottenere il testo e le entità di un Articolo.
attachmentsobjectSpecifica il tipo di allegati (se presenti) in questo Tweet.Comprensione degli oggetti restituiti per le espansioni richieste.
author_idstringL’identificatore univoco dell’Utente che ha pubblicato questo Tweet.Idratazione dell’oggetto utente, condivisione del dataset per revisione tra pari.
card_uristringL’URI per la Card presente in questo tweet.
community_idstringL’identificatore univoco per la Community a cui appartiene questo Post.
context_annotationsarrayContiene annotazioni di contesto per il Tweet.Riconoscimento/estrazione di entità, analisi tematica.
conversation_idstringL’ID del Tweet originale della conversazione (che include risposte dirette, risposte alle risposte).Utilizzalo per ricostruire la conversazione da un Tweet.
created_atdate (ISO 8601)Ora di creazione del Tweet.Utile per l’analisi delle serie temporali e per comprendere quando è stato creato un Tweet.
display_text_rangearrayUn array contenente un indice di inizio e fine per la porzione di testo che viene visualizzata.Utile per sapere quale porzione di testo viene visualizzata per impostazione predefinita per i post lunghi.
edit_controlsobjectIndica per quanto tempo ancora il Tweet può essere modificato e il numero di modifiche rimanenti.Utilizzalo per determinare se un Tweet è idoneo per la modifica.
entitiesobjectEntità che sono state estratte dal testo del Tweet. Vedi entità negli Oggetti Twitter.Fornisce informazioni aggiuntive su hashtag, URL, menzioni, ecc.
geoobjectIndica la posizione o il luogo di un Tweet geo-taggato.Utilizzalo per determinare la posizione di un Tweet geo-taggato.
in_reply_to_user_idstringSe il Tweet rappresentato è una risposta, questo campo conterrà l’ID dell’autore del Tweet originale.Determina se un Tweet era in risposta a un altro Tweet.
langstringLingua del Tweet, se rilevata da Twitter.Classifica i Tweet per lingua parlata.
non_public_metricsobjectMetriche di coinvolgimento non pubbliche per il Tweet al momento della richiesta. Richiede autenticazione del contesto utente.Determina le impressioni totali generate per il Tweet.
note_tweetobjectContiene il testo completo di un Post per Post di forma lunga (>280 caratteri).Ottieni il testo completo di un post.
organic_metricsobjectMetriche di coinvolgimento, tracciate in un contesto organico, per il Tweet al momento della richiesta. Richiede autenticazione del contesto utente.Misura il coinvolgimento organico per il Tweet.
possibly_sensitivebooleanIndica se il contenuto può essere riconosciuto come sensibile.Studia la circolazione di certi tipi di contenuto.
promoted_metricsobjectMetriche di coinvolgimento, tracciate in un contesto promosso, per il Tweet al momento della richiesta. Richiede autenticazione del contesto utente.Misura il coinvolgimento per il Tweet quando è stato promosso.
public_metricsobjectMetriche di coinvolgimento pubbliche per il Tweet al momento della richiesta.Misura il coinvolgimento del Tweet.
referenced_tweetsarrayUn elenco di Tweet a cui questo Tweet fa riferimento, come Retweet, Tweet citati o risposte.Comprendi gli aspetti conversazionali dei retweet, ecc.
reply_settingsstringMostra chi può rispondere a un determinato Tweet. Le opzioni sono “everyone”, “mentioned_users” e “followers”.Determina le impostazioni di risposta della conversazione per il Tweet.
withheldobjectContiene dettagli di trattenimento per contenuto trattenuto.
scopesobjectContiene dettagli dell’ambito per il tweet.Indica chi può visualizzare il post. Restituito solo per post promossi.
media_metadataarrayContiene metadata per gli allegati multimediali del Tweet.Ottieni metadata aggiuntivi come l’alt_text di un allegato multimediale del Tweet.
Recupero di un oggetto Tweet Richiesta di esempio Nella richiesta seguente, chiediamo i fields del Tweet all’endpoint Tweets lookup. Assicurati di sostituire $BEARER_TOKEN con il tuo Bearer Token generato.
curl --request GET 'https://api.x.com/2/tweets?ids=1212092628029698048&tweet.fields=attachments,author_id,context_annotations,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,public_metrics,referenced_tweets,text,withheld&expansions=referenced_tweets.id' --header 'Authorization: Bearer $BEARER_TOKEN'
Esempio di risposta
{
  "data": [
    {
      "text": "Crediamo che la migliore versione futura della nostra API nascerà costruendola insieme a VOI. Ecco a un altro fantastico anno con tutti coloro che sviluppano sulla piattaforma Twitter. Non vediamo l'ora di continuare a lavorare con voi nel nuovo anno. https://t.co/yvxdK6aOo2",
      "edit_history_tweet_ids": [
        "1212092628029698048"
      ],
      "lang": "en",
      "in_reply_to_user_id": "2244994945",
      "entities": {
        "urls": [
          {
            "start": 222,
            "end": 245,
            "url": "https://t.co/yvxdK6aOo2",
            "expanded_url": "https://x.com/LovesNandos/status/1211797914437259264/photo/1",
            "display_url": "pic.x.com/yvxdK6aOo2",
            "media_key": "16_1211797899316740096"
          }
        ],
        "annotations": [
          {
            "start": 42,
            "end": 44,
            "probability": 0.5359,
            "type": "Other",
            "normalized_text": "API"
          },
          {
            "start": 144,
            "end": 150,
            "probability": 0.9832,
            "type": "Other",
            "normalized_text": "Twitter"
          }
        ]
      },
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1212092627178287104"
        }
      ],
      "id": "1212092628029698048",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 3,
        "like_count": 38,
        "quote_count": 1
      },
      "context_annotations": [
        {
          "domain": {
            "id": "29",
            "name": "Eventi [Entity Service]",
            "description": "Eventi del mondo reale. "
          },
          "entity": {
            "id": "1186637514896920576",
            "name": " Vigilia di Capodanno"
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "Eventi [Entity Service]",
            "description": "Eventi del mondo reale. "
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Buon Anno Nuovo: È finalmente il 2020 ovunque!",
            "description": "Ammira i fuochi d'artificio e altre celebrazioni mentre le persone in tutto il mondo entrano nel nuovo anno.\nFoto tramite @GettyImages "
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Festività",
            "description": "Festività come Natale o Halloween"
          },
          "entity": {
            "id": "1186637514896920576",
            "name": " Vigilia di Capodanno"
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Festività",
            "description": "Festività come Natale o Halloween"
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Buon Anno Nuovo: È finalmente il 2020 ovunque!",
            "description": "Ammira i fuochi d'artificio e altre celebrazioni mentre le persone in tutto il mondo entrano nel nuovo anno.\nFoto tramite @GettyImages "
          }
        },
        {
          "domain": {
            "id": "30",
            "name": "Entità [Entity Service]",
            "description": "Dominio di livello superiore di Entity Service, ogni elemento presente in Entity Service dovrebbe trovarsi in questo dominio"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servizi"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brand e aziende"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Tassonomia Unificata Twitter",
            "description": "Una tassonomia degli interessi degli utenti. "
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Tassonomia Unificata Twitter",
            "description": "Una tassonomia degli interessi degli utenti. "
          },
          "entity": {
            "id": "847868745150119936",
            "name": "Famiglia e relazioni",
            "description": "Hobby e interessi"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Tassonomia Unificata Twitter",
            "description": "Una tassonomia degli interessi degli utenti. "
          },
          "entity": {
            "id": "1196446161223028736",
            "name": "Social media"
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "Eventi [Entity Service]",
            "description": "Eventi del mondo reale. "
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Buon Anno Nuovo: È finalmente il 2020 ovunque!",
            "description": "Ammira i fuochi d'artificio e altre celebrazioni mentre le persone in tutto il mondo entrano nel nuovo anno.\nFoto tramite @GettyImages "
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Festività",
            "description": "Festività come Natale o Halloween"
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "Buon Anno Nuovo: È finalmente il 2020 ovunque!",
            "description": "Ammira i fuochi d'artificio e altre celebrazioni mentre le persone in tutto il mondo entrano nel nuovo anno.\nFoto tramite @GettyImages "
          }
        }
      ],
      "created_at": "2019-12-31T19:26:16.000Z",
      "attachments": {
        "media_keys": [
          "16_1211797899316740096"
        ]
      },
      "possibly_sensitive": false
    }
  ],
  "includes": {
    "tweets": [
      {
        "text": "Questi lanci non sarebbero stati possibili senza il feedback che avete fornito lungo il percorso, quindi GRAZIE a tutti coloro che hanno contribuito con il loro tempo e le loro idee. Avete altri feedback? Fatecelo sapere ⬇️ https://t.co/Vxp4UKnuJ9",
        "edit_history_tweet_ids": [
          "1212092627178287104"
        ],
        "lang": "en",
        "in_reply_to_user_id": "2244994945",
        "entities": {
          "urls": [
            {
              "start": 187,
              "end": 210,
              "url": "https://t.co/Vxp4UKnuJ9",
              "expanded_url": "https://twitterdevfeedback.uservoice.com/forums/921790-twitter-developer-labs",
              "display_url": "twitterdevfeedback.uservoice.com/forums/921790-…",
              "status": 200,
              "title": "Aggiornamenti sui nostri canali di feedback",
              "description": "Costruiamo la nostra piattaforma per sviluppatori in modo aperto, con il vostro input e feedback. Nel corso dell'anno passato, sentire direttamente da voi e dagli utenti delle vostre app ci ha aiutato a costruire prodotti per sviluppatori che soddisfano i casi d'uso che ci avete aiutato a identificare. Vogliamo che questo diventi il modo in cui costruiamo i prodotti e, andando avanti, stiamo consolidando i nostri canali di feedback. Incontrarvi dove siete A partire da oggi, ritireremo il nostro canale di feedback UserVoice a favore di coinvolgimenti diretti più frequenti con v...",
              "unwound_url": "https://devcommunity.x.com/t/updates-on-our-feedback-channels/169706"
            }
          ]
        },
        "author_id": "2244994945",
        "referenced_tweets": [
          {
            "type": "replied_to",
            "id": "1212092626247110657"
          }
        ],
        "id": "1212092627178287104",
        "public_metrics": {
          "retweet_count": 2,
          "reply_count": 1,
          "like_count": 19,
          "quote_count": 0
        },
        "created_at": "2019-12-31T19:26:16.000Z",
        "possibly_sensitive": false
      }
    ]
  }

Utente

L’oggetto utente contiene i metadata dell’account utente di X che descrivono l’utente di riferimento. L’oggetto utente è l’oggetto principale restituito nell’endpoint users lookup. Quando richiedi campi utente aggiuntivi su questo endpoint, utilizza il parametro fields user.fields. L’oggetto utente può anche comparire come oggetto figlio ed essere espanso all’interno dell’oggetto Tweet. È disponibile per l’espansione con ?expansions=author_id o ?expansions=in_reply_to_user_id per ottenere l’oggetto ridotto ai soli campi predefiniti. Usa l’expansion insieme al parametro user.fields quando richiedi campi aggiuntivi per completare l’oggetto.  
Valore del campoTipoDescrizioneCome può essere utilizzato
id (default)stringL’identificatore univoco di questo utente.

"id": "2244994945"
Utilizzalo per recuperare programmaticamente informazioni su un utente X specifico.
name (default)stringIl nome dell’utente, come definito nel proprio profilo. Non necessariamente il nome di una persona. Tipicamente limitato a 50 caratteri, ma soggetto a modifiche.

"name": "Twitter Dev"
username (default)stringIl nome utente, handle o alias di X con cui questo utente si identifica. I nomi utente sono univoci ma soggetti a modifiche. Tipicamente di massimo 15 caratteri, ma alcuni account storici potrebbero esistere con nomi più lunghi.

"username": "TwitterDev"
affiliationobjectContiene dettagli sull’affiliazione di un utente.Può essere utilizzato per ottenere il badge di affiliazione di un utente.
confirmed_emailstringL’email confermata dell’utente autenticato.
connection_statusarrayFornisce un elenco delle relazioni tra l’utente che si autentica e l’utente che viene cercato, come following, followed, richiesta di follow inviata, richiesta di follow ricevuta, blocking, muting

”connection_status”: [
“follow_request_received”,
“follow_request_sent”,
“blocking”,
“followed_by”,
“following”,
“muting”
]
Può essere utilizzato per determinare lo stato della connessione tra l’utente che si autentica e l’utente che viene cercato.
created_atdate (ISO 8601)La data e ora UTC in cui l’account utente è stato creato su X.

"created_at": "2013-12-14T04:35:55.000Z"
Può essere utilizzato per determinare da quanto tempo qualcuno utilizza X
descriptionstringIl testo della descrizione del profilo di questo utente (nota anche come bio), se l’utente ne ha fornita una.

"description": "The voice of the X Dev team and your official source for updates, news, and events, related to the X API."
entitiesobjectContiene dettagli sul testo che ha un significato speciale nella descrizione dell’utente.

"entities": { <br/> "url": { <br/> "urls": [ <br/> { <br/> "start": 0, <br/> "end": 23, <br/> "url": "https://t.co/3ZX3TNiZCY", <br/> "expanded_url": "/content/developer-twitter/en/community", <br/> "display_url": "developer.x.com/en/community" <br/> } <br/> ] <br/> }, <br/> "description": { <br/> "urls": [ <br/> { <br/> "start": 0, <br/> "end": 23, <br/> "url": "https://t.co/3ZX3TNiZCY", <br/> "expanded_url": "/content/developer-twitter/en/community", <br/> "display_url": "developer.x.com/en/community" <br/> }, <br/> "hashtags": [ <br/> { <br/> "start": 23, <br/> "end": 30, <br/> "tag": "DevRel" <br/> }, <br/> { <br/> "start": 113, <br/> "end": 130, <br/> "tag": "BlackLivesMatter" <br/> }, <br/> "mentions": [ <br/> { <br/> "start": 0, <br/> "end": 10, <br/> "tag": "TwitterDev" <br/> }, <br/> "cashtags": [ <br/> { <br/> "start": 12, <br/> "end": 16, <br/> "tag": "twtr" <br/> } <br/> ] <br/> } <br/> }
Le entità sono oggetti JSON che forniscono informazioni aggiuntive su hashtag, URL, menzioni utente e cashtag associati alla descrizione. Consulta ciascuna entità rispettiva per ulteriori dettagli.

Tutti gli indici start dell’utente sono inclusivi, mentre tutti gli indici end dell’utente sono esclusivi.
is_identity_verifiedbooleanIndica se l’utente ha l’identità verificata.
locationstringLa posizione specificata nel profilo dell’utente, se l’utente ne ha fornita una. Poiché si tratta di un valore a forma libera, potrebbe non indicare una posizione valida, ma può essere valutata in modo approssimativo quando si eseguono ricerche con query di posizione.

"location": "127.0.0.1"
most_recent_tweet_idstringIdentificatore univoco del Tweet più recente di questo utente.Consente di determinare il Tweet più recente dell’utente.
parodybooleanIndica se questo account utente ha o meno l’etichetta Parodia.
pinned_tweet_idstringIdentificatore univoco del Tweet fissato di questo utente.

"pinned_tweet_id": "1255542774432063488"
Consente di determinare il Tweet fissato in cima al profilo dell’utente. Può potenzialmente essere utilizzato per determinare la lingua dell’utente.
profile_banner_urlstringL’URL del banner del profilo per questo utente, come mostrato nel profilo dell’utente.

"profile_banner_url": "https://pbs.twimg.com/profile_banners/1716450569358098432/1721022977"
Può essere utilizzato per scaricare il banner del profilo di questo utente.
profile_image_urlstringL’URL dell’immagine del profilo per questo utente, come mostrata nel profilo dell’utente.

"profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg"
Può essere utilizzato per scaricare l’immagine del profilo di questo utente.
protectedbooleanIndica se questo utente ha scelto di proteggere i propri Tweet (in altre parole, se i Tweet di questo utente sono privati).

"protected": false
public_metricsobjectContiene dettagli sull’attività per questo utente.

"public_metrics": { "followers_count": 507902, "following_count": 1863, "tweet_count": 3561, "listed_count": 1550 }
Può essere utilizzato per determinare la portata o l’influenza di un utente X, quantificare la gamma di interessi dell’utente e il livello di coinvolgimento dell’utente su X.
receives_your_dmbooleanIndica se questo utente riceverà o meno il DM dell’utente autenticato.
subscriptionobjectContiene dettagli su se l’utente è iscritto o meno all’utente autenticato.
subscription_typestringUna stringa che rappresenta il tipo di abbonamento X Premium dell’utente autenticato. Esempio: None, Basic, Premium,PremiumPlus. Restituirà sempre None se l’utente non è l’utente autenticato.
urlstringL’URL specificato nel profilo dell’utente, se presente.

"url": "https://t.co/3ZX3TNiZCY"
Un URL fornito da un utente X nel proprio profilo. Potrebbe essere una homepage, ma non è sempre così.
verifiedbooleanIndica se questo utente è un utente X verificato.

"verified": true
Indica se questo utente X ha un account verificato. Un account verificato fa sapere alle persone che un account di interesse pubblico è autentico.
verified_followers_countstringUna stringa che rappresenta il numero di follower verificati di un utente.
verified_typestringUna stringa che rappresenta il tipo di verifica di un utente. Esempio: “blue”, “business”, “government”
withheldobjectContiene dettagli di sospensione per contenuto sospeso, se applicabile.
Recupero di un oggetto utente Richiesta di esempio Nella seguente richiesta, richiediamo i fields per l’utente all’endpoint users lookup. Assicurati di sostituire $BEARER_TOKEN con il tuo Bearer Token generato.
  curl --request GET 'https://api.x.com/2/users?
  ids=2244994945&user.fields=created_at,description,entities,id,location,name,pinned_tweet_id,profile_image_url,protected,url,username,verified,withheld&expansions=pinned_tweet_id'
  --header 'Authorization: Bearer $BEARER_TOKEN'
  }
Esempio di risposta
    "data": [
        {
            "id": "2244994945",
            "name": "Twitter Dev",
            "username": "TwitterDev",
            "location": "127.0.0.1",
            "entities": {
                "url": {
                    "urls": [
                        {
                            "start": 0,
                            "end": 23,
                            "url": "https://t.co/3ZX3TNiZCY",
                            "expanded_url": "/content/developer-twitter/en/community",
                            "display_url": "developer.x.com/en/community"
                        }
                    ]
                },
                "description": {
                    "hashtags": [
                        {
                            "start": 23,
                            "end": 30,
                            "tag": "DevRel"
                        },
                        {
                            "start": 113,
                            "end": 130,
                            "tag": "BlackLivesMatter"
                        }
                    ]
                }
            },
            "verified": true,
            "description": "La voce del team #DevRel di Twitter e la tua fonte ufficiale per aggiornamenti, notizie ed eventi sulle API di Twitter. \n\n#BlackLivesMatter",
            "url": "https://t.co/3ZX3TNiZCY",
            "profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg",
            "protected": false,
            "pinned_tweet_id": "1255542774432063488",
            "created_at": "2013-12-14T04:35:55.000Z"
        }
    ],
    "includes": {
        "tweets": [
            {
                "id": "1255542774432063488",
                "text": "In questi tempi senza precedenti, quello che accade su Twitter può aiutare il mondo a comprendere meglio e rispondere alla pandemia. \n\nStiamo lanciando un endpoint stream gratuito per COVID-19 in modo che sviluppatori e ricercatori qualificati possano studiare la conversazione pubblica in tempo reale. https://t.co/BPqMcQzhId"
            }
        ]
    }
}

Space

Spaces consentono di esprimersi e interagire tramite conversazioni audio in diretta. Il dizionario dei dati di Space contiene la metadata pertinente su uno Space; tutti i dettagli vengono aggiornati in tempo reale. Gli oggetti utente si trovano ed espandono nella risorsa utente. Questi oggetti sono disponibili per l’espansione aggiungendo almeno uno tra host_ids, creator_id, speaker_ids, mentioned_user_ids al parametro di query expansions. A differenza dei Tweet, gli Spaces sono effimeri e diventano indisponibili dopo la loro conclusione o quando vengono annullati dal loro creatore. Quando la tua App gestisce i dati degli Spaces, sei responsabile di restituire le informazioni più aggiornate e devi rimuovere i dati che non sono più disponibili sulla piattaforma. Gli endpoint di lookup di Spaces possono aiutarti a garantire il rispetto delle aspettative e dell’intento degli utenti.
Field ValueTypeDescriptionHow it can be used
id (default)stringL’identificatore univoco dello Space richiesto.
"id": "1zqKVXPQhvZJB"
Identificare in modo univoco uno Space restituito nella risposta.
state (default)stringIndica se lo Space è iniziato, inizierà o è terminato.
"state": "live"
Filtrare gli Spaces live o programmati.
created_atdate (ISO 8601)Ora di creazione di questo Space.
"created_at": "2021-07-04T23:12:08.000Z"
Capire quando è stato creato uno Space e ordinarli per data/ora.
creator_idstringIdentificatore univoco del creatore dello Space.
"creator_id": "2244994945"
ended_atdate (ISO 8601)Ora in cui lo Space è terminato, se applicabile.
"ended_at": "2021-07-04T00:11:44.000Z"
Determinare quando è terminato uno Space live ai fini della durata.
host_idsarrayIdentificatori univoci degli host dello Space.
"host_ids": ["2244994945", "6253282"]
Espandere oggetti utente, comprendere il coinvolgimento.
langstringLingua dello Space, se rilevata.
"lang": "en"
Classificare gli Spaces per lingua.
is_ticketedbooleanIndica se si tratta di uno Space a pagamento (ticketed).
"is_ticketed": false
Evidenziare contenuti di interesse.
invited_user_idsarrayElenco di ID utente invitati come speaker.
"invited_user_ids": ["2244994945", "6253282"]
Espandere oggetti utente, comprendere il coinvolgimento.
participant_countintegerNumero di utenti nello Space, inclusi host e speaker.
"participant_count": 420
Comprendere il coinvolgimento, creare report.
subscriber_countintegerNumero di persone che hanno impostato un promemoria per uno Space.
"subscriber_count": 36
Comprendere l’interesse per l’evento.
scheduled_startdate (ISO 8601)Ora di inizio programmata dello Space.
"scheduled_start": "2021-07-14T08:00:00.000Z"
Integrare con le notifiche del calendario.
speaker_idsarrayElenco di utenti che hanno parlato in qualsiasi momento.
"speaker_ids": ["2244994945", "6253282"]
Espandere oggetti utente, comprendere il coinvolgimento.
started_atdate (ISO 8601)Ora di avvio effettiva di uno Space.
"started_at": "2021-07-14T08:00:12.000Z"
Determinare l’ora di inizio dello Space.
titlestringTitolo dello Space.
"title": "Say hello to the Space data object!"
Comprendere parole chiave, hashtag, menzioni.
topic_idsarrayID degli argomenti selezionati dal creatore dello Space.
"topic_ids": ["2244994945", "6253282"]
Comprendere parole chiave, hashtag, menzioni.
updated_atdate (ISO 8601)Ultimo aggiornamento della metadata dello Space.
"updated_at": "2021-07-11T14:44:44.000Z"
Mantenere le informazioni aggiornate.
Recupero di un oggetto Space Esempio di richiesta Nella richiesta seguente richiediamo fields per lo Space sull’endpoint di lookup di Spaces. Assicurati di sostituire $BEARER_TOKEN con il tuo Bearer Token generato.
curl "https://api.x.com/2/spaces/1DXxyRYNejbKM?space.fields=created_at,creator_id,created_athost_ids,lang,is_ticketed,invited_user_ids,participant_count,scheduled_start,speaker_ids,started_at,state,title,updated_at&expansions=creator_id,host_ids,invited_user_ids,speaker_ids" --header "Authorization: Bearer $BEARER_TOKEN"
** Esempio di risposta **
{
  "data": {
    "id": "1zqKVXPQhvZJB",
    "state": "live",
    "created_at": "2021-07-04T23:12:08.000Z",
    "host_ids": [
      "2244994945",
      "6253282"
    ],
    "lang": "en",
    "is_ticketed": false,
    "invited_user_ids": [
      "2244994945",
      "6253282"
    ],
    "participant_count": 420,
    "scheduled_start": "2021-07-14T08:00:00.000Z",
    "speaker_ids": [
      "2244994945",
      "6253282"
    ],
    "started_at": "2021-07-14T08:00:12.000Z",
    "title": "Saluta l'oggetto dati di Space!",
    "updated_at": "2021-07-11T14:44:44.000Z"
  },
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "Twitter Dev",
        "username": "TwitterDev"
      },
      {
        "id": "6253282",
        "name": "Twitter API",
        "username": "TwitterAPI"
      }
    ]
  }
}

List

L’oggetto List contiene i metadati delle Twitter Lists che descrivono la List di riferimento. L’oggetto List è l’oggetto principale restituito nell’endpoint di lookup delle List. Quando si richiedono campi aggiuntivi per la List su questo endpoint, utilizzare il parametro fields list.fields. L’oggetto List non è presente come figlio di altri oggetti data. Tuttavia, gli oggetti utente possono essere individuati ed espansi nella risorsa utente. Questi oggetti sono disponibili per l’espansione aggiungendo owner_id al parametro di query expansions. Utilizzare questa espansione insieme al parametro list.fields quando si richiedono campi aggiuntivi per completare l’oggetto List principale e user.fields per completare l’oggetto espanso.
Field ValueTypeDescriptionHow it can be used
id (default)stringL’identificatore univoco di questa List.
"id": "2244994945"
Usalo per recuperare in modo programmatico informazioni su una specifica List.
name (default)stringIl nome della List, come definito durante la creazione della List.
"name": "Twitter Lists"
created_atdate (ISO 8601)La data e ora UTC in cui la List è stata creata.
"created_at": "2013-12-14T04:35:55.000Z"
Determina da quanto tempo una List è su X.
descriptionstringUna breve descrizione per informare gli utenti sulla List.
"description": "People that are active members of the Bay area cycling community on Twitter."
follower_countintegerIndica quanti utenti seguono questa List.
"follower_count": 198
member_countintegerIndica quanti membri fanno parte di questa List.
"member_count": 60
privatebooleanIndica se la List è privata.
"private": false
owner_idstringIdentificatore univoco del proprietario di questa List.
"owner_id": "1255542774432063488"
Può essere utilizzato per verificare se questo utente possiede altre List ed espandere gli oggetti utente.
Recupero di un oggetto utente Richiesta di esempio Nella seguente richiesta si richiedono campi per l’utente sull’endpoint List lookup by ID. Sostituisci $BEARER_TOKEN con il Bearer Token generato.
curl --request GET 'https://api.x.com/2/lists/1355797419175383040?list.fields=created_at,description,private,follower_count,member_count,owner_id&expansions=owner_id' --header 'Authorization: Bearer $BEARER_TOKEN'
Risposta di esempio
{
  "data": {
    "name": "Twitter Comms",
    "member_count": 60,
    "id": "1355797419175383040",
    "private": false,
    "description": "",
    "follower_count": 198,
    "owner_id": "257366942",
    "created_at": "2021-01-31T08:37:48.000Z"
  },
  "includes": {
    "users": [
      {
        "created_at": "2011-02-25T07:51:26.000Z",
        "name": "Ashleigh Hay 🤸🏼‍♀️",
        "id": "257366942",
        "username": "shleighhay",
        "verified": false
      }
    ]
  }
}

Media

Per media si intendono immagini, GIF o video allegati a un Tweet. L’oggetto media non è un oggetto primario in alcun endpoint, ma può essere trovato ed espanso all’interno dell’oggetto Tweet. L’oggetto è disponibile per l’espansione con ?expansions=attachments.media_keys per ottenere l’oggetto ridotto con i soli campi predefiniti. Usa l’espansione insieme al parametro dei campi media.fields quando richiedi campi aggiuntivi per completare l’oggetto.
Valore del campoTipoDescrizioneCome può essere utilizzato
media_key (predefinito)stringIdentificatore univoco del contenuto multimediale espanso.
"media_key": "13_1263145212760805376"
Può essere usato per recuperare i contenuti multimediali in modo programmatico
type (predefinito)stringTipo di contenuto (animated_gif, photo, video).
"type": "video"
Classifica il contenuto come foto, GIF o video
urlstringURL diretto al file multimediale su X.Restituisce un oggetto Media con un campo URL per le foto
duration_msintegerDisponibile quando type è video. Durata del video in millisecondi.
"duration_ms": 46947
heightintegerAltezza di questo contenuto in pixel.
"height": 1080
non_public_metricsobjectMetriche di coinvolgimento non pubbliche per il contenuto multimediale al momento della richiesta. Richiede autenticazione con contesto utente.
"non_public_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183,}
Determina il coinvolgimento video: quanti utenti hanno riprodotto ciascun quarto del video.
organic_metricsobjectMetriche di coinvolgimento per il contenuto multimediale, tracciate in un contesto organico, al momento della richiesta. Richiede autenticazione con contesto utente.
"organic_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183, "view_count": 629}
Determina il coinvolgimento organico dei contenuti multimediali.
preview_image_urlstringURL dell’anteprima statica segnaposto di questo contenuto.
"preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg"
promoted_metricsobjectMetriche di coinvolgimento per il contenuto multimediale, tracciate in un contesto promozionale, al momento della richiesta. Richiede autenticazione con contesto utente.
"promoted_metrics": { "playback_0_count": 259, "playback_100_count": 15, "playback_25_count": 113, "playback_50_count": 57, "playback_75_count": 25, "view_count": 124}
Determina il coinvolgimento dei contenuti quando il Tweet è stato promosso.
public_metricsobjectMetriche di coinvolgimento pubbliche per il contenuto multimediale al momento della richiesta.
"public_metrics": { "view_count": 6865141}
Determina il numero totale di visualizzazioni del video allegato al Tweet.
widthintegerLarghezza di questo contenuto in pixel.
"width": 1920
alt_textstringDescrizione di un’immagine per abilitare e supportare l’accessibilità. Può contenere fino a 1000 caratteri. Al momento il testo alternativo può essere aggiunto solo alle immagini.
"alt_text": "Rugged hills along the Na Pali coast on the island of Kauai"
Può essere usato per fornire una descrizione testuale di un’immagine nel caso in cui un utente abbia disabilità visive.
variantsarrayOgni oggetto multimediale può avere più varianti di visualizzazione o riproduzione, con diverse risoluzioni o formati.
"variants": [{ "bit_rate": 632000, "content_type": "video/mp4", "url": "https://video.twimg.com/ext_tw_video/1527322141724532740/pu/vid/320x568/lnBaR2hCqE-R_90a.mp4?tag=12"}]
Recupero di un oggetto media Esempio di richiesta Nella richiesta seguente richiediamo i fields per l’oggetto media allegato al Tweet sull’endpoint Tweet lookup. Poiché media è un oggetto figlio di un Tweet, è necessaria l’espansione attachment.media_keys. Assicurati di sostituire $BEARER_TOKEN con il tuo Bearer Token generato.
curl --request GET 'https://api.x.com/2/tweets?ids=1263145271946551300&expansions=attachments.media_keys&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width,alt_text' --header 'Authorization: Bearer $BEARER_TOKEN'
{
  "data": [
    {
      "text": "Test, test...\n\nUn nuovo modo per conversare esattamente con chi vuoi. Stiamo iniziando con una piccola % a livello globale, quindi tieni gli 👀 aperti per vederlo in azione. https://t.co/pV53mvjAVT",
      "id": "1263145271946551300",
      "attachments": {
        "media_keys": [
          "13_1263145212760805376"
        ]
      }
    }
  ],
  "includes": {
    "media": [
      {
        "duration_ms": 46947,
        "type": "video",
        "height": 1080,
        "media_key": "13_1263145212760805376",
        "public_metrics": {
          "view_count": 6909260
        },
        "preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg",
        "width": 1920
      }
    ]
  }
}

Sondaggio

Un sondaggio incluso in un Tweet non è un oggetto primario su alcun endpoint, ma può essere individuato ed espanso all’interno dell’oggetto Tweet. L’oggetto è disponibile per l’espansione con ?expansions=attachments.poll_ids per ottenere l’oggetto ridotto con soli campi predefiniti. Usa l’espansione insieme al parametro dei campi poll.fields quando richiedi campi aggiuntivi per completare l’oggetto.
Valore del campoTipoDescrizione
id (predefinito)stringIdentificatore univoco del sondaggio espanso.
{"id": "1199786642791452673"}
options (predefinito)arrayContiene oggetti che descrivono ciascuna opzione nel sondaggio di riferimento.
{"options": [ { "position": 1, "label": "“C Sharp”", "votes": 795 }, { "position": 2, "label": "“C Hashtag”", "votes": 156 } ]}
duration_minutesintegerSpecifica la durata totale di questo sondaggio.
{"duration_minutes": 1440}
end_datetimedate (ISO 8601)Specifica la data e l’ora di fine di questo sondaggio.
{"end_datetime": "2019-11-28T20:26:41.000Z"}
voting_statusstringIndica se questo sondaggio è ancora attivo e può ricevere voti oppure se la votazione è chiusa.
{"voting_status": "closed"}
Recupero di un oggetto sondaggio Esempio di richiesta Nella richiesta seguente stiamo richiedendo i campi per l’oggetto sondaggio allegato al Tweet sull’endpoint Tweets lookup. Poiché il sondaggio è un oggetto figlio di un Tweet, è necessaria l’espansione attachments.poll_id. Assicurati di sostituire $BEARER_TOKEN con il tuo Bearer Token generato.
curl --request GET 'https://api.x.com/2/tweets?ids=1199786642791452673&expansions=attachments.poll_ids&poll.fields=duration_minutes,end_datetime,id,options,voting_status' --header 'Authorization: Bearer $BEARER_TOKEN'
Esempio di risposta
{
  "data": [
    {
      "text": "C#",
      "id": "1199786642791452673",
      "attachments": {
        "poll_ids": [
          "1199786642468413448"
        ]
      }
    }
  ],
  "includes": {
    "polls": [
      {
        "id": "1199786642468413448",
        "voting_status": "closed",
        "duration_minutes": 1440,
        "options": [
          {
            "position": 1,
            "label": ""C Sharp"",
            "votes": 795
          },
          {
            "position": 2,
            "label": ""C Hashtag"",
            "votes": 156
          }
        ],
        "end_datetime": "2019-11-28T20:26:41.000Z"
      }
    ]
  }
}

Luogo

Il luogo taggato in un Tweet non è un oggetto primario su alcun endpoint, ma può essere individuato ed espanso nella risorsa Tweet. L’oggetto è disponibile per l’espansione con ?expansions=geo.place_id per ottenere l’oggetto ridotto con i soli campi predefiniti. Usa l’espansione insieme al parametro dei campi place.fields quando richiedi campi aggiuntivi per completare l’oggetto.
Valore del campoTipoDescrizioneCome può essere utilizzato
full_name (default)stringNome del luogo dettagliato in forma estesa.Classificare un Tweet per un nome di luogo specifico
"full_name": "Manhattan, NY"
id (default)stringIdentificatore univoco del luogo espanso, se si tratta di un punto di interesse taggato nel Tweet.Usare per recuperare un luogo in modo programmatico
"id": "01a9a39529b27f36"
contained_withinarrayRestituisce gli identificatori dei luoghi noti che contengono il luogo di riferimento.
countrystringIl nome esteso del paese a cui appartiene questo luogo.Classificare un Tweet per nome del paese
"country": "United States"
country_codestringIl codice paese ISO Alpha-2 a cui appartiene questo luogo.Classificare un Tweet per codice paese
"country_code": "US"
geoobjectContiene dettagli del luogo in formato GeoJSON.
`json
”geo”:
“type”: “Feature”,
“bbox”: [
-74.026675,
40.683935,
-73.910408,
40.877483
],
“properties”:
}
`
namestringIl nome breve di questo luogo.Classificare un Tweet per un nome di luogo specifico
"name": "Manhattan"
place_typestringSpecifica il tipo di informazione rappresentata da questo luogo, ad esempio un nome di città o un punto di interesse.Classificare un Tweet per un tipo specifico di luogo
"place_type": "city"
Recupero di un oggetto luogo Esempio di richiesta Nella seguente richiesta, richiediamo i campi per l’oggetto luogo associato al Tweet sull’endpoint Tweets lookup. Poiché il luogo è un oggetto figlio di un Tweet, è necessaria l’espansione geo.place_id. Assicurati di sostituire $BEARER_TOKEN con il tuo Bearer Token generato.
curl --request GET 'https://api.x.com/2/tweets?ids=1136048014974423040&expansions=geo.place_id&place.fields=contained_within,country,country_code,full_name,geo,id,name,place_type' --header 'Authorization: Bearer $BEARER_TOKEN'
Esempio di risposta
{
  "data": [
    {
      "text": "Stiamo condividendo una demo live del nuovo programma Twitter Developer Labs, condotta da un membro del nostro team DevRel, @jessicagarson #TapIntoTwitter https://t.co/ghv7f4dW5M",
      "id": "1136048014974423040",
      "geo": {
        "place_id": "01a9a39529b27f36"
      }
    }
  ],
  "includes": {
    "places": [
      {
        "geo": {
          "type": "Feature",
          "bbox": [
            -74.026675,
            40.683935,
            -73.910408,
            40.877483
          ],
          "properties": {}
        },
        "country_code": "US",
        "name": "Manhattan",
        "id": "01a9a39529b27f36",
        "place_type": "city",
        "country": "Stati Uniti",
        "full_name": "Manhattan, NY"
      }
    ]
  }
}

Eventi dei Messaggi Diretti

Le conversazioni dei Messaggi Diretti (DM) sono composte da eventi. La X API v2 attualmente supporta tre tipi di evento: MessageCreate, ParticipantsJoin e ParticipantsLeave. Gli oggetti evento DM vengono restituiti dagli endpoint di lookup dei Messaggi Diretti e un evento MessageCreate viene generato quando i Messaggi Diretti vengono creati correttamente tramite gli endpoint di gestione dei Messaggi Diretti. Quando si richiedono eventi DM, sono inclusi tre attributi predefiniti dell’oggetto evento, o fields: id, event_type e text. Per ricevere campi evento aggiuntivi, utilizzare il parametro fields dm_event.fields per selezionarli. Altri campi evento disponibili includono: dm_conversation_id, created_at, sender_id, attachments, participant_ids e referenced_tweets. Diversi di questi campi forniscono gli ID di altri oggetti X correlati all’evento di Messaggio Diretto:
  • sender_id - L’ID dell’account che ha inviato il messaggio o che ha invitato un partecipante a una conversazione di gruppo
  • participant_ids - Un array di ID account. Per gli eventi ParticipantsJoin e ParticipantsLeave questo array conterrà un singolo ID dell’account che ha creato l’evento
  • attachments - Fornisce gli ID dei media per contenuti caricati su X dal mittente
  • referenced_tweets - Se nel campo text è presente un URL di un Tweet, l’ID di quel Tweet è incluso nella risposta
Le expansions sender_id, participant_ids, referenced_tweets.id e attachments.media_keys sono disponibili per espandere questi ID di oggetti X.
Valore del campoTipoDescrizioneCome può essere utilizzato
id (default)stringIdentificatore univoco dell’evento.

”id”: “1050118621198921728”
Usalo per recuperare in modo programmatico uno specifico evento di conversazione (disponibile con gli endpoint v1.1).
event_type (default)stringDescrive il tipo di evento. Attualmente sono supportati tre tipi:

* MessageCreate

* ParticipantsJoin

* ParticipantsLeave


“event_type”: “MessageCreate”
Durante il recupero della cronologia di una conversazione, per capire quando sono stati creati i messaggi e, per le conversazioni di gruppo, quando i partecipanti si sono uniti o hanno lasciato. Tutti i metodi GET supportano il filtraggio di tipi di evento specifici con il parametro di query event_type=.
text (default)stringTesto effettivo UTF-8 del Messaggio Diretto.

”text”: “Hello, just you!”
Con i chatbot, può essere usato per analizzare il contenuto dei messaggi e determinare risposte automatiche. Può essere usato per creare funzionalità di ricerca nelle conversazioni.
entitiesobjectEntità estratte dal testo del DM.Fornisce informazioni aggiuntive su hashtag, URL, menzioni, ecc.
sender_idstringID dell’Utente che crea l’evento. Per espandere questo oggetto nella risposta, includi sender_id come espansione e usa il parametro di query user.fields per specificare gli attributi dell’oggetto utente di interesse.

”sender_id”: “906948460078698496”
Recupera l’oggetto utente che ha creato l’evento MessageCreate o ParticipantsJoin.
participant_idsarray (of strings)ID dei partecipanti che si uniscono o lasciano una conversazione di gruppo. Usato anche quando si creano nuove conversazioni di gruppo. Per espandere questo oggetto nella risposta, includi participant_ids come espansione e usa il parametro di query user.fields per specificare gli attributi dell’oggetto utente di interesse.

”participant_ids”: [

     “906948460078698496”

]
Usato per recuperare gli oggetti utente dei partecipanti che si uniscono o lasciano conversazioni di gruppo.
dm_conversation_idstringIdentificatore univoco della conversazione di cui l’evento fa parte.

”dm_conversation_id”: “1584988213961031680”
Usalo per recuperare in modo programmatico eventi da una conversazione e aggiungervi Messaggi Diretti.
created_atdate (ISO 8601)Ora di creazione (UTC) del Tweet.

”created_at”: “2019-06-04T23:12:08.000Z”
Questo campo può essere usato per capire quando è stato creato un Messaggio Diretto o quando i partecipanti alla conversazione si sono uniti o hanno lasciato.
referenced_tweetsarrayID di qualsiasi Tweet menzionato nel testo del Messaggio Diretto. Per espandere questo oggetto nella risposta, includi referenced_tweets.id come espansione e usa il parametro di query tweet.fields per specificare gli attributi dell’oggetto Tweet di interesse.

”referenced_tweets”: [

   

“id”: “1578868150510456833”

   

]
Quando i Messaggi Diretti fanno riferimento a un Tweet, questi ID possono essere usati per cercare i dettagli del Tweet.
attachmentsobjectPer i Messaggi Diretti con media allegati, fornisce la media key del contenuto caricato (foto, video o GIF). Per espandere questo oggetto nella risposta, includi attachments.media_keys come espansione e usa il parametro di query media.fields per specificare gli attributi dell’oggetto media di interesse. Attualmente è supportato un solo allegato. 

“attachments”:

    “media_keys”: [

        “3_1136048009270239232”

    ]

Per comprendere gli oggetti media allegati ai Messaggi Diretti.
Recupero di un oggetto evento di Messaggio Diretto Esempio di richiesta In questo esempio, creeremo una richiesta che recupera eventi associati a una conversazione uno-a-uno. Questa richiesta restituirà i campi fondamentali dell’evento di Messaggio Diretto, insieme a campi aggiuntivi per i Tweet di riferimento e i relativi autori. Creiamo una query che richieda:
  • Attributi fondamentali dell’evento, come quando è stato creato e a quale conversazione appartiene (dm_conversation).
  • L’ID dell’account e la descrizione di chi ha inviato il Messaggio Diretto.
  • Il testo di qualsiasi Tweet di riferimento e quando è stato pubblicato.
  • L’ID dell’account e la descrizione di qualsiasi autore del Tweet di riferimento.
Per restituire tali attributi, la query della tua richiesta includerà quanto segue: ?dm_event.fields=id,sender_id,text,created_at,dm_conversation_id&expansions=sender_id,referenced_tweets.id&tweet.fields=created_at,text,author_id&user.fields=description
      curl --request GET 'https://api.x.com/2/dm_conversations/with/:participant_id/dm_events?tweet.fields=created_at,text,author_id&user.fields=description&expansions=sender_id,participant_ids,referenced_tweets.id&dm_event.fields=id,sender_id,text,participant_ids,created_at,'
    --header 'Authorization: Bearer $BEARER_TOKEN'
Assicurati di sostituire $BEARER_TOKEN con il Bearer Token che hai generato. Risposta di esempio
      {
	"data": [{
			"id": "1585047616894574596",
			"sender_id": "944480690",
			"text": "Ciao, solo a te!",
			"created_at": "2022-10-25T23:16:15.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1581048670673260549",
			"sender_id": "944480690",
			"text": "Link Tweet semplice: https://t.co/IYFbRIdXHg",
			"referenced_tweets": [{
				"id": "1578900353814519810"
			}],
			"created_at": "2022-10-14T22:25:52.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1580705121553420292",
			"sender_id": "944480690",
			"text": "Aggiunta di un nuovo Messaggio Diretto 1-a-1.",
			"created_at": "2022-10-13T23:40:43.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		}
	],
	"includes": {
		"users": [{
				"name": "Demo API",
				"description": "Hosting di integrazioni TwitterDev... @TwitterDev #DevRel",
				"id": "944480690",
				"username": "FloodSocial"
			},
			{
				"name": "lo SnowBot",
				"description": "Casa dello SnowBot @TwitterDev... Fornisce bollettini neve, foto della neve e link di ricerca sulla neve... Il chatbot è attualmente in fase di aggiornamento per Twitter APIv2.",
				"id": "906948460078698496",
				"username": "SnowBotDev"
			}
		],
		"tweets": [{
				"text": "Mi sento un po' in colpa per non aver augurato a tutti un felice nuovo Anno Idrico del Colorado…\n\nBuon Anno Idrico a tutti i miei amici e colleghi del Colorado, nuovi e vecchi…\n\nChe questo sia un anno idrico generoso, anche se non troppo generoso…",
				"id": "1578900353814519810",
				"created_at": "2022-10-09T00:09:13.000Z",
				"author_id": "944480690",
				"edit_history_tweet_ids": [
					"1578900353814519810"
				]
			}
		]
	},
	"meta": {
		"result_count": 3,
		"next_token": "18LAA581J5II7LA00C00ZZZZ",
		"previous_token": "1BLC45G1H8CAL5DG0G00ZZZZ"
	}
}

Community

Le Community sono spazi dedicati in cui gli utenti di X possono connettersi, condividere e avvicinarsi alle discussioni che stanno loro più a cuore. I Post nelle Community sono visibili a chiunque su X, ma solo i membri della Community stessa possono interagire e partecipare alla discussione. L’oggetto Community contiene i metadati rilevanti relativi a una Community.
Field valueTypeDescription
created_atdate (ISO 8601)Ora di creazione della Community.
idstringL’identificatore univoco della Community.
namestringIl nome della Community.
descriptionstringIl testo della descrizione della Community, se presente.
accessstringIl livello di accesso della Community.

Può essere uno dei seguenti:
- Public
- Closed
join_policystringLa policy di adesione della Community.

Può essere una delle seguenti:
- Open
- RestrictedJoinRequestsDisabled
- RestrictedJoinRequestsRequireAdminApproval
- RestrictedJoinRequestsRequireModeratorApproval
- SuperFollowRequired
member_countintegerIl numero di membri che hanno aderito alla Community.
Recupero degli oggetti Community Esempio di richiesta Nella seguente richiesta, specifichiamo determinati fields mentre ricerchiamo un elenco di Community in base a una parola chiave fornita. Assicurati di sostituire $BEARER_TOKEN con il tuo Bearer Token generato.
curl --location 'https://api.x.com/2/communities/search?query=anime&amp;community.fields=access,created_at,description,id,join_policy,member_count,name' --header 'Authorization: $BEARER_TOKEN'
Esempio di risposta
{
  "data": [
    {
      "id": "Q29tbXVuaXR5OjE3NTg3NDc4MTc2NDI3MDA5MjI=",
      "description": "Benvenuti nella Community Anime! Qui i fan degli anime si riuniscono per condividere le loro serie preferite e discutere tutto ciò che riguarda gli anime.",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 39915,
      "name": "Anime Community",
      "created_at": "2024-02-17T06:58:50.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE1MDY3OTM5NTMxMDYwNDI4OTE=",
      "description": "Unisciti e parla di anime 🥰",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 26019,
      "name": "Mondo Anime 🌸",
      "created_at": "2022-03-24T00:44:07.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE0OTY3NzYyMTU5Mzk1MzQ4NDk=",
      "description": "Per tutti gli appassionati e creatori di anime!",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 5612,
      "name": "Anime",
      "created_at": "2022-02-24T09:17:13.000Z"
    }
  ],
  "meta": {
    "next_token": "7140dibdnow9c7btw481s8m561gat797rboud5r80xvzm"
  }
}

Come utilizzare fields ed expansions

Per impostazione predefinita, gli oggetti dati della X API v2 includono un numero limitato di campi predefiniti quando si invia una richiesta senza utilizzare i parametri fields o expansions. Questa guida illustra come usare i parametri di query fields ed expansions nella richiesta per ricevere oggetti e campi aggiuntivi nella risposta. In questa guida richiederemo diversi campi nell’istantanea del seguente Tweet.  
Questa immagine include una schermata di un Tweet pubblicato da @X. È possibile vedere il testo del Tweet, il nome utente, la data e l'ora di pubblicazione, la fonte e le metriche pubbliche. Include anche un video.
Come si può vedere nella schermata, sono presenti diverse informazioni visibili relative al Tweet, tra cui l’autore del Tweet, le metriche del Tweet, il timestamp di creazione, il video e il conteggio delle visualizzazioni del video. Sono inoltre presenti diversi elementi di dati non visibili nella schermata, ma comunque disponibili su richiesta.  Quando si effettua una richiesta all’API, la risposta predefinita è semplice e contiene solo i campi predefiniti del Tweet (id e text). Si riceve inoltre soltanto l’oggetto principale restituito dall’endpoint utilizzato, e non gli eventuali oggetti dati associati che potrebbero essere correlati all’oggetto principale. Questa semplicità, insieme ai parametri fields ed expansions, consente di richiedere solo i campi necessari, in base al caso d’uso.   

Richiesta di fields e oggetti aggiuntivi.

Per iniziare, richiederemo un oggetto Tweet utilizzando un ID Tweet e l’endpoint GET /tweets. Richiesta:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
Risposta:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Non perderti i Tweet sul tuo Tweet. \n\nOra su iOS puoi vedere tutti i Retweet con commenti in un unico posto. https://t.co/oanjZfzC6y"
        }
    ]
}
La seguente guida passo dopo passo ti mostrerà come recuperare i dati aggiuntivi che possiamo vedere nella schermata.
  1. Individua i campi aggiuntivi che desideri richiedere utilizzando il nostro object model oppure consultando l’elenco dei campi nelle pagine di riferimento dell’API degli endpoint. In questo caso, richiederemo i seguenti fields aggiuntivi: attachments, author_id, created_at, public_metrics.
  2. Costruisci il parametro di query tweet.fields impostando come valore i campi sopra, separati da virgole: ?tweet.fields=attachments,author_id,created_at,public_metrics
  3. Aggiungi il parametro query alla richiesta GET /tweets che hai eseguito in precedenza.
Richiesta: curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics' \ --header 'Authorization: Bearer $BEARER_TOKEN' Risposta:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Non perdere i Tweet sul tuo Tweet. \n\nOra su iOS, puoi vedere tutti i Retweet con commenti in un unico posto. https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "created_at": "2020-05-12T19:44:51.000Z"
        }
    ]
}
  1. Successivamente, richiederemo i campi relativi al video che è stato incluso nel Tweet. Per farlo, utilizzeremo il parametro expansions con attachments.media_keys come valore, e lo aggiungeremo alla richiesta.
?expansions=attachments.media_keys Richiesta:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
Risposta, con l’oggetto media rappresentato nell’oggetto includes:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Non perdere i Tweet sul tuo Tweet. \n\nOra su iOS, puoi vedere tutti i Retweet con commenti in un unico posto. https://t.co/oanjZfzC6y",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "author_id": "783214"
        }
    ],
    "includes": {
        "media": [
            {
                "media_key": "13_1260294804770041858",
                "type": "video"
            }
        ]
    }
}
  1. Infine, richiederemo il conteggio delle visualizzazioni e la durata del video. Questi non sono campi predefiniti, quindi dobbiamo richiederli esplicitamente. Utilizza il parametro media.fields con i valori separati da virgola public_metrics e duration_ms nella tua richiesta.
?media.fields=public_metrics,duration_ms Richiesta:   curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys&media.fields=duration_ms,public_metrics' --header 'Authorization: Bearer $BEARER_TOKEN' Risposta, che ora include tutti i dati visibili nello screenshot del Tweet:
  {
    "data": [
        {
            "id": "1260294888811347969",
            "text": "Non perderti i Tweet sul tuo Tweet. \n\nOra su iOS, puoi vedere i Retweet con commenti tutti in un posto. https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            }
        }
    ],
    "includes": {
        "media": [
            {
                "duration_ms": 36503,
                "media_key": "13_1260294804770041858",
                "public_metrics": {
                    "view_count": 1534703
                },
                "type": "video"
            }
        ]
    }
}
In totale, in questo esempio abbiamo incluso i seguenti parametri:
  • ids=1260294888811347969
  • tweet.fields=attachments,author_id,created_at,public_metrics
  • expansions=attachments.media_keys
  • media.fields=public_metrics,duration_ms  
Combinati, ecco come si presenta l’intera query string:
?ids=1260294888811347969&tweet.fields=attachments,author\_id,created\_at,public\_metrics&expansions=attachments.media\_keys&media.fields=public\_metrics,duration\_ms

Esempi di payload per X API v2

Tweet

{
  "data": [
    {
      "conversation_id": "1304102743196356610",
      "id": "1307025659294674945",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 11,
        "reply_count": 2,
        "like_count": 70,
        "quote_count": 1
      },
      "entities": {
        "urls": [
          {
            "start": 74,
            "end": 97,
            "url": "https://t.co/oeF3ZHeKQQ",
            "expanded_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5",
            "display_url": "dev.to/twitterdev/und…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=orig",
                "width": 1128,
                "height": 600
              },
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Comprendere il nuovo payload del Tweet nell'X API v2",
            "description": "X ha recentemente annunciato la nuova X API v2, ricostruita da zero per fornire nuove funzionalità...",
            "unwound_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5"
          }
        ]
      },
      "text": "Ecco un articolo che evidenzia gli aggiornamenti nel nuovo payload del Tweet v2 https://t.co/oeF3ZHeKQQ",
      "in_reply_to_user_id": "2244994945",
      "created_at": "2020-09-18T18:36:15.000Z",
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1304102743196356610"
        }
      ],
      "lang": "en",
      "source": "Twitter Web App"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "La voce del team #TwitterDev e la vostra fonte ufficiale per aggiornamenti, notizie ed eventi relativi alla #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513961,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev",
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ],
    "tweets": [
      {
        "conversation_id": "1304102743196356610",
        "id": "1304102743196356610",
        "possibly_sensitive": false,
        "public_metrics": {
          "retweet_count": 31,
          "reply_count": 12,
          "like_count": 104,
          "quote_count": 4
        },
        "entities": {
          "mentions": [
            {
              "start": 146,
              "end": 158,
              "username": "suhemparack"
            }
          ],
          "urls": [
            {
              "start": 237,
              "end": 260,
              "url": "https://t.co/CjneyMpgCq",
              "expanded_url": "https://x.com/TwitterDev/status/1304102743196356610/video/1",
              "display_url": "pic.x.com/CjneyMpgCq"
            }
          ],
          "hashtags": [
            {
              "start": 8,
              "end": 19,
              "tag": "TwitterAPI"
            }
          ]
        },
        "attachments": {
          "media_keys": [
            "13_1303848070984024065"
          ]
        },
        "text": "La nuova #TwitterAPI include alcuni miglioramenti al payload del Tweet. Probabilmente vi state chiedendo — quali sono le principali differenze? 🧐\n\nIn questo video, @SuhemParack confronta il payload del Tweet v1.1 con quello che troverete utilizzando i nostri endpoint v2. https://t.co/CjneyMpgCq",
        "created_at": "2020-09-10T17:01:37.000Z",
        "author_id": "2244994945",
        "lang": "en",
        "source": "Twitter Media Studio"
      }
    ]
  }
}

Risposta al Tweet

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1296887091901718529",
      "text": "Scopri come @PennMedCDH sta utilizzando i dati di Twitter per comprendere la crisi sanitaria del COVID-19 📊\n\nhttps://t.co/1tdA8uDWes",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1296887091901718529"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 30,
            "end": 36,
            "probability": 0.6318,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 8,
            "end": 19,
            "username": "PennMedCDH"
          }
        ],
        "urls": [
          {
            "start": 87,
            "end": 110,
            "url": "https://t.co/1tdA8uDWes",
            "expanded_url": "https://developer.x.com/en/use-cases/success-stories/penn",
            "display_url": "developer.x.com/en/use-cases/s…",
            "status": 200,
            "title": "Penn Medicine Center for Digital Health",
            "description": "Il Penn Med Center for Digital Health ha creato una mappa Twitter del COVID-19 che include grafici che dettagliano il sentiment, i sintomi riportati, i dati suddivisi per stato e i dati sui confini relativi all'epidemia di COVID-19. Inoltre, la loro iniziativa Penn Med With You utilizza informazioni regionali aggregate da Twitter per alimentare il loro sito web e il servizio di messaggistica di testo. Il servizio utilizza queste informazioni per diffondere risorse pertinenti e tempestive.",
            "unwound_url": "https://developer.x.com/en/use-cases/success-stories/penn"
          }
        ]
      },
      "id": "1296887316556980230",
      "public_metrics": {
        "retweet_count": 9,
        "reply_count": 3,
        "like_count": 26,
        "quote_count": 2
      },
      "author_id": "2244994945",
      "in_reply_to_user_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Categoria Brand",
            "description": "Categorie all'interno dei Settori Brand che restringono l'ambito dei Brand"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servizi"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brand e Aziende"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "123",
            "name": "Notizia in Corso",
            "description": "Notizie in Corso come 'Brexit'"
          },
          "entity": {
            "id": "1220701888179359745",
            "name": "COVID-19"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-21T19:10:05.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voce del team #TwitterDev e la vostra fonte ufficiale per aggiornamenti, notizie ed eventi relativi alla #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-07-23T16:58:03.000Z",
        "id": "1615654896",
        "protected": false,
        "username": "PennMedCDH",
        "verified": false,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/7eS9RuwIb9",
                "expanded_url": "http://centerfordigitalhealth.upenn.edu/",
                "display_url": "centerfordigitalhealth.upenn.edu"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 0,
                "end": 13,
                "username": "PennMedicine"
              }
            ]
          }
        },
        "description": "Il Center for Digital Health di @PennMedicine fa progredire la scienza ricercando le implicazioni dell'avanzamento della tecnologia sanitaria digitale nell'assistenza sanitaria.",
        "public_metrics": {
          "followers_count": 1348,
          "following_count": 455,
          "tweet_count": 1288,
          "listed_count": 92
        },
        "location": "Philadelphia, PA",
        "name": "Penn Med CDH",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1067488849725726723/MoO3FQ44_normal.jpg",
        "url": "https://t.co/7eS9RuwIb9"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1296887091901718529",
        "text": "La Dott.ssa @RainaMerchant e il suo team presso il Penn Medicine CDH stanno aiutando a costruire il futuro dell'assistenza sanitaria.\n\nIl team sta utilizzando insight dai dati sociali in molti modi diversi — che vanno dalla scoperta di fattori di rischio al fare luce sul sentiment pubblico. 🔎",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 39,
              "end": 55,
              "probability": 0.8274,
              "type": "Organization",
              "normalized_text": "Penn Medicine CDH"
            }
          ],
          "mentions": [
            {
              "start": 4,
              "end": 18,
              "username": "RainaMerchant"
            }
          ]
        },
        "id": "1296887091901718529",
        "public_metrics": {
          "retweet_count": 9,
          "reply_count": 7,
          "like_count": 32,
          "quote_count": 0
        },
        "author_id": "2244994945",
        "source": "Twitter Web App",
        "created_at": "2020-08-21T19:09:12.000Z"
      }
    ]
  }
}

Tweet esteso

{
  "data": [
    {
      "conversation_id": "1296121314218897408",
      "id": "1296121314218897408",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 54,
        "reply_count": 9,
        "like_count": 172,
        "quote_count": 23
      },
      "entities": {
        "urls": [
          {
            "start": 192,
            "end": 215,
            "url": "https://t.co/khXhTurm9x",
            "expanded_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996",
            "display_url": "devcommunity.com/t/hide-replies…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=orig",
                "width": 400,
                "height": 400
              },
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Nascondi risposte ora disponibile nella nuova API di Twitter",
            "description": "Oggi siamo lieti di annunciare la disponibilità generale dell'endpoint per nascondere le risposte nella nuova API di Twitter. L'endpoint per nascondere le risposte consente di creare strumenti che aiutano le persone a nascondere o mostrare le risposte ai loro Tweet. Le persone gestiscono le loro risposte per molte ragioni, tra cui dare meno attenzione ai commenti offensivi, distraenti, fuorvianti, o per rendere le conversazioni più coinvolgenti. Tramite questo endpoint, è possibile creare strumenti per aiutare le persone su Twitter a nascondere o mostrare le risposte più velocemente e...",
            "unwound_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996"
          }
        ],
        "hashtags": [
          {
            "start": 178,
            "end": 189,
            "tag": "TwitterAPI"
          }
        ]
      },
      "text": "L'endpoint per nascondere le risposte viene lanciato oggi! \n\nGli sviluppatori possono nascondere le risposte ai Tweet - un modo fondamentale con cui gli sviluppatori possono contribuire a migliorare la qualità della conversazione pubblica utilizzando la #TwitterAPI.\n\nhttps://t.co/khXhTurm9x",
      "created_at": "2020-08-19T16:26:16.000Z",
      "context_annotations": [
        {
          "domain": {
            "id": "65",
            "name": "Verticale Interessi e Hobby",
            "description": "Raggruppamenti di livello superiore di interessi e hobby, come Cibo o Viaggi"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnologia",
            "description": "Tecnologia e informatica"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Categoria Interessi e Hobby",
            "description": "Un raggruppamento di entità di interessi e hobby, come Cibo Particolare o Destinazioni"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programmazione informatica",
            "description": "Programmazione informatica"
          }
        }
      ],
      "author_id": "2244994945",
      "lang": "en",
      "source": "App Web di Twitter"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "La voce del team #TwitterDev e la fonte ufficiale per aggiornamenti, notizie ed eventi relativi alla #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev"
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ]
  }
}

Tweet con contenuti multimediali

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1293593516040269825",
      "text": "È finalmente arrivata! 🥁 Dite ciao alla nuova #TwitterAPI.\n\nStiamo ricostruendo X API v2 da zero per servire meglio la nostra comunità di sviluppatori. E il lancio di oggi è solo l'inizio.\n\nhttps://t.co/32VrwpGaJw https://t.co/KaFSbjWUA8",
      "attachments": {
        "media_keys": [
          "7_1293565706408038401"
        ]
      },
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 78,
            "end": 88,
            "probability": 0.4381,
            "type": "Product",
            "normalized_text": "Twitter API"
          }
        ],
        "hashtags": [
          {
            "start": 42,
            "end": 53,
            "tag": "TwitterAPI"
          }
        ],
        "urls": [
          {
            "start": 195,
            "end": 218,
            "url": "https://t.co/32VrwpGaJw",
            "expanded_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html",
            "display_url": "blog.x.com/developer/en_u…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=orig",
                "width": 1200,
                "height": 627
              },
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "Presentazione della nuova X API migliorata",
            "description": "Presentazione della nuova X API - ricostruita da zero per fornire nuove funzionalità più rapidamente, così gli sviluppatori possono aiutare il mondo a connettersi alla conversazione pubblica che avviene su Twitter.",
            "unwound_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html"
          },
          {
            "start": 219,
            "end": 242,
            "url": "https://t.co/KaFSbjWUA8",
            "expanded_url": "https://x.com/TwitterDev/status/1293593516040269825/video/1",
            "display_url": "pic.x.com/KaFSbjWUA8"
          }
        ]
      },
      "id": "1293593516040269825",
      "public_metrics": {
        "retweet_count": 958,
        "reply_count": 171,
        "like_count": 2848,
        "quote_count": 333
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Categoria Brand",
            "description": "Categorie all'interno dei settori Brand che restringono l'ambito dei Brand"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servizi"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brand e aziende"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Settore Interessi e Hobby",
            "description": "Raggruppamenti di interessi e hobby di livello superiore, come Cibo o Viaggi"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnologia",
            "description": "Tecnologia e informatica"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Categoria Interessi e Hobby",
            "description": "Un raggruppamento di entità di interessi e hobby, come Cibo Particolare o Destinazioni"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programmazione informatica",
            "description": "Programmazione informatica"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-12T17:01:42.000Z"
    }
  ],
  "includes": {
    "media": [
      {
        "height": 720,
        "duration_ms": 34875,
        "media_key": "7_1293565706408038401",
        "type": "video",
        "preview_image_url": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
        "public_metrics": {
          "view_count": 279438
        },
        "width": 1280
      }
    ],
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voce del team #TwitterDev e la tua fonte ufficiale per aggiornamenti, notizie ed eventi relativi a #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ]
  }
}


### Retweet

      `{
  "data": [
    {
      "public_metrics": {
        "retweet_count": 19,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "conversation_id": "1229851574555508737",
      "id": "1229851574555508737",
      "entities": {
        "annotations": [
          {
            "start": 28,
            "end": 38,
            "probability": 0.261,
            "type": "Product",
            "normalized_text": "Alexa Skill"
          },
          {
            "start": 44,
            "end": 50,
            "probability": 0.7332,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 15,
            "username": "suhemparack"
          }
        ]
      },
      "text": "RT @suhemparack: Ho creato un'Alexa Skill per Twitter usando APL che ti permette di visualizzare Tweet e Tendenze sull'echo show!\n\nGuardala qui…",
      "created_at": "2020-02-18T19:33:59.000Z",
      "possibly_sensitive": false,
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1229843515603144704"
        }
      ],
      "context_annotations": [
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brand e aziende"
          },
          "entity": {
            "id": "10026792024",
            "name": "Amazon"
          }
        },
        {
          "domain": {
            "id": "48",
            "name": "Product",
            "description": "Prodotti creati dai brand. Esempi: Ford Explorer, Apple iPhone."
          },
          "entity": {
            "id": "968221983803494400",
            "name": "Amazon - Alexa",
            "description": "Alexa"
          }
        },
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categorie all'interno dei settori di brand che restringono l'ambito dei brand"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servizi"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brand e aziende"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        }
      ],
      "source": "Twitter Web App",
      "lang": "en"
    }
  ],
  "includes": {
    "users": [
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "username": "TwitterDev",
        "name": "Twitter Dev",
        "location": "127.0.0.1",
        "url": "https://t.co/3ZX3TNiZCY",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "description": "La voce del team #TwitterDev e la tua fonte ufficiale per aggiornamenti, notizie ed eventi relativi alla #TwitterAPI.",
        "verified": true,
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "pinned_tweet_id": "1293593516040269825",
        "created_at": "2013-12-14T04:35:55.000Z",
        "protected": false
      },
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1230703695051935747/TbQKe91L_normal.jpg",
        "username": "suhemparack",
        "name": "Suhem Parack",
        "location": "Seattle, WA",
        "url": "https://t.co/8IkCzClPCz",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/8IkCzClPCz",
                "expanded_url": "https://developer.x.com",
                "display_url": "developer.x.com"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 42,
                "end": 50,
                "username": "Twitter"
              }
            ]
          }
        },
        "id": "857699969263964161",
        "description": "Developer Relations per la ricerca accademica @Twitter. Parlami della ricerca con i dati di Twitter. In precedenza: Amazon Alexa. Le opinioni sono personali",
        "verified": false,
        "public_metrics": {
          "followers_count": 738,
          "following_count": 512,
          "tweet_count": 460,
          "listed_count": 12
        },
        "pinned_tweet_id": "1296498078233571329",
        "created_at": "2017-04-27T20:56:22.000Z",
        "protected": false
      }
    ],
    "tweets": [
      {
        "public_metrics": {
          "retweet_count": 19,
          "reply_count": 1,
          "like_count": 71,
          "quote_count": 6
        },
        "conversation_id": "1229843515603144704",
        "id": "1229843515603144704",
        "entities": {
          "annotations": [
            {
              "start": 11,
              "end": 21,
              "probability": 0.3342,
              "type": "Product",
              "normalized_text": "Alexa Skill"
            },
            {
              "start": 27,
              "end": 33,
              "probability": 0.6727,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "urls": [
            {
              "start": 127,
              "end": 150,
              "url": "https://t.co/l5J8wq748G",
              "expanded_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0",
              "display_url": "dev.to/twitterdev/bui…",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0"
            }
          ]
        },
        "text": "Ho creato un'Alexa Skill per Twitter usando APL che ti permette di visualizzare Tweet e Tendenze sull'echo show!\n\nGuardala qui 👇\n\nhttps://t.co/l5J8wq748G",
        "created_at": "2020-02-18T19:01:58.000Z",
        "possibly_sensitive": false,
        "author_id": "857699969263964161",
        "context_annotations": [
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Brand e aziende"
            },
            "entity": {
              "id": "10026792024",
              "name": "Amazon"
            }
          },
          {
            "domain": {
              "id": "48",
              "name": "Product",
              "description": "Prodotti creati dai brand. Esempi: Ford Explorer, Apple iPhone."
            },
            "entity": {
              "id": "968221983803494400",
              "name": "Amazon - Alexa",
              "description": "Alexa"
            }
          },
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "Categorie all'interno dei settori di brand che restringono l'ambito dei brand"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Servizi"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Brand e aziende"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          }
        ],
        "source": "Twitter Web App",
        "lang": "en"
      }
    ]
  }
}`


### Quote Tweet

      `{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1328399838128467969",
      "text": "Come previsto, gli endpoint Labs v2 indicati di seguito sono ora stati dismessi. Vi preghiamo di comunicarcelo nei forum se avete domande o necessitate di assistenza con X API v2! https://t.co/JaxttUMmjX",
      "referenced_tweets": [
        {
          "type": "quoted",
          "id": "1327011423252144128"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 151,
            "end": 157,
            "probability": 0.8115,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "urls": [
          {
            "start": 167,
            "end": 190,
            "url": "https://t.co/JaxttUMmjX",
            "expanded_url": "https://x.com/TwitterDev/status/1327011423252144128",
            "display_url": "twitter.com/TwitterDev/sta…"
          }
        ]
      },
      "id": "1328399838128467969",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 4,
        "like_count": 29,
        "quote_count": 1
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "Categorie all'interno delle Verticali di Brand che restringono l'ambito dei Brand"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servizi"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brand e Aziende"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Interests and Hobbies Vertical",
            "description": "Raggruppamenti di interessi e hobby di livello superiore, come Cibo o Viaggi"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Technology",
            "description": "Tecnologia e informatica"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Interests and Hobbies Category",
            "description": "Un raggruppamento di entità di interessi e hobby, come Cibo Particolare o Destinazioni"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Computer programming",
            "description": "Programmazione informatica"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-11-16T18:09:36.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voce del team #TwitterDev e la vostra fonte ufficiale per aggiornamenti, notizie ed eventi relativi a #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1327011423252144128",
        "text": "👋 Promemoria amichevole: Twitter Developer Labs v2 hide replies e recent search saranno dismessi lunedì prossimo, 16 novembre! Vi incoraggiamo a migrare ai nuovi endpoint hide replies e recent search ora disponibili in v2 #TwitterAPI. Dettagli: https://t.co/r6z6CI7kEy",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 26,
              "end": 50,
              "probability": 0.4387,
              "type": "Product",
              "normalized_text": "Twitter Developer Labs v2"
            }
          ],
          "hashtags": [
            {
              "start": 228,
              "end": 239,
              "tag": "TwitterAPI"
            }
          ],
          "urls": [
            {
              "start": 250,
              "end": 273,
              "url": "https://t.co/r6z6CI7kEy",
              "expanded_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
              "display_url": "devcommunity.com/t/retiring-lab…",
              "images": [
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=orig",
                  "width": 1200,
                  "height": 630
                },
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=150x150",
                  "width": 150,
                  "height": 150
                }
              ],
              "status": 200,
              "title": "Dismissione di Labs v2 recent search e hide replies",
              "description": "Come annunciato nei nostri comunicati su Early Access e hide replies, i seguenti endpoint Twitter Developer Labs v2 saranno dismessi il 16 novembre. Labs v2 recent search Labs v2 hide replies Se richiamati, questi endpoint risponderanno con status HTTP 410 e non restituiranno dati. Sulla base dei vostri feedback da Labs, abbiamo integrato la funzionalità corrispondente in X API v2. La documentazione pertinente è disponibile utilizzando i link sottostanti. Clicca qui per registrarti all'accesso v2 se non l'hai ancora fatto...",
              "unwound_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795"
            }
          ]
        },
        "id": "1327011423252144128",
        "public_metrics": {
          "retweet_count": 8,
          "reply_count": 2,
          "like_count": 33,
          "quote_count": 4
        },
        "author_id": "2244994945",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "Categorie all'interno delle Verticali di Brand che restringono l'ambito dei Brand"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Servizi"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "Brand e Aziende"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "Interests and Hobbies Vertical",
              "description": "Raggruppamenti di interessi e hobby di livello superiore, come Cibo o Viaggi"
            },
            "entity": {
              "id": "848920371311001600",
              "name": "Technology",
              "description": "Tecnologia e informatica"
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "Interests and Hobbies Category",
              "description": "Un raggruppamento di entità di interessi e hobby, come Cibo Particolare o Destinazioni"
            },
            "entity": {
              "id": "848921413196984320",
              "name": "Computer programming",
              "description": "Programmazione informatica"
            }
          }
        ],
        "source": "Twitter Web App",
        "created_at": "2020-11-12T22:12:32.000Z"
      }
    ]
  }
}

Quote Tweet ritwittato

{
    "data": [
    {
      "lang": "en",
      "conversation_id": "1225470895902412800",
      "text": "RT @AureliaSpecker: 📣 Se ti è piaciuto il tutorial sul pendolarismo londinese che ho scritto a novembre dell'anno scorso, dai un'occhiata alla versione refactorizzata che utilizza…",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1224709550214873090"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 42,
            "end": 47,
            "probability": 0.6999,
            "type": "Place",
            "normalized_text": "London"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 18,
            "username": "AureliaSpecker"
          }
        ]
      },
      "id": "1225470895902412800",
      "public_metrics": {
        "retweet_count": 12,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Categoria Brand",
            "description": "Categorie all'interno delle Verticali Brand che restringono l'ambito dei Brand"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Servizi"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "Brand e Aziende"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Verticale Interessi e Hobby",
            "description": "Raggruppamenti di livello superiore di interessi e hobby, come Cibo o Viaggi"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Tecnologia",
            "description": "Tecnologia e informatica"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Categoria Interessi e Hobby",
            "description": "Un raggruppamento di entità di interessi e hobby, come Cibo Particolare o Destinazioni"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Programmazione informatica",
            "description": "Programmazione informatica"
          }
        }
      ],
      "source": "Twitter for iPhone",
      "created_at": "2020-02-06T17:26:44.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "La voce del team #TwitterDev e la tua fonte ufficiale per aggiornamenti, notizie ed eventi relativi alla #TwitterAPI.",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-01-18T23:45:43.000Z",
        "id": "1102321381",
        "protected": false,
        "username": "AureliaSpecker",
        "verified": false,
        "entities": {
          "description": {
            "mentions": [
              {
                "start": 7,
                "end": 17,
                "username": "TwitterUK"
              },
              {
                "start": 86,
                "end": 95,
                "username": "_dormrod"
              }
            ]
          }
        },
        "description": "devrel @TwitterUK • Svizzera a Londra • madre di piante da appartamento • parrucchiera personale di @_dormrod",
        "pinned_tweet_id": "1253069421322567681",
        "public_metrics": {
          "followers_count": 1036,
          "following_count": 1330,
          "tweet_count": 855,
          "listed_count": 26
        },
        "location": "London, UK",
        "name": "Aurelia Specker",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
        "url": ""
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1224709550214873090",
        "text": "📣 Se ti è piaciuto il tutorial sul pendolarismo londinese che ho scritto a novembre dell'anno scorso, dai un'occhiata alla versione refactorizzata che utilizza il nuovo endpoint di ricerca di Twitter 🚇 https://t.co/87XIPZmZBJ\n\n#DEVcommunity #Pythontutorial @TwitterDev @TwitterAPI https://t.co/dXrJYvn3hY",
        "referenced_tweets": [
          {
            "type": "quoted",
            "id": "1195000047089389573"
          }
        ],
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 22,
              "end": 27,
              "probability": 0.7075,
              "type": "Place",
              "normalized_text": "London"
            },
            {
              "start": 120,
              "end": 126,
              "probability": 0.7355,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "mentions": [
            {
              "start": 206,
              "end": 217,
              "username": "TwitterDev"
            },
            {
              "start": 218,
              "end": 229,
              "username": "TwitterAPI"
            }
          ],
          "hashtags": [
            {
              "start": 176,
              "end": 189,
              "tag": "DEVcommunity"
            },
            {
              "start": 190,
              "end": 205,
              "tag": "Pythontutorial"
            }
          ],
          "urls": [
            {
              "start": 151,
              "end": 174,
              "url": "https://t.co/87XIPZmZBJ",
              "expanded_url": "https://bit.ly/2OrnrCC",
              "display_url": "bit.ly/2OrnrCC",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/migrate-to-twitter-s-newly-released-labs-recent-search-endpoint-3npe"
            },
            {
              "start": 230,
              "end": 253,
              "url": "https://t.co/dXrJYvn3hY",
              "expanded_url": "https://x.com/AureliaSpecker/status/1195000047089389573",
              "display_url": "twitter.com/AureliaSpecker…"
            }
          ]
        },
        "id": "1224709550214873090",
        "public_metrics": {
          "retweet_count": 12,
          "reply_count": 0,
          "like_count": 43,
          "quote_count": 2
        },
        "author_id": "1102321381",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
            "name": "Categoria Brand",
            "description": "Categorie all'interno delle Verticali Brand che restringono l'ambito dei Brand"
            },
            "entity": {
              "id": "781974596752842752",
            "name": "Servizi"
            }
          },
          {
            "domain": {
              "id": "47",
            "name": "Brand",
            "description": "Brand e Aziende"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "Verticale Interessi e Hobby",
              "description": "Raggruppamenti di livello superiore per interessi e hobby, come Cibo o Viaggi"
            },
            "entity": {
              "id": "848920371311001600",
              "name": "Tecnologia",
              "description": "Tecnologia e informatica"
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "Categoria Interessi e Hobby",
              "description": "Un raggruppamento di entità di interessi e hobby, come Cibi Particolari o Destinazioni"
            },
            "entity": {
              "id": "848921413196984320",
              "name": "Programmazione informatica",
              "description": "Programmazione informatica"
            }
          }
        ],
        "source": "Twitter Web App",
        "created_at": "2020-02-04T15:01:25.000Z"
      }
    ]
  }
}
I