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