ShortsMonkey DocumentazioneConsole APICrea chiave

Outlier ricerca video

Cerca i dati archiviati per parola chiave, nicchia, regione e rapporto visualizzazioni-abbonati.

POST
https://api.shortsmonkey.com/v1/videos/outliers/search

2 crediti per 1-20 elementi effettivi

Outlier ricerca video#

Cerca i dati archiviati per parola chiave, nicchia, regione e rapporto visualizzazioni-abbonati.

Autenticazione#

Invia Authorization: Bearer sm_live_.... Non inserire mai la chiave completa in URL, cookie, corpi, log o analisi.

Freschezza dei dati#

Le classifiche leggono istantanee stabili pubblicate dal lavoratore. Le letture pubbliche non attivano mai un aggiornamento YouTube.

Richiesta#

ArticoloValoreDescrizione
MetodoPOSTMetodo di richiesta HTTP
URL completohttps://api.shortsmonkey.com/v1/videos/outliers/searchProduzione API URL
AutenticazioneAuthorization: Bearer sm_live_...Invia la chiave completa solo nell'intestazione
Tipo di contenutoapplication/jsonIl corpo della richiesta utilizza JSON
Crediti2 crediti per 1-20 elementi effettiviLe risposte agli errori costano 0 crediti

Richiedi parametri#

NomePosizioneTipoNecessarioPredefinitoValori o limitiDescrizione
keywordCorpo JSONstringNO1–120 caratteriParola chiave abbinata al titolo memorizzato o al testo di nicchia
nicheCorpo JSONstringNO1–80 caratteriFiltro di nicchia o di categoria
video_typeCorpo JSONstringNOallshorts / long / allTipo di video
regionCorpo JSONstringNO2-16 caratteriCodice regionale
max_channel_subscribersCorpo JSONintegerNO0–10,000,000Conteggio massimo degli iscritti al canale
min_viewsCorpo JSONintegerNO0–1,000,000,000Numero minimo di visualizzazioni
min_vs_ratioCorpo JSONnumberNO100–100,000Rapporto minimo visualizzazioni/iscritti
time_windowCorpo JSONstringNO7d24h / 3d / 7d / 30dFinestra di pubblicazione video
limitCorpo JSONintegerNO201–50Numero massimo di elementi in questa pagina
all_cursorCorpo JSONstringNOdata.all_data.next_cursorRecupera la pagina successiva non filtrata
filter_cursorCorpo JSONstringNOdata.filter_data.next_cursorRecupera la pagina filtrata successiva senza modificare i filtri
cursorCorpo JSONstringNOParametro di compatibilità deprecatoAlias ​​per filter_cursor; non inviarli entrambi

Campi di risposta di successo#

all_data è una pagina non filtrata dallo snapshot stabile; filter_data è una pagina dello stesso snapshot dopo le impostazioni predefinite dell'endpoint e i filtri delle richieste. Ogni risultato viene impaginato in modo indipendente.

La notazione con punti rappresenta oggetti nidificati e [] rappresenta elementi dell'array. Il numero di abbonati sconosciuti è null con subscriber_count_hidden: true. Una richiesta viene fatturata una volta utilizzando il numero maggiore di articoli restituiti, mai la somma di entrambi i set.

Sentiero del campoTipoNullabileDescrizione
data.all_data.itemsarray<object>NOElementi video non filtrati nella pagina corrente
data.all_data.items[].video_idstringNOID video YouTube
data.all_data.items[].titlestringNOTitolo del video
data.all_data.items[].video_urlstringNOYouTube video URL
data.all_data.items[].channel.idstringID del canale
data.all_data.items[].channel.titlestringNOTitolo del canale
data.all_data.items[].channel.subscribersintegerConteggio degli iscritti; null quando nascosto
data.all_data.items[].channel.subscriber_count_hiddenbooleanNOSe il conteggio degli iscritti è nascosto
data.all_data.items[].viewsintegerNOIstantanea del conteggio delle visualizzazioni
data.all_data.items[].views_to_subscribers_rationumberRapporto visualizzazioni/abbonati
data.all_data.items[].opportunity_scorenumberPunteggio opportunità
data.all_data.items[].duration_secondsintegerNODurata del video in secondi
data.all_data.items[].published_atstring(date-time)Orario di pubblicazione del video in UTC ISO 8601
data.all_data.items[].snapshot_atstring(date-time)Orario di raccolta dati
data.all_data.items[].nichestringNicchia o categoria
data.all_data.items[].trackstringIdentificatore della traccia del set di dati
data.all_data.items[].regionstringCodice regionale
data.all_data.items[].reasonsarray<string>NORagioni di classifica
data.all_data.items[].video_typestringNOshorts o long
data.all_data.next_cursorstringPagina successiva cursor per questo set di risultati; null al termine
data.filter_data.itemsarray<object>NOElementi video dopo le impostazioni predefinite e i filtri di richiesta
data.filter_data.items[].video_idstringNOID video YouTube
data.filter_data.items[].titlestringNOTitolo del video
data.filter_data.items[].video_urlstringNOYouTube video URL
data.filter_data.items[].channel.idstringID del canale
data.filter_data.items[].channel.titlestringNOTitolo del canale
data.filter_data.items[].channel.subscribersintegerConteggio degli iscritti; null quando nascosto
data.filter_data.items[].channel.subscriber_count_hiddenbooleanNOSe il conteggio degli iscritti è nascosto
data.filter_data.items[].viewsintegerNOIstantanea del conteggio delle visualizzazioni
data.filter_data.items[].views_to_subscribers_rationumberRapporto visualizzazioni/abbonati
data.filter_data.items[].opportunity_scorenumberPunteggio opportunità
data.filter_data.items[].duration_secondsintegerNODurata del video in secondi
data.filter_data.items[].published_atstring(date-time)Orario di pubblicazione del video in UTC ISO 8601
data.filter_data.items[].snapshot_atstring(date-time)Orario di raccolta dati
data.filter_data.items[].nichestringNicchia o categoria
data.filter_data.items[].trackstringIdentificatore della traccia del set di dati
data.filter_data.items[].regionstringCodice regionale
data.filter_data.items[].reasonsarray<string>NORagioni di classifica
data.filter_data.items[].video_typestringNOshorts o long
data.filter_data.next_cursorstringPagina successiva cursor per questo set di risultati; null al termine
meta.request_idstringNORichiedi l'ID di traccia
meta.snapshot_idstringNOID istantanea stabile
meta.snapshot_atstring(date-time)NOTimestamp dell'istantanea
meta.data_statusstringNOStato del set di dati
credits.costintegerNOCrediti effettivi addebitati
credits.remainingintegerNOCrediti rimanenti sul conto
credits.period_ends_atstring(date-time)NOFine del periodo di credito corrente

Impaginazione e cursors#

Invia all_data.next_cursor come all_cursor e filter_data.next_cursor come filter_cursor. Gli cursor sono indipendenti, opachi, firmati e validi per 24 ore; legacy cursor è solo un alias per filter_cursor.

ETag#

Le classifiche supportano If-None-Match. Un successo restituisce HTTP 304 con X-Credits-Cost: 0.

Errori e limiti di velocità#

Ogni errore contiene code, inglese stabile message, request_id e details. Tutte le risposte 4xx/5xx costano zero crediti.

Stato HTTPCodiceCausaAzione suggerita
400INVALID_REQUESTFormato, combinazione o intervallo del parametro non validoCorreggere i parametri utilizzando details.issues
401INVALID_API_KEYLa chiave non è valida o è inattivaControlla l'intestazione del portatore e lo stato della chiave
402SUBSCRIPTION_REQUIRED / CREDITS_EXHAUSTEDL'abbonamento o i crediti non sono disponibiliControllare il piano, il bilancio e il budget chiave per la sicurezza
429RATE_LIMITEDLimite di velocità o concorrenza superatoRiprovare dopo l'intervallo Retry-After
503DATA_STALE / SERVICE_UNAVAILABLEI dati o il servizio sono temporaneamente non disponibiliRiprova più tardi e mantieni request_id
curl -X POST "https://api.shortsmonkey.com/v1/videos/outliers/search" \
  -H "Authorization: Bearer $SHORTSMONKEY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"finance","video_type":"all","time_window":"7d","min_vs_ratio":10,"limit":20}'