API Medium Post dell'utente
Stato di salute dell'API
- Operatività nelle ultime 24 ore
- Normale
- Buono / normale
- Disponibile
- Limitato
- Quasi del tutto inattivo
Ultime 24 ore
Ultimi 30 giorni
Raccogli le storie pubblicate da un autore Medium, indicato come handle o URL del profilo in username. Ottieni titolo, estratto, pubblicazione, tempo di lettura e numero di Mi piace e commenti. Le bozze sono escluse e l'intero archivio non è garantito. Le storie riservate ai membri vengono segnalate ma non sbloccate.
Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su medium 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.
Prompt per l'AI
#Aiutami a scrivere uno script di raccolta dei dati con l'endpoint Medium Post dell'utente di EveryInfra (medium/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 medium e action su user_posts, e inserisci i parametri in params.
- Parametri obbligatori:
- username: Specifica l'handle di un autore Medium o l'URL completo del suo profilo; gli handle semplici vengono trasformati in https://medium.com/@<handle> per ottenere l'elenco dei post pubblicati dall'autore, non i metadati del p…
- Parametri facoltativi:
- url: Input di compatibilità per URL completi di autori o pubblicazioni in user_posts e publication; devi comunque fornire i parametri obbligatori username o publication.
- limit: Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 25. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. (predefinito: 10)
- Restituisce un elenco di record. Campi principali di ogni record: id, url, title, text, author_name, author_username, author_url, publication_name, like_count, comment_count, reading_time_minutes, is_members_only; 15 campi in totale, elenco completo su https://api.everyinfra.com/api/v1/social/catalog?platform=medium.
- Esempio di corpo della richiesta:
{
"platform": "medium",
"action": "user_posts",
"params": {
"username": "medium"
}
}
- 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
#| Nome | Posizione | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|---|
Authorization | header | string | Sì | - | Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice. |
platform | body | string | Sì | medium | Identificativo della piattaforma, valore fisso. |
action | body | string | Sì | user_posts | Identificativo della funzionalità, valore fisso. |
username | body.params | string | Sì | - | Specifica l'handle di un autore Medium o l'URL completo del suo profilo; gli handle semplici vengono trasformati in https://medium.com/@<handle> per ottenere l'elenco dei post pubblicati dall'autore, non i metadati del profilo. |
url | body.params | string | No | - | Input di compatibilità per URL completi di autori o pubblicazioni in user_posts e publication; devi comunque fornire i parametri obbligatori username o publication. Gli elenchi di post restituiti possono includere post riservati, senza dare accesso al testo completo dietro paywall. |
limit | body.params | integer (1–25) | No | 10 | Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 25. 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
#curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "medium",
"action": "user_posts",
"params": {
"username": "medium"
}
}'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
#{ "id": "req_…", "platform": "medium", "action": "user_posts", "results": [ { "id": "62edea66ffa4", "url": "https://medium.com/blog/updating-our-rules-june-2023-62edea66ffa4", "title": "Updating Our Rules — June 2023", "text": "Updating Our Rules — June 2023This month, we are updating our Rules. As the world evolves, so do the ways in which people use Medium. To accommodate this, we regularly assess our rules, and adjust them accordingly.We believe that through helping people share their experiences and…", "author_name": "Medium", "author_url": "", "is_members_only": false, "posted_at": "2023-06-28T00:00:00+00:00", "image_url": "https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=62edea66ffa4", "platform": "medium", "tags": [ "rules", "medium" ] }, { "id": "cccf29534bf4", "url": "https://policy.medium.com/email-import-terms-of-use-cccf29534bf4", "title": "Email Import Terms of Use", "text": "Effective as of November 8th, 2021By using this feature to import any email addresses (the “Email Import”), you represent and agree that:You have collected all email addresses that you will import through the Email Import in accordance with all applicable local, state, provincial…", "author_name": "Medium", "author_url": "", "is_members_only": false, "posted_at": "2021-11-08T00:00:00+00:00", "image_url": "https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cccf29534bf4", "platform": "medium" } ], "count": 10, "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.
| Campo | Significato |
|---|---|
id | ID univoco del record sulla piattaforma. È univoco solo all'interno di una piattaforma; gli ID possono ripetersi tra piattaforme diverse. |
url | Link al record sulla piattaforma. |
title | Titolo. null quando la piattaforma non prevede titoli (ad esempio post di solo testo). |
text | Testo 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_name | Nome visualizzato dell'autore. |
author_username | Username dell'autore (@handle), di solito utilizzabile negli URL. |
author_url | Link al profilo dell'autore sulla piattaforma. |
publication_name | Mantiene il significato attribuito dalla piattaforma |
like_count | Like. null significa che la piattaforma o questa funzionalità non li rende noti; non equivale a 0. |
comment_count | Commenti. null significa non resi noti, non 0. |
reading_time_minutes | Mantiene il significato attribuito dalla piattaforma |
is_members_only | Mantiene il significato attribuito dalla piattaforma |
posted_at | Data 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. |
image_url | Link all'immagine. Le funzionalità con più immagini possono restituire un array image_urls. |
platform | Identificativo della piattaforma di origine, uguale a platform nella richiesta (ad esempio xiaohongshu, tiktok). |
tags | Array di tag. Se non ce ne sono, è un array vuoto, non null. |
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.
Riferimenti ufficiali
#Usati solo per verificare oggetti e terminologia. Non implicano alcuna autorizzazione o approvazione di EveryInfra da parte della piattaforma.
- Medium: i clap non corrispondono al numero di lettori unici ↗
Medium permette a un singolo lettore di fare clap più volte sullo stesso articolo, quindi il totale dei clap non può essere considerato come numero di lettori unici. Questa interfaccia non fornisce la ripartizione dei clap per persona visibile agli autori, e la presenza del campo non garantisce che il numero di clap venga sempre restituito.
Verificato il 2026-09-04