Music API by Popnable

Truy cap bang xep hang toan cau cua Popnable - bai hat, nghe si, video va xu huong tu 160+ quoc gia trong mot API duy nhat.

Lấy API Key Mua tín dụng
Bạn có thể làm gì?
Tu dong hoan thanh tuc thi

Ket qua nhanh voi tim kiem chap nhan loi chinh ta.

Geo-fencing chinh xac

Tim kiem theo thanh pho, hop gioi han hoac ban kinh.

Sieu du lieu dia diem phong phu

Tra ve ma nhan dang OSM, dan so, ten hien thi va nhieu hon.

99.9 % Thời gian hoạt động
1239.6ms Phản hồi
10 req/s
0.01 Tín dụng / yêu cầu

Popnable Music API

Single endpoint that proxies Popnable API and returns normalized data for songs, trends, artists, charts and YouTube videos. The behavior is controlled by the action parameter.


POST https://api.yeb.to/v1/music/popnable

Common parameters

Tham số Loại Bắt buộc Mô tả
api_key string Your YEB API key.
action string Selects which Popnable v2 method to call. Supported values:
search, get-trends, get-songs, get-songs-by-trend, get-artists, get-artist-by-trend, get-daily-chart, get-weekly-chart, get-monthly-chart, get-artist-chart, get-videos.

Parameters by action

action Parameter Type Required Description
search keyword string Search term (song/artist). Short text (~20 chars recommended).
get-trends ids string tùy chọn Comma-separated list of trend IDs. If omitted, Popnable may return all trends (depending on provider rules).
get-songs ids string Comma-separated list of song IDs.
stats string tùy chọn yes / no – include Popnable stats.
charts string tùy chọn Comma-separated list of chart types, e.g. daily,weekly.
get-songs-by-trend trend string Trend ID (country/region ID in Popnable).
day string Date in YYYY-MM-DD format.
stats string tùy chọn yes / no – include stats.
charts string tùy chọn Charts for the returned songs, e.g. daily,weekly,monthly.
get-artists ids string Comma-separated list of artist IDs.
stats string tùy chọn yes / no – include artist stats.
charts string tùy chọn Chart type, e.g. artists.
songs string tùy chọn yes / no – include songs for each artist.
get-artist-by-trend trend string Trend ID (country/region).
day string Date in YYYY-MM-DD format.
stats string tùy chọn Artist stats (yes/no).
charts string tùy chọn Chart type (usually artists).
get-daily-chart trend string Trend ID (country/region).
day string Date for the daily chart (YYYY-MM-DD).
get-weekly-chart trend string Trend ID (country/region).
day string Date for the weekly chart (YYYY-MM-DD).
get-monthly-chart trend string Trend ID (country/region).
day string Date for the monthly chart (YYYY-MM-DD).
get-artist-chart trend string Trend ID (country/region).
day string Date for the artist chart (YYYY-MM-DD).
get-videos yt_codes string Comma-separated list of YouTube video codes (e.g. AbCdE123).
charts string tùy chọn Chart types, e.g. daily,weekly.
dailyStats string tùy chọn yes / no – include daily breakdown stats.
day string tùy chọn Reference day (YYYY-MM-DD). If omitted, current date may be used.

Ví dụ yêu cầu

1) Search by keyword (action=search)
{
  "api_key": "YOUR_KEY",
  "action" : "search",
  "keyword": "preslava"
}
2) Song details by ID (action=get-songs)
{
  "api_key": "YOUR_KEY",
  "action" : "get-songs",
  "ids"    : "123",
  "stats"  : "yes",
  "charts" : "daily,weekly"
}
3) Video stats by YouTube code (action=get-videos)
{
  "api_key"   : "YOUR_KEY",
  "action"    : "get-videos",
  "yt_codes"  : "AbCdE123",
  "charts"    : "daily,weekly",
  "dailyStats": "yes",
  "day"       : "2025-01-05"
}

Tích hợp API

curl -X POST https://api.yeb.to/v1/music/popnable \
  -H "Content-Type: application/json" \
  -d '{"api_key":"YOUR_KEY","action":"search","keyword":"preslava"}'
use Illuminate\Support\Facades\Http;

Route::post('/music-popnable-demo', function () {
    $response = Http::post('https://api.yeb.to/v1/music/popnable', [
        'api_key' => config('services.yeb.api_key'),
        'action'  => 'search',
        'keyword' => 'preslava',
    ]);

    return $response->json();
});
use Illuminate\Support\Facades\Http;

$r = Http::post('https://api.yeb.to/v1/music/popnable', [
    'api_key' => 'YOUR_KEY',
    'action'  => 'get-songs',
    'ids'     => '123',
    'stats'   => 'yes',
    'charts'  => 'daily,weekly',
]);

print_r($r->json());
fetch('https://api.yeb.to/v1/music/popnable', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({
    api_key   : 'YOUR_KEY',
    action    : 'get-videos',
    yt_codes  : 'AbCdE123',
    charts    : 'daily,weekly',
    dailyStats: 'yes',
    day       : '2025-01-05'
  })
})
  .then(r => r.json())
  .then(console.log);
import requests, json

payload = {
    "api_key": "YOUR_KEY",
    "action" : "get-songs-by-trend",
    "trend"  : "35",
    "day"    : "2025-01-05",
    "stats"  : "yes",
    "charts" : "daily,weekly"
}

r = requests.post('https://api.yeb.to/v1/music/popnable',
                  headers={'Content-Type': 'application/json'},
                  data=json.dumps(payload))

print(r.json())

Response example

{
  "data": [
    {
      "id": 123,
      "song_name": "Some Song",
      "day_released": "2025-01-05 12:34:56",
      "trend": "Bulgaria",
      "trend_flag": "https://popnable.com/images/flags/circle/bg.svg",
      "trend_id": 35,
      "singers": [
        { "singer_id": 777, "artist_name": "Preslava" }
      ],
      "videos": [
        { "yt_code": "AbCdE123" }
      ]
    }
  ],
  "meta": {
    "provider": "popnable",
    "upstream_response_code": 200,
    "upstream_error_number": null,
    "endpoint": "search"
  }
}
{
  "error": "Popnable: Access Denied.",
  "code": 403
}

Mã phản hồi

Mô tả
200 SuccessYêu cầu xử lý thành công.
400 Bad RequestXác thực đầu vào thất bại.
401 UnauthorizedAPI Key thiếu hoặc sai.
403 ForbiddenKey không hoạt động hoặc không được phép.
429 Rate LimitQuá nhiều yêu cầu.
500 Server ErrorLỗi không mong đợi.

music-popnable

music-popnable 0.0100 credits

Parameters

API Key
body · string · required
Action
body · string · required
Keyword
body · string
Trend IDs
body · string
Song IDs
body · string
Include Stats
body · string
Charts
body · string
Trend ID
body · string
Day
body · string
Artist IDs
body · string
Include Songs
body · string
YouTube Codes
body · string
Daily Stats
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Music API by Popnable — Practical Guide

A hands-on guide to Music API by Popnable. Learn what each action does, the real-world problems it solves, which parameters actually matter, and how to read normalized responses for songs, artists, charts, trends and YouTube videos.

#What this API solves

One POST endpoint that proxies Popnable API and returns normalized JSON for search, trends, songs, artists, charts and YouTube videos. Use it when you need consistent data structures across multiple upstream calls, stable field names, predictable errors, and idempotent behavior suitable for caching.

#Endpoint & call model

#POST https://api.yeb.to/v1/music-popnable

  • Best for: Unified access to Popnable data with opinionated normalization.
  • How it works: You send an action plus its parameters; we call the corresponding Popnable v2 method and normalize the response.
  • Idempotent: Same input → same output; safe for caching and retries.
  • Billing: Each request costs a fixed amount of credits (see chip above), regardless of the action.

#Quick start

# 1) Search (songs/artists) by keyword
curl -X POST "https://api.yeb.to/v1/music-popnable" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "YOUR_KEY", "action": "search", "keyword": "preslava" }'
# 2) Songs by trend (country/region) for a specific day
curl -X POST "https://api.yeb.to/v1/music-popnable" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "YOUR_KEY", "action": "get-songs-by-trend",
        "trend": "35", "day": "2025-01-05", "stats": "yes", "charts": "daily,weekly" }'
# 3) YouTube videos (normalized + optional charts/daily breakdown)
curl -X POST "https://api.yeb.to/v1/music-popnable" \
  -H "Content-Type: application/json" \
  -d '{ "api_key": "YOUR_KEY", "action": "get-videos",
        "yt_codes": "AbCdE123,ZXCV987", "charts": "daily,weekly",
        "dailyStats": "yes", "day": "2025-01-05" }'

#Common parameters (used by all actions)

ParamRequiredWhat to pass (practical)Why it matters
api_key Yes Send server-side or via edge; avoid exposing in browser code. Auth & rate limiting.
action Yes One of: search, get-trends, get-songs, get-songs-by-trend, get-artists, get-artist-by-trend, get-daily-chart, get-weekly-chart, get-monthly-chart, get-artist-chart, get-videos. Selects the upstream Popnable v2 method.

#Actions explained (what each one solves)

Solves: quick lookup when you have a name fragment and need likely candidates (songs/artists).

ParamTypeReqNotes (practical)
keywordstringYesShort text (~20 chars). Use user input as-is (trimmed).
{
  "api_key": "YOUR_KEY",
  "action" : "search",
  "keyword": "preslava"
}
{
  "data": [
    { "id": 123, "song_name": "Some Song", "trend_id": 35, "singers": [ { "singer_id": 777, "artist_name": "Preslava" } ] }
  ],
  "meta": { "provider": "popnable", "upstream_response_code": 200, "endpoint": "search" }
}

Solves: obtain available trend IDs (countries/regions) to drive UI pickers or scheduled fetches.

ParamTypeReqNotes
idsstringNoComma-separated list of trend IDs to filter; omit to fetch all (subject to provider rules).

#action=get-songs

Solves: fetch details for known song IDs (e.g., to refresh a small cached set, or hydrate UI cards).

ParamTypeReqNotes
idsstringYesComma-separated song IDs.
statsstringNoyes/no include Popnable stats.
chartsstringNoComma list, e.g. daily,weekly.

#action=get-songs-by-trend

Solves: build daily feeds per country/region for discovery, newsletters, or archives.

ParamTypeReqNotes
trendstringYesTrend ID (country/region).
daystringYesDate YYYY-MM-DD.
statsstringNoyes/no.
chartsstringNoe.g. daily,weekly,monthly.

#action=get-artists

Solves: hydrate artist cards and detail pages from known IDs.

ParamTypeReqNotes
idsstringYesComma-separated artist IDs.
statsstringNoyes/no include artist stats.
chartsstringNoChart type (usually artists).
songsstringNoyes/no include songs for each artist.

#action=get-artist-by-trend

Solves: discover artists by country/region for a given day; useful for editorial picks.

ParamTypeReqNotes
trendstringYesTrend ID.
daystringYesDate YYYY-MM-DD.
statsstringNoyes/no.
chartsstringNoUsually artists.
songsstringNoyes/no include songs.

#Charts — daily/weekly/monthly/artist

Solves: pull historical chart snapshots for analytics, leaderboards, or recap posts.

ActionParamsNotes
get-daily-chart trend (string, req), day (YYYY-MM-DD, req) Country/region daily chart.
get-weekly-chart trend (string, req), day (YYYY-MM-DD, req) Weekly chart snapshot.
get-monthly-chart trend (string, req), day (YYYY-MM-DD, req) Monthly chart snapshot.
get-artist-chart trend (string, req), day (YYYY-MM-DD, req) Artists chart for the given trend/day.

#action=get-videos

Solves: normalize YouTube video data and optionally enrich with chart context and daily breakdowns.

ParamTypeReqNotes
yt_codesstringYesComma-separated video codes (AbCdE123).
chartsstringNoe.g. daily,weekly.
dailyStatsstringNoyes/no include daily breakdown.
daystringNoReference day YYYY-MM-DD.

#Reading & acting on responses

{
  "data": [
    {
      "id": 123,
      "song_name": "Some Song",
      "day_released": "2025-01-05 12:34:56",
      "trend": "Bulgaria",
      "trend_flag": "https://popnable.com/images/flags/circle/bg.svg",
      "trend_id": 35,
      "singers": [ { "singer_id": 777, "artist_name": "Preslava" } ],
      "videos":   [ { "yt_code": "AbCdE123" } ]
    }
  ],
  "meta": {
    "provider": "popnable",
    "upstream_response_code": 200,
    "upstream_error_number": null,
    "endpoint": "search"
  }
}
  • data — normalized records. Use directly in UI and storage.
  • meta.providerpopnable for transparency/debug.
  • meta.upstream_response_code — HTTP-equivalent status from upstream.
  • meta.endpoint — which upstream path we called (e.g., songs/by-trend).

#Typical errors & how to fix

{ "error": "Missing \"action\" parameter", "code": 422 }
{ "error": "Missing or empty \"ids\"", "code": 422 }
{ "error": "Popnable: Access Denied.", "code": 403 }
  • 422 missing/invalid: Ensure required params for the chosen action are present and non-empty.
  • 401 invalid key: Rotate your YEB key; call only from server/edge.
  • 502 availability: Upstream temporarily unavailable; retry with backoff.
  • 403 upstream denial: Access rules on provider side; validate your upstream configuration and inputs.

#Troubleshooting & field notes

  1. Dates: All day params are YYYY-MM-DD. Keep a single timezone (prefer UTC) in your app.
  2. Batching: For bulk imports, cap at ≤100 rps and reuse connections. Cache idempotent requests by full payload hash.
  3. Partial enrichment: Use stats/charts/dailyStats only when needed to keep latency and cost predictable.
  4. Stability: Field names are normalized; upstream changes are absorbed where possible and reflected in the Changelog below.

#API Changelog (latest changes)

2025-11-25
Improved error passthrough for upstream logical errors (meta.upstream_response_code now always set). Hardened input validation messages for all actions.
2025-11-10
Added optional dailyStats to get-videos. Unified day format across actions (YYYY-MM-DD).
2025-10-20
Normalized lists for singers and videos in song payloads. Deduplicated repeated fields.
2025-10-01
Public v1 release: search, get-trends, get-songs, get-songs-by-trend, get-artists, get-artist-by-trend, get-daily-chart, get-weekly-chart, get-monthly-chart, get-artist-chart, get-videos.

Câu hỏi thường gặp

Ban co the truy van bai hat, nghe si, xu huong quoc gia/khu vuc, bang xep hang hang ngay/hang tuan/hang thang va thong ke video YouTube qua mot endpoint thong nhat duy nhat.

API su dung Popnable v2 - cung bo du lieu cung cap nang luong cho bang xep hang am nhac cong khai va thong ke cua Popnable.

Bang xep hang theo chu ky lam moi cua Popnable. Bang xep hang hang ngay duoc lam moi khoang moi 24 gio.

Có. Mọi yêu cầu, kể cả những yêu cầu có lỗi, đều tiêu tốn tín dụng. Tín dụng của bạn được gắn với số lượng yêu cầu, bất kể thành công hay thất bại. Nếu lỗi rõ ràng do sự cố nền tảng từ phía chúng tôi, chúng tôi sẽ khôi phục tín dụng bị ảnh hưởng (không hoàn tiền mặt).

Liên hệ chúng tôi tại [email protected]. Chúng tôi coi trọng phản hồi—nếu báo cáo lỗi hoặc yêu cầu tính năng của bạn có ý nghĩa, chúng tôi có thể sửa hoặc cải thiện API nhanh chóng và tặng bạn 50 tín dụng miễn phí để cảm ơn.

Tùy thuộc vào API và đôi khi cả endpoint. Một số endpoint sử dụng dữ liệu từ nguồn bên ngoài, có thể có giới hạn nghiêm ngặt hơn. Chúng tôi cũng áp dụng giới hạn để ngăn chặn lạm dụng và duy trì sự ổn định của nền tảng. Kiểm tra tài liệu để biết giới hạn cụ thể cho mỗi endpoint.

Chúng tôi hoạt động theo hệ thống tín dụng. Tín dụng là các đơn vị trả trước, không hoàn lại mà bạn chi cho các cuộc gọi API và công cụ. Tín dụng được tiêu thụ theo FIFO (cũ nhất trước) và có hiệu lực 12 tháng kể từ ngày mua. Bảng điều khiển hiển thị ngày mua và ngày hết hạn của mỗi giao dịch.

Có. Tất cả tín dụng đã mua (bao gồm số dư lẻ) có hiệu lực 12 tháng kể từ ngày mua. Tín dụng chưa sử dụng tự động hết hạn và bị xóa vĩnh viễn khi kết thúc thời hạn hiệu lực. Tín dụng đã hết hạn không thể khôi phục hoặc chuyển đổi thành tiền mặt hay giá trị khác. Quy tắc chuyển tiếp: tín dụng mua trước ngày 22 tháng 9 năm 2025 được coi là mua vào ngày 22 tháng 9 năm 2025 và hết hạn vào ngày 22 tháng 9 năm 2026 (trừ khi ngày hết hạn sớm hơn được ghi khi mua).

Có—trong thời hạn hiệu lực. Tín dụng chưa sử dụng vẫn khả dụng và được chuyển từ tháng sang tháng cho đến khi hết hạn 12 tháng sau khi mua.

Tín dụng là không hoàn lại. Chỉ mua những gì bạn cần—bạn luôn có thể nạp thêm sau. Nếu lỗi nền tảng gây ra tính phí thất bại, chúng tôi có thể khôi phục tín dụng bị ảnh hưởng sau khi điều tra. Không hoàn tiền mặt.

Giá được tính bằng tín dụng, không phải đô la. Mỗi endpoint có chi phí riêng—xem huy hiệu "Tín dụng / yêu cầu" ở trên. Bạn luôn biết chính xác mình đang chi bao nhiêu.
← Quay lại API