API Mastodon Post dell'utente

POST

Stato di salute dell'API

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

Ultime 24 ore

Ultimi 30 giorni

Estrai i post di un account Mastodon, indicato come handle o utente@istanza in username. Ottieni numero di Mi piace, boost e risposte, lingua e un indicatore che segnala i boost. Gli account con lo stesso nome su altre istanze restano separati. La cronologia completa non è garantita.

Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su mastodon e action impostato su user_posts. Prezzo $1.39 per 1.000 richieste ($0.001389 per chiamata). Le chiamate non riuscite e i risultati vuoti non vengono addebitati. Sincrona. Per i job più lenti, aggiungi "mode": "async" al corpo della richiesta, recupera il job_id ed esegui il polling.

Mastodon Posts by user segue un account su un server Mastodon, indicato in username come user@instance, e restituisce i suoi post pubblici. Ogni riga contiene il testo del post senza HTML, il link, il numero di like, boost e risposte, la lingua, se la riga è un boost, la data di pubblicazione, l'instance che lo ospita e nome, handle e link al profilo dell'autore. Giornalisti, maintainer open source e ricercatori la usano per seguire ciò che un account pubblica nel fediverso: monitorare istituzioni e progetti che pubblicano su Mastodon, studiare quali post ricevono boost o creare un dataset per la ricerca linguistica.

Scrivi il server nel valore, come in Mastodon@mastodon.social: senza un server in username o instance, un nome semplice viene cercato su mastodon.social e potrebbe corrispondere a una persona diversa da quella che intendevi. reblog_count conta i boost di un post e comment_count conta le risposte, e un like_count o comment_count null significa che il numero non è stato reso noto, non che è zero.

Prompt per l'AI

#
Aiutami a scrivere uno script di raccolta dei dati con l'endpoint Mastodon Post dell'utente di EveryInfra (mastodon/user_posts).

Come funziona l'endpoint:
- Richiesta: POST https://api.everyinfra.com/api/v1/social con l'header Authorization: Bearer <chiave API>. Leggi la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY e non scriverla mai direttamente nel codice.
- Nel corpo della richiesta imposta platform su mastodon e action su user_posts, e inserisci i parametri in params.
- Parametri obbligatori:
  - username: Specifica l'handle dell'account Mastodon o il formato completo user@instance, con @ iniziale facoltativo.
- Parametri facoltativi:
  - instance: Seleziona il dominio di un'istanza Mastodon senza schema né percorso. Timeline usa fosstodon.org come predefinito e le altre azioni mastodon.social.
  - limit: Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 100. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. (predefinito: 20)
- Restituisce un elenco di record. Campi principali di ogni record: id, url, text, author_name, author_username, author_url, instance, like_count, reblog_count, comment_count, language, is_reblog; 15 campi in totale, elenco completo su https://api.everyinfra.com/api/v1/social/catalog?platform=mastodon.
- Esempio di corpo della richiesta:
{
  "platform": "mastodon",
  "action": "user_posts",
  "params": {
    "username": "<USERNAME>@mastodon.social"
  }
}
- Prezzo: $1.39 per 1.000 richieste; le richieste non riuscite e i risultati vuoti non vengono addebitati.
- Per decine o centinaia di target, aggiungi "mode": "async" al corpo: ricevi subito un job_id ed esegui il polling su GET https://api.everyinfra.com/api/v1/jobs/{job_id} per ottenere il risultato.
- In caso di 422, correggi la richiesta usando i nomi dei parametri e i valori consentiti suggeriti nell'errore; in caso di 429 o 503, attendi il tempo indicato da Retry-After e riprova.

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

Parametri della richiesta

#
NomePosizioneTipoObbligatorioPredefinitoDescrizione
AuthorizationheaderstringSì-Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice.
platformbodystringSìmastodonIdentificativo della piattaforma, valore fisso.
actionbodystringSìuser_postsIdentificativo della funzionalità, valore fisso.
usernamebody.paramsstringSì-Specifica l'handle dell'account Mastodon o il formato completo user@instance, con @ iniziale facoltativo. Se fornisci un handle breve senza istanza, viene usato mastodon.social, e nomi utente identici su istanze diverse corrispondono ad account distinti.
instancebody.paramsstringNo-Seleziona il dominio di un'istanza Mastodon senza schema né percorso. Timeline usa fosstodon.org come predefinito e le altre azioni mastodon.social. Un'istanza esplicita ha la priorità sul dominio indicato in username, quindi mantieni coerenti i due valori.
limitbody.paramsinteger (1–100)No20Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 100. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. I valori più alti restituiscono 422 prima di qualsiasi addebito.

Esempi di codice

#
bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "mastodon",
  "action": "user_posts",
  "params": {
    "username": "<USERNAME>@mastodon.social"
  }
}'

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

Esempio di risposta

#
Non è ancora disponibile una risposta di esempio per questi parametri. Questa anteprima mostra la struttura e i campi della risposta secondo la definizione dell'API, con … come segnaposto; non è il risultato di una chiamata reale.
json
{  "id": "req_…",  "platform": "mastodon",  "action": "user_posts",  "results": [    {      "id": …,      "url": …,      "text": …,      "author_name": …,      "author_username": …,      "author_url": …,      "instance": …,      "like_count": …,      "reblog_count": …,      "comment_count": …,      "language": …,      "is_reblog": …,      "posted_at": …,      "platform": …,      "media_urls": …,      "hashtags": …    }  ],  "count": …,  "billing": {    "charged": …,    "charged_usd": …,    "balance_after_usd": …,    …  },  "quota": { … }}

Campi della risposta

#

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

CampoSignificato
idID univoco del record sulla piattaforma. È univoco solo all'interno di una piattaforma; gli ID possono ripetersi tra piattaforme diverse.
urlLink al record sulla piattaforma.
textTesto del contenuto senza HTML, restituito per intero e mai troncato (su alcune piattaforme i risultati degli elenchi contengono solo un estratto; lo indicano le note sui campi della piattaforma).
author_nameNome visualizzato dell'autore.
author_usernameUsername dell'autore (@handle), di solito utilizzabile negli URL.
author_urlLink al profilo dell'autore sulla piattaforma.
instanceMantiene il significato attribuito dalla piattaforma
like_countLike. null significa che la piattaforma o questa funzionalità non li rende noti; non equivale a 0.
reblog_countMantiene il significato attribuito dalla piattaforma
comment_countCommenti. null significa non resi noti, non 0.
languageCodice della lingua del contenuto (ad esempio zh, en) secondo la piattaforma; può essere errato.
is_reblogMantiene il significato attribuito dalla piattaforma
posted_atData e ora di pubblicazione in formato ISO 8601, UTC (ad esempio 2026-08-07T12:34:56+00:00). Le stringhe non standard della piattaforma vengono passate così come sono, quindi esegui il parsing in modo difensivo. null significa che la piattaforma non le rende note.
platformIdentificativo della piattaforma di origine, uguale a platform nella richiesta (ad esempio xiaohongshu, tiktok).
media_urlsMantiene il significato attribuito dalla piattaforma
hashtagsHashtag presenti nel testo, in ordine di apparizione; assente se non ce ne sono.

FAQ

#

Cos'è un reblog?

#

Un reblog, chiamato anche boost, è il repost di Mastodon: un account condivide il post di qualcun altro con i propri follower. Le righe in cui is_reblog è true sono boost e non testi scritti dall'account, quindi scartale quando analizzi ciò che dice; il reblog_count di un post indica quante volte altri lo hanno rilanciato con un boost.

Posso filtrare i post per language?

#

Sì, dopo la chiamata. language è un codice come en o de che la piattaforma assegna a ogni post, e questa valutazione può essere sbagliata. Controlla un campione confrontandolo con text prima di scartare righe in base alla lingua, oppure usa un tuo sistema di rilevamento quando la precisione è importante.

Come ottengo i dettagli del profilo dell'account?

#

Usa la funzionalità Mastodon Details con gli stessi username e instance. Restituisce il nome visualizzato, l'handle completo nella forma @user@instance e il server che lo ospita; l'handle è univoco in tutto il fediverso, quindi è una chiave affidabile per collegare i post agli account.

Errori e addebiti

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

Errori

Riferimenti ufficiali

#

Usati solo per verificare oggetti e terminologia. Non implicano alcuna autorizzazione o approvazione di EveryInfra da parte della piattaforma.

  • Mastodon WebFinger: gli handle degli account richiedono la risoluzione del dominio ↗

    La documentazione ufficiale afferma esplicitamente che @user@example.com e @user@example.org sono account distinti, definiti sia dallo username sia dal dominio. Questo documento chiarisce le regole di identificazione degli account e non implica che questo gateway restituisca tutti i metadati ufficiali dell'oggetto Account.

    Verificato il 2026-09-04

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