ShortsMonkey DocumentationConsole APICréer une clé

Longues vidéos chinoises à faible abonnement

Un classement d'opportunité dédié qui renvoie les éléments stricts par défaut.

GET
https://api.shortsmonkey.com/v1/rankings/chinese-low-subscriber-long-videos?start_date=2026-07-01&end_date=2026-07-20&quality=strict&limit=20

1 crédit pour 1 à 20 articles réels

Longues vidéos chinoises à faible abonnement#

Un classement d'opportunité dédié qui renvoie les éléments stricts par défaut.

Authentification#

Envoyez Authorization: Bearer sm_live_.... Ne placez jamais la clé complète dans les URL, les cookies, les corps, les journaux ou les analyses.

Fraîcheur des données#

Les classements lisent les instantanés stables publiés par le travailleur. Les lectures publiques ne déclenchent jamais une actualisation YouTube.

Demande#

ArticleValeurDescription
MéthodeGETMéthode de requête HTTP
Complet URLhttps://api.shortsmonkey.com/v1/rankings/chinese-low-subscriber-long-videos?start_date=2026-07-01&end_date=2026-07-20&quality=strict&limit=20Production API URL
AuthentificationAuthorization: Bearer sm_live_...Envoyer la clé complète uniquement dans l'en-tête
Type de contenuAucun corps de requêteLes requêtes GET n'ont pas de corps de requête
Crédits1 crédit pour 1 à 20 articles réelsLes réponses aux erreurs coûtent 0 crédit

Paramètres de la demande#

NomEmplacementTaperRequisDéfautValeurs ou limitesDescription
periodRequêtestringNontodaytoday / 7d / all_timeFenêtre de publication prédéfinie ; omettre lors de l'utilisation de dates personnalisées
start_dateRequêtestring(date)ConditionnelYYYY-MM-DDDate de début UTC incluse ; doit être associé à end_date
end_dateRequêtestring(date)ConditionnelYYYY-MM-DDDate de fin UTC incluse ; ne peut pas être antérieur à la date de début
trackRequêtestringNonall1 à 80 caractèresFiltrer par identifiant de piste ; all inclut chaque piste
qualityRequêtestringNonstrictstrict / allRenvoie uniquement des données strictes ou inclut des candidats étendus
limitRequêteintegerNon201–50Nombre maximum d'éléments sur cette page
all_cursorRequêtestringNonall_data.next_cursor, valable 24 heuresRécupérer la page suivante non filtrée
filter_cursorRequêtestringNonfilter_data.next_cursor, valable 24 heuresRécupérer la page filtrée suivante sans changer les filtres
cursorRequêtestringNonParamètre de compatibilité obsolèteAlias ​​pour filter_cursor ; n'envoyez pas les deux

Champs de réponse de réussite#

all_data est une page non filtrée de l'instantané stable ; filter_data est une page du même instantané après les paramètres par défaut du point de terminaison et les filtres de demande. Chaque résultat est paginé indépendamment.

La notation par points représente les objets imbriqués et [] représente les éléments du tableau. Le nombre d'abonnés inconnus est null avec subscriber_count_hidden: true. Une demande est facturée une seule fois en utilisant le plus grand nombre d'articles retournés, jamais la somme des deux ensembles.

Chemin de champTaperNullableDescription
data.all_data.itemsarray<object>NonÉléments vidéo non filtrés sur la page actuelle
data.all_data.items[].video_idstringNonID vidéo YouTube
data.all_data.items[].titlestringNonTitre de la vidéo
data.all_data.items[].video_urlstringNonVidéo YouTube URL
data.all_data.items[].channel.idstringOuiID de chaîne
data.all_data.items[].channel.titlestringNonTitre de la chaîne
data.all_data.items[].channel.subscribersintegerOuiNombre d'abonnés ; null lorsqu'il est masqué
data.all_data.items[].channel.subscriber_count_hiddenbooleanNonSi le nombre d'abonnés est masqué
data.all_data.items[].viewsintegerNonInstantané du nombre de vues
data.all_data.items[].views_to_subscribers_rationumberOuiRatio vues/abonnés
data.all_data.items[].opportunity_scorenumberOuiScore d'opportunité
data.all_data.items[].duration_secondsintegerNonDurée de la vidéo en secondes
data.all_data.items[].published_atstring(date-time)OuiHeure de publication de la vidéo en UTC ISO 8601
data.all_data.items[].snapshot_atstring(date-time)OuiTemps de collecte des données
data.all_data.items[].nichestringOuiNiche ou catégorie
data.all_data.items[].trackstringOuiIdentifiant de la piste de l'ensemble de données
data.all_data.items[].regionstringOuiCode de région
data.all_data.items[].reasonsarray<string>NonRaisons du classement
data.all_data.items[].video_typestringNonshorts ou long
data.all_data.next_cursorstringOuiPage suivante cursor pour cet ensemble de résultats ; null une fois terminé
data.filter_data.itemsarray<object>NonÉléments vidéo après les valeurs par défaut et les filtres de demande
data.filter_data.items[].video_idstringNonID vidéo YouTube
data.filter_data.items[].titlestringNonTitre de la vidéo
data.filter_data.items[].video_urlstringNonVidéo YouTube URL
data.filter_data.items[].channel.idstringOuiID de chaîne
data.filter_data.items[].channel.titlestringNonTitre de la chaîne
data.filter_data.items[].channel.subscribersintegerOuiNombre d'abonnés ; null lorsqu'il est masqué
data.filter_data.items[].channel.subscriber_count_hiddenbooleanNonSi le nombre d'abonnés est masqué
data.filter_data.items[].viewsintegerNonInstantané du nombre de vues
data.filter_data.items[].views_to_subscribers_rationumberOuiRatio vues/abonnés
data.filter_data.items[].opportunity_scorenumberOuiScore d'opportunité
data.filter_data.items[].duration_secondsintegerNonDurée de la vidéo en secondes
data.filter_data.items[].published_atstring(date-time)OuiHeure de publication de la vidéo en UTC ISO 8601
data.filter_data.items[].snapshot_atstring(date-time)OuiTemps de collecte des données
data.filter_data.items[].nichestringOuiNiche ou catégorie
data.filter_data.items[].trackstringOuiIdentifiant de la piste de l'ensemble de données
data.filter_data.items[].regionstringOuiCode de région
data.filter_data.items[].reasonsarray<string>NonRaisons du classement
data.filter_data.items[].video_typestringNonshorts ou long
data.filter_data.next_cursorstringOuiPage suivante cursor pour cet ensemble de résultats ; null une fois terminé
data.all_data.items[].quality_tierstringNonstrict ou expanded
data.filter_data.items[].quality_tierstringNonstrict ou expanded
data.all_data.items[].is_expanded_candidatebooleanNonSi l'élément est un candidat étendu
data.filter_data.items[].is_expanded_candidatebooleanNonSi l'élément est un candidat étendu
meta.methodology_versionstringNonVersion méthodologie de classement
meta.request_idstringNonDemander l'ID de trace
meta.snapshot_idstringNonID d'instantané stable
meta.snapshot_atstring(date-time)NonHorodatage de l'instantané
meta.data_statusstringNonStatut de l'ensemble de données
credits.costintegerNonCrédits réels facturés
credits.remainingintegerNonCrédits de compte restants
credits.period_ends_atstring(date-time)NonFin de la période de crédit en cours

Pagination et cursor#

Envoyez all_data.next_cursor sous la forme all_cursor et filter_data.next_cursor sous la forme filter_cursor. Les cursor sont indépendants, opaques, signés et valables 24 heures ; l'ancien cursor n'est qu'un alias pour filter_cursor.

Etag#

Les classements prennent en charge If-None-Match. Un hit renvoie HTTP 304 avec X-Credits-Cost: 0.

Erreurs et limites de débit#

Chaque erreur contient code, l'anglais stable message, request_id et details. Toutes les réponses 4xx/5xx ne coûtent aucun crédit.

Statut HTTPCodeCauseAction suggérée
400INVALID_REQUESTFormat, combinaison ou plage de paramètre non valideCorrigez les paramètres à l'aide de details.issues
401INVALID_API_KEYLa clé est invalide ou inactiveVérifiez l’en-tête Bearer et l’état de la clé
402SUBSCRIPTION_REQUIRED / CREDITS_EXHAUSTEDL'abonnement ou les crédits ne sont pas disponiblesVérifiez le plan, le solde et le budget de sécurité clé
429RATE_LIMITEDLimite de débit ou de simultanéité dépasséeRéessayez après l'intervalle Retry-After
503DATA_STALE / SERVICE_UNAVAILABLELes données ou le service sont temporairement indisponiblesRéessayez plus tard et conservez request_id
curl -X GET "https://api.shortsmonkey.com/v1/rankings/chinese-low-subscriber-long-videos?start_date=2026-07-01&end_date=2026-07-20&quality=strict&limit=20" \
  -H "Authorization: Bearer $SHORTSMONKEY_API_KEY"