Chuyển tới nội dung chính

Search API

Tìm kiếm anime và manga với các tùy chọn lọc nâng cao.

Endpoint​

GET /api/v1/search

Tham số​

Tất cả các tham số đều tùy chọn. Ít nhất một bộ lọc nên được cung cấp để có kết quả có ý nghĩa.

Tìm kiếm văn bản​

Tham sốKiểuMô tả
titlestringTìm kiếm theo tiêu đề (không phân biệt hoa thường, khớp một phần)

Bộ lọc ngày tháng​

Tham sốKiểuMô tảĐịnh dạng
seasonstringLọc theo mùaWINTER, SPRING, SUMMER, FALL
seasonYearintegerLọc theo năm1900-2100
startDateFromstringNgày bắt đầu từYYYY-MM-DD
startDateTostringNgày bắt đầu đếnYYYY-MM-DD
endDateFromstringNgày kết thúc từYYYY-MM-DD
endDateTostringNgày kết thúc đếnYYYY-MM-DD

Bộ lọc Media​

Tham sốKiểuMô tảGiá trị
statusstringTrạng thái mediaRELEASING, FINISHED, NOT_YET_RELEASED, CANCELLED, HIATUS
formatstringĐịnh dạng mediaTV, TV_SHORT, MOVIE, SPECIAL, OVA, ONA, MUSIC, MANGA, etc.
mediaTypestringLoại mediaANIME, MANGA
countryOfOriginstringMã quốc giaví dụ: JP, KR, CN

Bộ lọc danh mục​

Tham sốKiểuMô tả
genreIdsstringID thể loại phân cách bằng dấu phẩy (ví dụ: 1,2,3)
tagIdsstringID tag phân cách bằng dấu phẩy (ví dụ: 1,2,3)

Tùy chọn tìm kiếm​

Tham sốKiểuMô tảGiá trị
sortBystringTrường sắp xếpID, UPDATED_AT, START_DATE, SEASON_YEAR, POPULARITY
sortOrderstringThứ tự sắp xếpASC, DESC

Phân trang​

Tham sốKiểuMặc địnhMô tả
limitinteger20Số lượng kết quả mỗi trang (1-100)
offsetinteger0Số lượng kết quả cần bỏ qua

Ví dụ Request​

Tìm kiếm cơ bản​

GET /api/v1/search?title=attack&mediaType=ANIME&limit=10

Tìm kiếm nâng cao với bộ lọc​

GET /api/v1/search?title=shingeki&mediaType=ANIME&status=FINISHED&season=SPRING&seasonYear=2013&limit=20&offset=0

Tìm kiếm theo thể loại​

GET /api/v1/search?genreIds=1,2&mediaType=ANIME&sortBy=POPULARITY&sortOrder=DESC

Tìm kiếm theo khoảng ngày​

GET /api/v1/search?startDateFrom=2013-01-01&startDateTo=2013-12-31&mediaType=ANIME

Định dạng Response​

Response thành công (200 OK)​

{
"success": true,
"results": [
{
"id": 16498,
"mediaType": "ANIME",
"titles": {
"en": "Attack on Titan",
"ja": "進撃の巨人",
"vi": "Cuộc tấn công của Titan"
},
"images": {
"coverXl": "https://s4.anilist.co/file/anilistcdn/media/anime/cover/large/bx16498-C7FPm3m59CyP.jpg",
"coverLg": "https://s4.anilist.co/file/anilistcdn/media/anime/cover/medium/bx16498-C7FPm3m59CyP.jpg",
"coverMd": "https://s4.anilist.co/file/anilistcdn/media/anime/cover/small/bx16498-C7FPm3m59CyP.jpg",
"coverColor": "#E4E4E4",
"bannerUrl": "https://s4.anilist.co/file/anilistcdn/media/anime/banner/16498-8YHjVabJfCr2.jpg"
},
"status": "FINISHED",
"season": "SPRING",
"seasonYear": 2013,
"startDate": "2013-04-07",
"format": "TV"
}
],
"total": 1,
"limit": 10,
"offset": 0,
"hasNextPage": false
}

Response lỗi (400 Bad Request)​

{
"success": false,
"message": "Invalid season: SUMMER. Must be one of: WINTER, SPRING, SUMMER, FALL",
"code": "INVALID_PARAMETER"
}

Các trường Response​

MediaSearchResult​

TrườngKiểuMô tả
idintegerID media
mediaTypestringANIME hoặc MANGA
titlesobjectTiêu đề theo ngôn ngữ (ví dụ: en, ja, vi)
imagesobjectURL hình ảnh và metadata
statusstringTrạng thái media
seasonstringMùa phát hành (nếu có)
seasonYearintegerNăm phát hành
startDatestringNgày bắt đầu (YYYY-MM-DD)
formatstringĐịnh dạng media

Đối tượng Images​

TrườngKiểuMô tả
coverXlstringURL ảnh bìa cực lớn
coverLgstringURL ảnh bìa lớn
coverMdstringURL ảnh bìa vừa
coverColorstringMã màu hex chủ đạo
bannerUrlstringURL ảnh banner

Lưu ý​

  • Tìm kiếm được hỗ trợ bởi Meilisearch để có kết quả nhanh và chính xác
  • Tất cả tìm kiếm văn bản đều không phân biệt hoa thường
  • Nhiều bộ lọc có thể kết hợp để có kết quả chính xác
  • Kết quả được sắp xếp theo độ liên quan theo mặc định khi sử dụng tìm kiếm văn bản
  • Kết quả trống trả về mảng rỗng với total: 0