ShortsMonkey DocumentaciónConsola APICrear clave

Búsqueda de vídeos Outlier

Busque datos almacenados por palabra clave, nicho, región y proporción de visitas a suscriptores.

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

2 créditos por cada 1 a 20 artículos reales

Búsqueda de vídeos Outlier#

Busque datos almacenados por palabra clave, nicho, región y proporción de visitas a suscriptores.

Autenticación#

Envíe Authorization: Bearer sm_live_.... Nunca coloque la clave completa en URL, cookies, cuerpos, registros o análisis.

Actualización de datos#

Las clasificaciones leen instantáneas estables publicadas por el trabajador. Las lecturas públicas nunca activan una actualización de YouTube.

Pedido#

ArtículoValorDescripción
MétodoPOSTMétodo de solicitud HTTP
Completo URLhttps://api.shortsmonkey.com/v1/videos/outliers/searchProducción API URL
AutenticaciónAuthorization: Bearer sm_live_...Enviar la clave completa solo en el encabezado
Tipo de contenidoapplication/jsonEl cuerpo de la solicitud utiliza JSON.
Créditos2 créditos por cada 1 a 20 artículos realesLas respuestas de error cuestan 0 créditos

Solicitar parámetros#

NombreUbicaciónTipoRequeridoPor defectoValores o límitesDescripción
keywordCuerpo JSONstringNo1–120 caracteresPalabra clave comparada con el título almacenado o el texto especializado
nicheCuerpo JSONstringNo1–80 caracteresFiltro de nicho o categoría
video_typeCuerpo JSONstringNoallshorts / long / allTipo de vídeo
regionCuerpo JSONstringNo2 a 16 caracterescódigo de región
max_channel_subscribersCuerpo JSONintegerNo0–10,000,000Recuento máximo de suscriptores del canal
min_viewsCuerpo JSONintegerNo0–1,000,000,000Recuento mínimo de vistas
min_vs_ratioCuerpo JSONnumberNo100–100,000Proporción mínima de visitas a suscriptores
time_windowCuerpo JSONstringNo7d24h / 3d / 7d / 30dVentana de publicación de vídeo
limitCuerpo JSONintegerNo201–50Número máximo de elementos en esta página
all_cursorCuerpo JSONstringNodata.all_data.next_cursorObtener la siguiente página sin filtrar
filter_cursorCuerpo JSONstringNodata.filter_data.next_cursorObtenga la siguiente página filtrada sin cambiar los filtros
cursorCuerpo JSONstringNoParámetro de compatibilidad obsoletoAlias ​​de filter_cursor; no envíes ambos

Campos de respuesta exitosa#

all_data es una página sin filtrar de la instantánea estable; filter_data es una página de la misma instantánea después de los valores predeterminados del punto final y los filtros de solicitud. Cada resultado se pagina de forma independiente.

La notación de puntos representa objetos anidados y [] representa elementos de matriz. El recuento de suscriptores desconocidos es null con subscriber_count_hidden: true. Una solicitud se factura una vez utilizando el mayor número de artículos devueltos, nunca la suma de ambos conjuntos.

Camino de campoTipoAnulableDescripción
data.all_data.itemsarray<object>NoElementos de vídeo sin filtrar en la página actual
data.all_data.items[].video_idstringNoID de vídeo YouTube
data.all_data.items[].titlestringNoTítulo del vídeo
data.all_data.items[].video_urlstringNoVídeo YouTube URL
data.all_data.items[].channel.idstringID de canal
data.all_data.items[].channel.titlestringNoTítulo del canal
data.all_data.items[].channel.subscribersintegerRecuento de suscriptores; null cuando está oculto
data.all_data.items[].channel.subscriber_count_hiddenbooleanNoSi el recuento de suscriptores está oculto
data.all_data.items[].viewsintegerNoInstantánea del recuento de vistas
data.all_data.items[].views_to_subscribers_rationumberRelación vistas-suscriptores
data.all_data.items[].opportunity_scorenumberPuntuación de oportunidad
data.all_data.items[].duration_secondsintegerNoDuración del vídeo en segundos.
data.all_data.items[].published_atstring(date-time)Hora de publicación del vídeo en UTC ISO 8601
data.all_data.items[].snapshot_atstring(date-time)tiempo de recolección de datos
data.all_data.items[].nichestringNicho o categoría
data.all_data.items[].trackstringIdentificador de seguimiento del conjunto de datos
data.all_data.items[].regionstringcódigo de región
data.all_data.items[].reasonsarray<string>NoRazones de clasificación
data.all_data.items[].video_typestringNoshorts o long
data.all_data.next_cursorstringPágina siguiente cursor para este conjunto de resultados; null cuando termine
data.filter_data.itemsarray<object>NoElementos de vídeo después de los valores predeterminados y los filtros de solicitud
data.filter_data.items[].video_idstringNoID de vídeo YouTube
data.filter_data.items[].titlestringNoTítulo del vídeo
data.filter_data.items[].video_urlstringNoVídeo YouTube URL
data.filter_data.items[].channel.idstringID de canal
data.filter_data.items[].channel.titlestringNoTítulo del canal
data.filter_data.items[].channel.subscribersintegerRecuento de suscriptores; null cuando está oculto
data.filter_data.items[].channel.subscriber_count_hiddenbooleanNoSi el recuento de suscriptores está oculto
data.filter_data.items[].viewsintegerNoInstantánea del recuento de vistas
data.filter_data.items[].views_to_subscribers_rationumberRelación vistas-suscriptores
data.filter_data.items[].opportunity_scorenumberPuntuación de oportunidad
data.filter_data.items[].duration_secondsintegerNoDuración del vídeo en segundos.
data.filter_data.items[].published_atstring(date-time)Hora de publicación del vídeo en UTC ISO 8601
data.filter_data.items[].snapshot_atstring(date-time)tiempo de recolección de datos
data.filter_data.items[].nichestringNicho o categoría
data.filter_data.items[].trackstringIdentificador de seguimiento del conjunto de datos
data.filter_data.items[].regionstringcódigo de región
data.filter_data.items[].reasonsarray<string>NoRazones de clasificación
data.filter_data.items[].video_typestringNoshorts o long
data.filter_data.next_cursorstringPágina siguiente cursor para este conjunto de resultados; null cuando termine
meta.request_idstringNoSolicitar ID de seguimiento
meta.snapshot_idstringNoID de instantánea estable
meta.snapshot_atstring(date-time)NoMarca de tiempo de instantánea
meta.data_statusstringNoEstado del conjunto de datos
credits.costintegerNoCréditos reales cobrados
credits.remainingintegerNoCréditos restantes de la cuenta
credits.period_ends_atstring(date-time)NoFin del período de crédito actual

Paginación y cursor#

Envíe all_data.next_cursor como all_cursor y filter_data.next_cursor como filter_cursor. Los cursor son independientes, opacos, firmados y válidos por 24 horas; El cursor heredado es solo un alias para filter_cursor.

etiqueta ET#

Las clasificaciones admiten If-None-Match. Un acierto devuelve HTTP 304 con X-Credits-Cost: 0.

Errores y límites de tarifa#

Cada error contiene code, message, request_id y details en inglés estable. Todas las respuestas 4xx/5xx cuestan cero créditos.

Estado HTTPCódigoCausaAcción sugerida
400INVALID_REQUESTFormato, combinación o rango de parámetro no válidoCorrija los parámetros usando details.issues
401INVALID_API_KEYLa clave no es válida o está inactiva.Verifique el encabezado del portador y el estado de la clave
402SUBSCRIPTION_REQUIRED / CREDITS_EXHAUSTEDLa suscripción o los créditos no están disponiblesConsulta el plan, el equilibrio y el presupuesto clave de seguridad.
429RATE_LIMITEDSe superó el límite de tasa o simultaneidadReintentar después del intervalo Retry-After
503DATA_STALE / SERVICE_UNAVAILABLELos datos o el servicio no están disponibles temporalmenteVuelva a intentarlo más tarde y conserve 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}'