Un solo account per dati, ricerca, risoluzione dei CAPTCHA e un'API per l'AI gratuita
EveryInfra offre 573 funzionalità di raccolta dei dati su 106 piattaforme, 17 strumenti di ricerca, 52 tipi di CAPTCHA e un'API per l'AI compatibile con OpenAI, gratuita dopo una ricarica. Ogni prodotto ha endpoint, permessi e formato di richiesta propri.
- I cataloghi pubblici si possono consultare senza chiave API.
- Gli endpoint autenticati usano una chiave API di tipo Bearer.
- MCP e REST usano le stesse funzionalità, gli stessi parametri e le stesse risposte.
Guida rapida
Invia una richiesta reale
Crea una chiave API nella console, consulta il catalogo pertinente e invia l'identificatore della piattaforma o della funzionalità esattamente come indicato. La risposta include output strutturato e dati di fatturazione per la singola richiesta.
- Imposta
Authorization: Bearer YOUR_API_KEY. - Imposta
Content-Type: application/jsonper i corpi delle richieste in formato JSON. - Usa gli identificatori del catalogo e i nomi dei parametri esattamente come vengono restituiti.
- Per attività lente, limiti elevati o batch, invia
"mode":"async"nel corpo della richiesta: ricevi subito unjob_ide interroghiGET /api/v1/jobs/{job_id}per ottenere il risultato. Una richiesta sincrona deve completarsi entro 85 secondi; un job asincrono non è soggetto a questo limite.
curl -X POST https://api.everyinfra.com/api/v1/social \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"platform":"tiktok","action":"search","params":{"keyword":"AI infrastructure","limit":10}}'
{ "id": "…", "platform": "tiktok", "action": "search", "results": [ { "id": "…", "text": "…", "author_username": "…" } ], "count": 10, "billing": { "charged": true, "charged_usd": 0.000556, "balance_after_usd": 12.340122 } }
Trova le attività supportate nei cataloghi pubblici
Usa i cataloghi per verificare attività supportate, input, prezzi e disponibilità. Il catalogo compatto di EveryData elenca l'essenziale per ogni azione; usa il catalogo completo per parametri facoltativi, limiti e campi della risposta. Aggiorna prezzi e disponibilità quando serve, invece di scriverli nel codice.
| Prodotto | Endpoint del catalogo | Cosa descrive |
|---|---|---|
| EveryData | GET /api/v1/social/catalog?compact=1 | Piattaforme, azioni, parametri obbligatori, modalità di consegna, disponibilità e prezzi |
| EverySearch | GET /api/v1/search/tools | Strumenti di ricerca, parametri della richiesta, livelli e prezzi |
| EverySolve | GET /api/v1/captcha/types | Tipi di CAPTCHA, parametri, formato delle soluzioni, disponibilità e prezzi |
| API per l'AI | GET /api/v1/models | Modelli attualmente accettati dall'API per l'AI; non serve una chiave API |
Autenticazione
Invia la chiave API come token Bearer. L'autenticazione avviene prima della convalida dei parametri, quindi una richiesta senza chiave valida riceve 401 invece di un riscontro sui parametri. Tieni le chiavi fuori dal codice lato browser, dai log e dai repository pubblici.
- Crea chiavi separate per ambienti o carichi di lavoro diversi.
- Ruota una chiave dalla console quando ne cambiano l'ambito o l'esposizione.
- Usa le restrizioni della console quando una chiave deve essere limitata a prodotti, funzionalità o intervalli IP specifici.
- Usa la stessa chiave con
GET /api/v1/accountper controllare il saldo (ricaricato, bonus e totale), lo sconto sulle ricariche di questo mese, il limite di richieste al minuto e l'utilizzo delle ultime 24 ore. Gli importi sono in USD. La chiamata è di sola lettura, gratuita e non conta ai fini del limite al minuto. - In quella risposta,
balance.total_usdè la somma di saldo ricaricato e saldo bonus, e le chiamate attingono prima al saldo bonus.bonus_expiringelenca gli importi bonus a tempo non ancora scaduti.rate_limit.requests_per_minuteè condiviso da tutte le chiavi dell'account eusage_24hpuò avere un ritardo di circa un minuto. - Per lo storico dell'intero account (utilizzo giornaliero, chiamate recenti, fatturazione, movimenti del portafoglio), la stessa chiave può leggere l'API della console, ad esempio
GET /portal/api/requests/{request_id}, oppureGET /portal/api/qualityper il tasso di successo e la latenza di ogni funzionalità. La chiave deve avere accesso in lettura all'account; queste letture sono gratuite e limitate a 60 al minuto per account. L'elenco completo è nella sezione Account della specifica OpenAPI. - Per permettere a un'AI di modificare anche l'account, concedi gli ambiti di scrittura in API Keys → Restrict access: gestire le chiavi, modificare le impostazioni, aprire ticket o rispondere ai ticket. Tutti e tre sono disattivati per impostazione predefinita e solo tu puoi attivarli dopo aver effettuato l'accesso alla console. Tramite una chiave si possono creare al massimo 20 chiavi al giorno, mentre i ticket non hanno limiti giornalieri; visualizzare le chiavi per intero o ruotarle, modificare permessi o allowlist IP, riattivare le chiavi ed effettuare pagamenti restano sempre operazioni della console. La sezione Account della specifica OpenAPI elenca gli endpoint, ad esempio
POST /portal/api/keys/{key_id}/disable. - Per evitare il polling, aggiungi un endpoint HTTPS in Settings → Webhooks nella console. Inviamo una POST firmata quando il saldo scende alla soglia impostata o quando un job asincrono termina. Verifica
X-EveryInfra-Signature, un HMAC-SHA256 calcolato con il tuo segreto di firma su timestamp, un punto e il corpo grezzo; rifiuta i timestamp che si discostano di oltre 5 minuti ed elimina i duplicati in base all'ID dell'evento, perché le consegne non riuscite vengono ritentate con backoff, fino a 7 tentativi.
Questa chiave accede a tutti e quattro i prodotti, con un unico portafoglio condiviso
curl https://api.everyinfra.com/api/v1/account \ -H "Authorization: Bearer YOUR_API_KEY"
POST /api/v1/social
EveryData
Raccogli dati da 106 piattaforme con 573 azioni supportate. Scegli una piattaforma e un'azione, poi fornisci gli input indicati per quell'azione.
GET /api/v1/social/catalog?compact=1
POST /api/v1/search
EverySearch
Scegli tra 17 strumenti per cercare sul web e recuperare il testo delle fonti. Indica l'identificatore dello strumento e passa gli input obbligatori.
GET /api/v1/search/tools
POST /api/v1/captcha
EverySolve
Risolvi 52 tipi di CAPTCHA tramite un unico endpoint. Imposta il campo del tipo e passa gli input obbligatori. Paghi per ogni soluzione riuscita.
GET /api/v1/captcha/types
POST /api/v1/chat/completions
API per l'AI
API chat/completions compatibile con OpenAI, gratuita per gli account che hanno effettuato una ricarica. Usala per pulire, classificare, estrarre e riassumere i dati che raccogli.
GET /api/v1/models
Convalida i parametri della richiesta
I parametri sconosciuti restituiscono 422 con l'elenco dei parametri supportati e, quando disponibile, un suggerimento con il nome più simile. I valori enum non validi restituiscono i valori ammessi. I parametri non vengono mai ignorati in silenzio né sostituiti con valori predefiniti.
- Usa i nomi dei parametri in snake_case presenti nel catalogo.
- Considera
did_you_meanun suggerimento per correggere la richiesta, non un fallback riuscito. - Per input con più target, controlla le regole di fatturazione e i limiti del catalogo prima di inviare un array.
Riferimento API
Tutte le 106 piattaforme e le 573 API, raggruppate per categoria. Apri una piattaforma per la panoramica. Apri un'API per parametri, campi della risposta ed esempi di codice.
E-commerce15 piattaforme · 58 API
- 16883 API
- AliExpress6 API
- Amazon10 API
- Craigslist1 API
- Dewu1 API
- eBay5 API
- Etsy5 API
- Google Shopping1 API
- JD.com7 API
- Shopee4 API
- Taobao5 API
- Temu2 API
- ThomasNet2 API
- Walmart4 API
- Xianyu2 API
Social e contenuti51 piattaforme · 389 API
- Behance2 API
- Bilibili8 API
- Bluesky5 API
- Dailymotion6 API
- DeviantArt4 API
- Discord4 API
- Douban4 API
- Douyin37 API
- Ricerca
- Dettagli
- Post dell'utente
- Dettagli del video
- Commenti
- Risposte ai commenti
- Tendenze
- Trascrizione
- Ricerca creator
- Pubblico del creator
- Trend di crescita del creator
- Benchmark del creator
- Ricerca creator Xingtu
- Analisi dei creator Xingtu
- Listino prezzi dei creator Xingtu
- Classifiche dei creator Xingtu
- Ricerca prodotti
- Dettagli del prodotto
- Ricerca di prodotti nelle live
- Ricerca hashtag
- Dettagli dell'hashtag
- Classifica dei video più popolari
- Classifica dei contenuti di successo pubblicati da account con pochi follower
- Classifica ad alto tasso di completamento
- Classifica delle ricerche più popolari
- Ricerca account Hot Spot
- Ricerca musica
- Suggerimenti di ricerca
- Classifica dei contenuti in ascesa
- Classifica delle challenge più popolari
- Classifica degli argomenti più popolari
- Dettagli del brano
- Capacità di conversione dei creator Xingtu
- Struttura degli utenti connessi su Xingtu
- Video consigliati su Xingtu
- Provenienza degli utenti connessi su Xingtu
- Performance dei video su Xingtu
- Dribbble3 API
- Eventbrite1 API
- Facebook16 API
- Flickr2 API
- Gab4 API
- GitHub9 API
- Instagram18 API
- iQIYI3 API
- Kuaishou12 API
- Lemmy4 API
- LinkedIn11 API
- Mastodon5 API
- Medium3 API
- Naver4 API
- NetEase Cloud Music3 API
- Odysee4 API
- Patreon4 API
- Pinterest7 API
- Product Hunt4 API
- Quora6 API
- Reddit8 API
- Rumble6 API
- Snapchat4 API
- SoundCloud6 API
- Spotify7 API
- Substack7 API
- Telegram6 API
- Threads7 API
- TikTok24 API
- Ricerca
- Dettagli
- Video dell'utente
- Dettagli del video
- Commenti
- Hashtag
- Follower
- Trascrizione
- Ricerca prodotti nello Shop
- Dettagli del creator dello Shop
- Ricerca hashtag
- Ricerca musica
- Classifica musicale
- Ricerca account
- Video che usano un suono
- Risposte ai commenti
- Più venduti dello Shop
- Prodotti dello Shop per categoria
- Seguiti
- Link per scaricare i video
- Stanza live
- Prodotti del negozio nello Shop
- Recensioni dei prodotti dello Shop
- Hashtag di tendenza
- Toutiao6 API
- Truth Social5 API
- Tumblr4 API
- Twitch6 API
- X (Twitter)21 API
- Ricerca
- Dettagli
- Post dell'utente
- Dettagli del post
- Commenti
- Tendenze
- Elenco dei follower
- Elenco degli account seguiti
- Post con contenuti multimediali
- Scheda Risposte
- Utenti che hanno ripostato
- Profili per ID utente
- Informazioni su questo account
- Verifica del follow
- Verifica del repost
- Dettagli della community
- Ricerca community
- Ricerca utenti
- Trascrizione del video
- Thread
- Post della community
- VK2 API
- WeChat Channels5 API
- WeChat Official Accounts13 API
- Weibo11 API
- Xiaohongshu17 API
- Xing4 API
- Youku4 API
- YouTube8 API
- Zhihu15 API
Recensioni e servizi locali23 piattaforme · 86 API
Ricerca e notizie17 piattaforme · 40 API
- Apple Maps1 API
- Bing1 API
- Bing Maps1 API
- Dati aziendali4 API
- Dati di mercato crypto5 API
- Notizie crypto2 API
- DuckDuckGo1 API
- DuckDuckGo Maps1 API
- Google Ads Transparency Center1 API
- Google News1 API
- Google Trends1 API
- Kalshi1 API
- Polymarket3 API
- SimilarWeb3 API
- SERP1 API
- Yahoo Finance10 API
- Yandex3 API
API per l'AI (gratuita dopo una ricarica)
L'API per l'AI offre un endpoint chat/completions compatibile con OpenAI. Qualsiasi account che abbia effettuato una ricarica può chiamarlo senza costi e senza intaccare il saldo, per pulire, deduplicare, classificare, estrarre e riassumere i dati che raccoglie; il formato dell'output lo stabilisce il prompt.
- Con l'SDK di OpenAI, imposta
base_urlsuhttps://api.everyinfra.com/api/v1e invia la tua chiave API di EveryInfra nell'headerAuthorization: Bearer; un?key=nell'URL viene rifiutato. - L'endpoint della chat è
POST /api/v1/chat/completions, con il formato di richiesta e risposta di OpenAI. - Sono disponibili due modelli:
gemini-3.6-flash, quello predefinito, e il più leggerogemini-flash-lite.GET /api/v1/modelsrestituisce lo stesso elenco e non richiede chiave. Un nome di modello scritto male restituisce 422 con il nome corretto più probabile. - Lo streaming è supportato: invia
stream: trueper ricevere un flusso SSE che termina condata: [DONE]e aggiungistream_options.include_usageper includere l'utilizzo dei token. messagespuò contenere in totale fino a 45.000 caratteri; input più grandi restituiscono 422input_too_large, quindi suddividili in richieste più piccole.
from openai import OpenAI import os client = OpenAI(base_url="https://api.everyinfra.com/api/v1", api_key=os.environ["EVERYINFRA_API_KEY"]) reply = client.chat.completions.create( model="gemini-3.6-flash", messages=[{"role": "user", "content": "Restituisci solo JSON: indica sentiment, argomento e intento di questa recensione."}], ) print(reply.choices[0].message.content)
Limiti in base al totale delle ricariche, su tutte le chiavi dell'account
| Totale ricariche | Richieste al minuto | Richieste simultanee |
|---|---|---|
| Almeno una ricarica, per un totale inferiore a $100 | 50 | 5 |
| $100 o più | 500 | 50 |
| $500 o più | 5000 | 500 |
I codici di credito e i crediti bonus superiori a 1 $ ciascuno contano come ricariche; il credito di prova e gli importi pari o inferiori a 1 $ no. Un account che non ha mai effettuato una ricarica né ricevuto un codice di credito o un credito bonus superiore a 1 $ riceve 403 ai_topup_required. I livelli indicano limiti massimi.
| Stato | Significato |
|---|---|
| 403 ai_topup_required | L'account non ha mai effettuato una ricarica; qualsiasi ricarica attiva l'API per l'AI. |
| 429 rate_limited | È stato raggiunto il limite al minuto (per_minute_limit) o ci sono troppe richieste simultanee in corso (concurrency_limit); attendi Retry-After, poi riprova. |
| 503 ai_busy | Il servizio è occupato; riprova dopo Retry-After. |
| 403 ai_disabled | L'API per l'AI è sospesa per questo account. |
| 422 unknown_model | Il modello non esiste; il messaggio suggerisce il nome corretto più probabile. |
L'API per l'AI serve a organizzare i dati che raccogli con EveryInfra. Se viene usata per altro, o se le chiamate appaiono chiaramente anomale, possiamo sospendere l'API per l'AI per quell'account; l'account, le sue altre API e il suo saldo non vengono toccati.
MCP per agenti AI
Usa MCP quando un client compatibile deve individuare e chiamare direttamente gli strumenti di EveryInfra. Gli strumenti coprono dati, ricerca, CAPTCHA e chat AI tramite everyinfra_chat (gratuita dopo una ricarica, senza streaming), e seguono le stesse regole dell'API REST per autenticazione, fatturazione, limiti, convalida e saldo.
- Configura nel client l'URL del server remoto e una chiave API di EveryInfra.
- Due endpoint accettano la stessa chiave:
https://api.everyinfra.com/mcpelenca 12 strumenti comuni (dati, ricerca, CAPTCHA e chat AI, più saldo, registro delle chiamate, link di ricarica e ticket di supporto) ehttps://api.everyinfra.com/mcp/allelenca tutti i 24 strumenti; gli strumenti per i dati dell'account e per la gestione descritti sotto sono elencati solo lì. - Gli strumenti dell'account ora hanno nomi che iniziano con il verbo (ad esempio,
everyinfra_accountora èeveryinfra_get_account). I vecchi nomi funzionano ancora su entrambi gli endpoint ma non sono più elencati, quindi gli script che li chiamano non vanno modificati; per usare questi strumenti da un client AI, punta il connettore su/mcp/all. - Esegui la scoperta delle funzionalità prima di una chiamata per dati, ricerca o CAPTCHA.
- Conserva la chiave API nella configurazione dei segreti o dell'ambiente del client.
- Chiama lo strumento gratuito
everyinfra_get_account(senza argomenti) per controllare saldo, sconto, limite al minuto e utilizzo recente; restituisce lo stesso riepilogo diGET /api/v1/account. - Dopo una chiamata per dati con
mode: "async", leggi il risultato con lo strumento gratuitoeveryinfra_get_jobe iljob_idrestituito; lo strumento restituisce gli stessi dati diGET /api/v1/jobs/{job_id}. - Per i dati dell'account, gli strumenti gratuiti
everyinfra_get_usage,everyinfra_list_requests,everyinfra_get_billing,everyinfra_list_keyseeveryinfra_list_ticketsrestituiscono utilizzo giornaliero, chiamate recenti (cercane una per request_id per vedere come è stato regolato il suo addebito), spesa e movimenti del portafoglio, elenco delle chiavi ed elenco dei ticket di supporto. La chiave deve avere accesso in lettura all'account: le chiavi senza limiti per linea di prodotto possono leggere per impostazione predefinita utilizzo, chiamate e fatturazione; per le chiavi limitate a determinati prodotti e per l'accesso ai ticket, l'abilitazione si fa in API Keys → Restrict access nella console. - Quando l'account ha bisogno di fondi,
everyinfra_get_topup_linkrestituisce la pagina di ricarica della console; il titolare dell'account paga lì, e lo strumento non crea mai pagamenti né addebita nulla. - Quando le chiamate continuano a fallire, i dati sembrano sbagliati, va verificata una ricarica o un addebito, oppure ti serve una nuova piattaforma o un nuovo campo, qualsiasi chiave può aprire un ticket con il supporto umano tramite
everyinfra_create_ticket; è gratuito e non richiede permessi aggiuntivi. Lo strumento restituisce il numero del ticket e un link alla console, eeveryinfra_get_ticketmostra poi l'avanzamento del ticket e le risposte del supporto. Via REST, le stesse chiamate sonoPOST /api/v1/support/ticketseGET /api/v1/support/tickets/{ticket_id}. Il precedenteeveryinfra_ticket_create(richiede un ambito di scrittura) funziona ancora; le nuove integrazioni dovrebbero usareeveryinfra_create_ticket. - Dopo che il titolare dell'account ha concesso alla chiave gli ambiti di scrittura nella console, un'AI può usare anche
everyinfra_create_key,everyinfra_update_key,everyinfra_disable_key,everyinfra_delete_key,everyinfra_update_settings,everyinfra_set_webhook,everyinfra_test_webhookeeveryinfra_reply_ticket. Una chiave creata in questo modo non può mai avere permessi più ampi della chiave chiamante né ricevere ambiti di scrittura; con questi strumenti, le chiavi create nella console possono solo essere disattivate. Ogni modifica compare nelle notifiche della console.
- Endpoint
- POST /mcp
- Trasporto
- Streamable HTTP, stateless
- Strumenti
- I nomi degli strumenti iniziano con
everyinfra_. Gli strumenti rinominati rispondono ancora ai vecchi nomi, quindi prompt e workflow continuano a funzionare.
Come usare EveryInfra con i proxy IPFoxy
Una chiamata all'API di EveryInfra non ha bisogno di un proxy. La richiesta va direttamente a api.everyinfra.com e restituisce JSON con campi denominati. Per i tuoi programmi è diverso: quando il tuo crawler o la tua automazione del browser deve aprire una pagina come un utente di un certo paese, serve un IP di uscita in quel paese.
La divisione dei compiti è quindi semplice. IPFoxy dà alle tue richieste un IP di uscita diverso. EveryInfra ti fornisce dati strutturati per le piattaforme del suo catalogo.
| Attività | Cosa usare |
|---|---|
| Aprire pagine che cambiano in base al paese (prezzo locale, consegna, posizionamento degli annunci) o accedere al tuo negozio e ai tuoi account | Un proxy IPFoxy + il tuo crawler o browser |
| Raccogliere dati da siti o campi che non sono nel catalogo dell'API per i dati | Un proxy IPFoxy + il tuo crawler |
| Ottenere in blocco i dati delle piattaforme del catalogo per un foglio di calcolo o un database | L'API per i dati di EveryInfra, direttamente, senza proxy |
Questo esempio Python esegue entrambi i passaggi in un unico script. Il passaggio 1 chiama ipinfo.io tramite l'IP di uscita di IPFoxy e stampa il paese di uscita. Il passaggio 2 chiama EveryInfra direttamente per un prodotto Amazon. Prima di eseguirlo, imposta due variabili d'ambiente: EVERYINFRA_API_KEY è la tua chiave API e IPFOXY_PROXY è la stringa di connessione della dashboard di IPFoxy, nel formato http://username:password@host:port. Installa requests con pip install requests.
import os import requests EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] IPFOXY_PROXY = os.environ["IPFOXY_PROXY"] # http://username:password@host:port PROXIES = {"http": IPFOXY_PROXY, "https": IPFOXY_PROXY} # 1. La tua richiesta esce dall'IP di uscita di IPFoxy. exit_ip = requests.get("https://ipinfo.io/json", proxies=PROXIES, timeout=30).json() print("Paese dell'IP di uscita:", exit_ip.get("country")) # 2. La chiamata a EveryInfra è diretta: non serve un proxy. direct = requests.Session() direct.trust_env = False # ignora HTTP(S)_PROXY, così questa chiamata non consuma traffico proxy resp = direct.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={ "platform": "amazon", "action": "profile", "params": {"url": "https://www.amazon.com/dp/B0CYJDVT31"}, }, timeout=120, ) resp.raise_for_status() body = resp.json() item = body["results"] print(item["title"][:60], item["currency"], item["price"], item["rating"]) print("Addebitato (USD):", body["billing"]["charged_usd"])
direct.trust_env = Falsefa sì che la chiamata a EveryInfra ignori le variabili d'ambienteHTTP_PROXYeHTTPS_PROXY. Senza questa riga, anche questa chiamata passa per un eventuale proxy di sistema e paghi il traffico proxy che consuma.- Un 407 dal proxy significa che username o password sono errati. L'esempio si ferma prima di chiamare EveryInfra, quindi non viene addebitato nulla. Secondo il centro assistenza di IPFoxy, il proxy funziona solo se esegui il codice da una rete al di fuori della Cina continentale.
- Abbiamo eseguito questo codice il 24 ottobre 2026. La chiamata a EveryInfra ha restituito titolo, prezzo e valutazione del prodotto, con un addebito di $0,001389. Non abbiamo un account IPFoxy, quindi abbiamo testato il passaggio del proxy con un proxy fittizio locale: il formato dell'indirizzo, il tunnel
CONNECTe il caso 407. - Quanto traffico proxy consuma una pagina: circa 0,44 MB per il solo HTML e circa 7,96 MB per un caricamento completo nel browser. Per il costo per 1.000 pagine con ciascun piano IPFoxy e il tasso di successo di cui hai bisogno, leggi Quanto traffico proxy consuma una pagina Amazon?.
- L'esempio completo, il proxy fittizio locale e lo script di misurazione dei byte sono su GitHub: everyinfra-agent-plugins / examples / proxy-plus-data-api.
Informativa sui referral: il link «Visita IPFoxy» qui sotto è un link di referral che IPFoxy ci ha fornito, con il nostro codice di referral. Se ti registri o acquisti tramite questo link, IPFoxy potrebbe pagarci una commissione. IPFoxy è un nostro partner.
Visita IPFoxy (si apre in una nuova scheda)I prodotti e i prezzi di IPFoxy sono nella nostra pagina dei partner.
Come usare EveryInfra con la ricerca Exa
Exa cerca sul web in base al significato. La tua query non deve per forza contenere le parole presenti nella pagina: Exa trova comunque le aziende, gli articoli e i paper giusti e ne restituisce il testo insieme ai risultati. EveryInfra ti fornisce dati strutturati delle piattaforme, come valutazioni e recensioni di G2 e Trustpilot o commenti di YouTube, in JSON con campi denominati.
Uno schema comune: usa Exa per elencare un insieme di elementi, poi usa EveryInfra per aggiungere a ciascuno i dati della piattaforma.
| Attività | Cosa usare |
|---|---|
| Trovare un insieme di aziende, articoli o paper in base al significato, con il relativo testo | Exa |
| Valutazioni, numero di recensioni e testo delle recensioni di un prodotto noto su G2 o Trustpilot | Le API g2 e trustpilot di EveryInfra |
| Commenti e numero di like sotto un video YouTube | L'API youtube di EveryInfra (Exa restituisce il testo della trascrizione di un video, ma non i commenti) |
Questo esempio Python crea una tabella delle recensioni dei concorrenti. Il passaggio 1 chiede a Exa «note-taking apps similar to Obsidian»; category: "company" fa sì che restituisca solo home page di aziende. Il passaggio 2 chiama l'API g2/search di EveryInfra per ogni azienda e ne legge la valutazione e il numero di recensioni su G2. Prima di eseguirlo, imposta due variabili d'ambiente: EXA_API_KEY è la tua chiave della dashboard di Exa ed EVERYINFRA_API_KEY è la tua chiave API di EveryInfra. Serve pip install requests.
import os from concurrent.futures import ThreadPoolExecutor from urllib.parse import urlsplit import requests EXA_API_KEY = os.environ["EXA_API_KEY"] EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] QUESTION = "note-taking apps similar to Obsidian" # 1. Exa: trova aziende in base al significato, non alle parole chiave companies = requests.post( "https://api.exa.ai/search", headers={"x-api-key": EXA_API_KEY}, json={"query": QUESTION, "category": "company", "type": "auto", "numResults": 10}, timeout=60, ).json()["results"] # 2. EveryInfra: valutazione G2 e numero di recensioni di ogni azienda def g2_rating(company): name = company["title"].split(" - ")[0].split(" | ")[0].strip() resp = requests.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={"platform": "g2", "action": "search", "params": {"keyword": name}}, timeout=180, ) resp.raise_for_status() body = resp.json() match = next((p for p in body["results"] if p["product_name"].lower() == name.lower()), None) return name, match, body["billing"]["charged_usd"] with ThreadPoolExecutor(max_workers=4) as pool: rows = list(pool.map(g2_rating, companies)) spent = 0.0 for company, (name, g2, charged) in zip(companies, rows): spent += charged domain = urlsplit(company["url"]).hostname.removeprefix("www.") if g2 and g2["review_count"]: print(f"{name:12} {domain:16} G2 {g2['rating']} / 5 · {g2['review_count']} recensioni") else: print(f"{name:12} {domain:16} ancora nessuna recensione su G2") print("Addebito EveryInfra (USD):", round(spent, 6))
- Abbiamo eseguito questo codice così com'è il 25 ottobre 2026. Exa ha restituito 10 home page di aziende, e le stesse 10 quando abbiamo ripetuto la ricerca qualche minuto dopo. 7 su 10 hanno valutazioni e recensioni su G2, ad esempio Goodnotes con 4,7 e 123 recensioni e Milanote con 4,5 e 42. Abbiamo eseguito una volta ciascuna le versioni in inglese, cinese e spagnolo; ogni esecuzione ha richiesto 44–51 secondi. EveryInfra ha addebitato $0,01389 (10 chiamate
g2/search); la ricerca Exa è costata $0,007. - Un'azienda conta come corrispondenza solo quando il suo nome è identico al nome del prodotto su G2. L'esempio prende il titolo del risultato Exa ed elimina tutto ciò che segue " - ". Nella nostra esecuzione, su G2 non c'era nessun prodotto chiamato Brainio, mentre Yaranga e Brainfo hanno pagine G2 ma ancora nessuna recensione.
- Ogni chiamata
g2/searchviene addebitata una volta ($0,001389), anche quando nessun prodotto ha lo stesso nome, perché l'API restituisce comunque risultati di ricerca. Una chiamata richiede circa 30–70 secondi, quindi l'esempio esegue 4 chiamate alla volta. - Per Trustpilot, cambia il passaggio 2 in
trustpilot/profilee inserisci il dominio dell'azienda incompany. Per le stesse aziende, 4 su 7 avevano un profilo Trustpilot. Un'azienda senza profilo restituisce un risultato vuoto e non viene addebitata. - I risultati di Exa non contengono thread di Reddit: con
includeDomainsimpostato su reddit.com ha restituito 0 risultati, senza alcun costo. - Per la copertura su 3 categorie e 30 aziende, i grandi nomi che il confronto sul nome esatto non trova e i dati completi, leggi Exa trova i concorrenti, EveryInfra ne controlla le recensioni.
EveryInfra ed Exa sono partner. Il link «Visita Exa» qui sotto è un link semplice, senza codice di referral.
Visita Exa (si apre in una nuova finestra)I prodotti e i prezzi di Exa sono nella nostra pagina dei partner.
Usa EveryInfra con Monid
Monid è un router di strumenti per agenti AI. L'agente descrive in una frase ciò che gli serve: discover restituisce gratis gli endpoint adatti e i relativi prezzi, inspect restituisce gratis lo schema di input e il prezzo attuale e solo run viene addebitato, a quel prezzo, su un unico saldo prepagato. EveryInfra ti offre API per i dati delle piattaforme con struttura fissa: un unico formato di richiesta e, per ogni funzionalità, nomi dei campi fissi e un prezzo fisso.
Una suddivisione comune si basa su quanto spesso si ripete una chiamata. Le piattaforme presenti nel catalogo di EveryInfra (106 al 3 novembre 2026; GET /api/v1/social/catalog restituisce l'elenco aggiornato) passano da EveryInfra. Le piattaforme che non sono nel catalogo, e gli strumenti che non riguardano i dati (meteo, geocoding, loghi aziendali, generazione di immagini), passano da Monid.
| Attività | Cosa usare |
|---|---|
| Dati delle piattaforme che raccogli ogni giorno, ad esempio ricerche su Xiaohongshu, prodotti Amazon o commenti di YouTube | L'API di EveryInfra o lo strumento MCP everyinfra_call_api; il catalogo elenca le piattaforme |
| Una piattaforma che non è nel catalogo di EveryInfra, o uno strumento che ti serve solo ogni tanto | Monid: discover per trovare un endpoint, inspect per leggere il prezzo, poi run |
| Non sai ancora quale strumento usare | Monid discover (gratuito; restituisce i candidati in ordine di pertinenza con i relativi prezzi) |
Questo esempio in Python mette entrambi i tipi di chiamata in un unico script. Il passaggio 1 è l'attività quotidiana: chiama xiaohongshu/search di EveryInfra per "matcha latte", ordinando per numero di like, e stampa le prime 3 note e l'importo addebitato. Il passaggio 2 è un'attività occasionale: Monid trova uno strumento che restituisce il logo di un'azienda a partire dal dominio, e lo script lo esegue solo se il prezzo indicato da inspect non supera MAX_PRICE_USD. Prima di eseguirlo, imposta due variabili d'ambiente: EVERYINFRA_API_KEY è la tua chiave API di EveryInfra e MONID_API_KEY è una chiave API che crei nella dashboard di Monid (app.monid.ai). Devi anche eseguire pip install requests.
import os import requests EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] MONID_API_KEY = os.environ["MONID_API_KEY"] MONID = "https://api.monid.ai/v1" MONID_HEADERS = {"Authorization": f"Bearer {MONID_API_KEY}"} MAX_PRICE_USD = 0.01 # do not run a Monid tool that costs more than this per call # 1. The daily job: EveryInfra xiaohongshu/search, one fixed request shape resp = requests.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={"platform": "xiaohongshu", "action": "search", "params": {"keyword": "matcha latte", "sort": "most_liked"}}, timeout=120, ) resp.raise_for_status() body = resp.json() for note in body["results"][:3]: print(note["like_count"], note["collect_count"], note["posted_at"][:10], note["url"]) print("EveryInfra:", len(body["results"]), "notes, charged (USD):", body["billing"]["charged_usd"]) # 2. A one-off lookup that is not a daily platform: discover, inspect, run on Monid found = requests.post(f"{MONID}/discover", headers=MONID_HEADERS, timeout=60, json={"query": "company logo image URL from a domain", "limit": 3}).json()["results"] # discover adds ranking and price fields to each result; inspect and run take only the fields that name the tool SHOWN_ONLY = ("providerName", "description", "price", "score", "scoreBreakdown", "tags", "metrics", "hints") tool = {key: value for key, value in found[0].items() if key not in SHOWN_ONLY} detail = requests.post(f"{MONID}/inspect", headers=MONID_HEADERS, timeout=60, json=tool).json() price = detail["price"]["amount"]["value"] print("Monid tool:", detail["endpoint"], "price (USD):", price) if price <= MAX_PRICE_USD: run = requests.post(f"{MONID}/run", headers=MONID_HEADERS, timeout=120, json={**tool, "input": {"pathParams": {"company": "starbucks.com"}}}).json() print("Monid run:", run.get("runId"), run.get("status"), run.get("output"))
- Abbiamo eseguito questo codice così com'è il 3 novembre 2026 alle 16:45 (ora di Singapore). EveryInfra ha restituito 20 note e addebitato 0,005556 $.
discoverdi Monid ha messo al primo posto un endpoint per i loghi aziendali,inspectha indicato 0 $ per chiamata erunha restituito lo stato COMPLETED e l'URL dell'immagine del logo. Lo script ha impiegato 6–7 secondi. Abbiamo eseguito una volta ciascuna la versione cinese, inglese e spagnola (la versione cinese cerca il nome cinese della bevanda). - Ogni chiamata a
xiaohongshu/searchrestituisce una pagina contenente fino a 20 note e comporta un addebito di 0,005556 $. Una pagina senza note non viene addebitata. Per ottenere la pagina successiva, reinvia ilnext_page_tokenrestituito nei risultati. - Monid non addebita
discovernéinspect; viene addebitato solorun, al prezzo indicato dainspect. Durante l'esecuzione, Monid riserva sul saldo il costo stimato e contabilizza l'importo effettivo al termine (llms.txt di Monid, consultato il 2026-11-03). L'esempio usaMAX_PRICE_USDper saltare gli strumenti che superano il tuo budget. - Puoi dare all'agente una regola di instradamento come questa: "Le piattaforme presenti in
GET https://api.everyinfra.com/api/v1/social/catalogpassano daeveryinfra_call_api. Tutte le altre piattaforme e tutti gli altri strumenti passano da Monid: prima discover, poi inspect, ed esegui run solo se il prezzo rientra nel budget. Registra l'importo addebitato per ogni chiamata." - Il server MCP di Monid (
https://mcp.monid.ai/v1) richiede un accesso OAuth nel browser e non l'abbiamo testato. I passaggi di configurazione per Claude, Claude Code, Codex, OpenCode e ChatGPT sono nella [guida rapida MCP di Monid](https://monid.ai/docs/guide/quickstart-mcp). Per la parte di EveryInfra, consulta la sezione MCP più sopra.
EveryInfra e Monid sono partner. Il link "Visita Monid" qui sotto è un link semplice, senza codice di affiliazione.
Visita Monid (si apre in una nuova finestra)Trovi prodotti e fatturazione di Monid nella nostra pagina dei partner.
Come funzionano addebiti e rettifiche del saldo
Controlla nel catalogo pubblico il prezzo e l'unità di fatturazione della funzionalità che ti serve. Ogni risposta riporta l'importo addebitato. Per i prodotti addebitati solo in caso di consegna riuscita, le richieste non riuscite o con risultati vuoti non vengono addebitate.
- Non convertire nel tuo client le unità interne del portafoglio in valuta.
- Mostra la valuta e gli importi restituiti dall'API e usali per riconciliare gli addebiti.
- Quando un'operazione basata sulla consegna non si completa, non resta alcun addebito finale e l'eventuale importo trattenuto torna automaticamente sul saldo dell'account.
- L'oggetto
billingdi ogni risposta a pagamento includecharged_usd, l'importo addebitato per quella chiamata in USD (0 se non è stato addebitato nulla, null finché l'esito non è noto), ebalance_after_usd, il saldo del portafoglio dopo la contabilizzazione della chiamata (null se non è possibile leggerlo). Durante un batch, tieni d'occhiobalance_after_usdinvece di interrogare l'account. - Quando l'importo trattenuto per una chiamata non riuscita è stato restituito, anche il campo
billingnel corpo dell'errore contienebalance_after_usd.
Gestione degli errori
Leggi insieme lo stato HTTP e il corpo dell'errore. Ogni errore indica anche di chi è il problema e cosa fare dopo: fault (request, account o service), retryable e next_steps. Quando il problema è lato EveryInfra e i nuovi tentativi sono esauriti, support contiene una bozza di ticket; chiedi all'utente prima di aprirlo. Prima di riprovare, verifica cosa non ha funzionato e se ripetere la richiesta potrebbe duplicare un'azione.
| Stato | Significato | Cosa fare |
|---|---|---|
| 400 | Piattaforma o azione sconosciuta | Usa did_you_mean e allowed dalla risposta, oppure il catalogo delle funzionalità. |
| 401 | Chiave API mancante, non valida o disattivata | Controlla il token Bearer e lo stato della chiave. |
| 402 | Saldo del portafoglio insufficiente | Controlla il saldo attuale con GET /api/v1/account, poi ricarica l'account o riduci l'ambito della richiesta. |
| 404 | Route o risorsa sconosciuta | Controlla l'endpoint e l'identificatore della risorsa. |
| 422 | Parametro, valore o tipo non valido | Leggi dalla risposta i valori supportati e did_you_mean. |
| 429 | Limite di frequenza delle richieste raggiunto | Attendi Retry-After prima di riprovare. Il limite è per account e conta tutte le chiavi API insieme; una chiave può avere anche un proprio limite più basso. |
| 5xx | Non è stato possibile inoltrare la richiesta | Annota l'ID della richiesta e segui next_steps. In caso di timeout (timeout), ripeti la stessa richiesta con "mode":"async" per ricevere un job_id invece di attendere. |
Gli endpoint dei cataloghi richiedono una chiave API?
No. I cataloghi pubblici delle funzionalità si possono consultare prima della registrazione. Le chiamate autenticate richiedono comunque una chiave API Bearer valida.
Da dove provengono i dati e avete il permesso delle piattaforme?
EveryInfra restituisce contenuti visibili pubblicamente su ciascuna piattaforma, come post pubblici, commenti, pagine prodotto e profili. Non devi registrare un'app per sviluppatori sulla piattaforma né accedere con un account della piattaforma. Non siamo partner di queste piattaforme, non le rappresentiamo e non otteniamo il loro permesso per tuo conto. Sei tu a decidere come usare i dati: assicurati che l'uso sia conforme alla legge applicabile e ai termini della piattaforma (vedi le sezioni 1 e 4 dei [Termini di servizio](/it/terms)). Il fatto che un contenuto sia visibile pubblicamente non significa che sia consentito copiarlo, ripubblicarlo o usarlo a fini commerciali.
MCP e REST sono prodotti separati?
No. MCP è un altro modo per accedere agli strumenti di EveryInfra attualmente individuati. Dati, ricerca, CAPTCHA e chat AI riutilizzano le regole REST corrispondenti per autenticazione, fatturazione, convalida, limiti di frequenza delle richieste e rettifiche del saldo.
L'API per l'AI è gratuita?
Sì. Qualsiasi account che abbia effettuato una ricarica può chiamarla senza intaccare il saldo. I limiti dipendono dal totale delle ricariche: 50 richieste al minuto e fino a 5 richieste simultanee per un totale di ricariche inferiore a $100; 500 e 50 a partire da $100; 5000 e 500 a partire da $500; i codici di credito e i crediti bonus superiori a 1 $ ciascuno contano come ricariche, mentre il credito di prova e gli importi pari o inferiori a 1 $ no.
Come controllo il saldo dal codice?
Chiama GET /api/v1/account con la stessa chiave API Bearer. Restituisce il saldo ricaricato, bonus e totale in USD, lo sconto sulle ricariche di questo mese, il limite di richieste al minuto e l'utilizzo delle ultime 24 ore, senza addebiti e senza contare ai fini del limite. Ogni risposta a pagamento include anche billing.balance_after_usd.
Un parametro non supportato può essere ignorato?
No. I parametri sconosciuti restituiscono 422 con i valori supportati e, quando è possibile determinarlo, un suggerimento con il nome più simile.
Come devo inviare un grande batch di richieste?
Usa la modalità asincrona: aggiungi "mode": "async" al corpo della richiesta. Ogni chiamata restituisce subito un job_id e interroghi GET /api/v1/jobs/{job_id} per ottenere il risultato. Una chiamata sincrona deve completarsi entro 85 secondi, altrimenti fallisce per timeout (senza addebito); un job asincrono non è soggetto a questo limite.