torapi
Version:
Unofficial API (backend) for RuTracker, Kinozal, RuTor and NoNameClub for receiving torrent files and detailed information about distribution by movie title, TV series or id, and also provides RSS news feed for all providers.
1,734 lines • 63.4 kB
JSON
{
"openapi": "3.0.0",
"info": {
"title": "TorAPI",
"version": "0.5.2",
"description": "Unofficial API (backend) for RuTracker, Kinozal, RuTor and NoNameClub",
"contact": {
"name": "© Lifailon (Alex Kup)",
"url": "https://github.com/Lifailon/TorAPI"
},
"license": {
"name": "License MIT",
"url": "https://github.com/Lifailon/TorAPI/blob/main/LICENSE"
}
},
"servers": [
{
"url": "https://torapi.vercel.app",
"description": "Production server (main)"
},
{
"url": "https://toruapi.vercel.app",
"description": "Production server (mirror)"
},
{
"url": "https://rutorapi.vercel.app",
"description": "Production server (mirror)"
}
],
"paths": {
"/api/provider/list": {
"get": {
"tags": [
"Providers"
],
"description": "Get a list of providers",
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Provider": {
"type": "string"
},
"Urls": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Endpoint not found"
}
}
}
},
"/api/provider/check": {
"get": {
"tags": [
"Providers"
],
"description": "Quickly check availability for all providers by searching by name",
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"RuTracker": {
"type": "boolean"
},
"Kinozal": {
"type": "boolean"
},
"RuTor": {
"type": "boolean"
},
"NoNameClub": {
"type": "boolean"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Endpoint not found"
}
}
}
},
"/api/provider/test": {
"get": {
"tags": [
"Providers"
],
"description": "Testing all endpoints",
"parameters": [
{
"name": "query",
"in": "query",
"required": true,
"description": "Query parameter",
"schema": {
"type": "string",
"example": "The Rookie"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"RSS": {
"type": "object",
"properties": {
"RuTracker": {
"type": "boolean"
},
"Kinozal": {
"type": "boolean"
},
"RuTor": {
"type": "boolean"
},
"NoNameClub": {
"type": "boolean"
}
}
},
"Title": {
"type": "object",
"properties": {
"Status": {
"type": "object",
"properties": {
"RuTracker": {
"type": "boolean"
},
"Kinozal": {
"type": "boolean"
},
"RuTor": {
"type": "boolean"
},
"NoNameClub": {
"type": "boolean"
}
}
},
"Id": {
"type": "object",
"properties": {
"RuTracker": {
"type": "integer"
},
"Kinozal": {
"type": "integer"
},
"RuTor": {
"type": "integer"
},
"NoNameClub": {
"type": "integer"
}
}
},
"RunTime": {
"type": "object",
"properties": {
"RuTracker": {
"type": "number"
},
"Kinozal": {
"type": "number"
},
"RuTor": {
"type": "number"
},
"NoNameClub": {
"type": "number"
}
}
}
}
},
"Id": {
"type": "object",
"properties": {
"Status": {
"type": "object",
"properties": {
"RuTracker": {
"type": "boolean"
},
"Kinozal": {
"type": "boolean"
},
"RuTor": {
"type": "boolean"
},
"NoNameClub": {
"type": "boolean"
}
}
},
"Files": {
"type": "object",
"properties": {
"RuTracker": {
"type": "boolean"
},
"Kinozal": {
"type": "boolean"
},
"RuTor": {
"type": "boolean"
},
"NoNameClub": {
"type": "boolean"
}
}
},
"RunTime": {
"type": "object",
"properties": {
"RuTracker": {
"type": "number"
},
"Kinozal": {
"type": "number"
},
"RuTor": {
"type": "number"
},
"NoNameClub": {
"type": "number"
}
}
}
}
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Endpoint not found"
}
}
}
},
"/api/get/category/rutracker": {
"get": {
"tags": [
"Category"
],
"description": "Get a static list of categories for content filtering for the RuTracker provider",
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"num": {
"type": "string"
}
}
}
}
}
}
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/get/category/kinozal": {
"get": {
"tags": [
"Category"
],
"description": "Get a static list of categories for content filtering for the Kinozal provider",
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"num": {
"type": "string"
}
}
}
}
}
}
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/get/category/rutor": {
"get": {
"tags": [
"Category"
],
"description": "Get a static list of categories for content filtering for the RuTor provider",
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"num": {
"type": "string"
}
}
}
}
}
}
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/get/category/nonameclub": {
"get": {
"tags": [
"Category"
],
"description": "Get a static list of categories for content filtering for the NoNameClub provider",
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"num": {
"type": "string"
}
}
}
}
}
}
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/get/rss/rutracker": {
"get": {
"tags": [
"RSS"
],
"description": "Get native RSS news feed from RuTracker provider in XML or JSON format. To get the answer in the required format, use the parameter in the answer block.",
"parameters": [
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"example": 0,
"default": 0
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/xml": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rss": {
"type": "string"
}
}
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"link": {
"type": "string"
},
"updated": {
"type": "string"
},
"title": {
"type": "string"
},
"author": {
"type": "string"
},
"category": {
"type": "string"
},
"categoryLable": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/get/rss/kinozal": {
"get": {
"tags": [
"RSS"
],
"description": "Get native RSS news feed from Kinozal provider in XML or JSON format. To get the answer in the required format, use the parameter in the answer block.",
"parameters": [
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
20,
21,
22,
23,
24,
32,
35,
37,
38,
39,
40,
41,
42,
45,
46,
47,
48,
49,
50,
1001,
1002,
1003,
1004,
1006
],
"default": 0,
"minimum": 0
}
},
{
"name": "year",
"in": "query",
"required": false,
"description": "Release year for filtering",
"schema": {
"type": "integer",
"default": 0,
"minimum": 0
}
},
{
"name": "format",
"in": "query",
"required": false,
"description": "Quality resolution format for filtering",
"schema": {
"type": "integer",
"enum": [
0,
720,
1080,
2160
],
"default": 0,
"minimum": 0
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/xml": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rss": {
"type": "string"
}
}
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"title": {
"type": "string"
},
"category": {
"type": "string"
},
"link": {
"type": "string"
},
"downloadLink": {
"type": "string"
},
"size": {
"type": "string"
},
"comments": {
"type": "string"
},
"seeds": {
"type": "string"
},
"peers": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/get/rss/rutor": {
"get": {
"tags": [
"RSS"
],
"description": "Get custom RSS news feed from RuTor provider in XML or JSON format. To get the answer in the required format, use the parameter in the answer block.",
"parameters": [
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17
],
"default": 0,
"minimum": 0
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/xml": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rss": {
"type": "string"
}
}
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"title": {
"type": "string"
},
"link": {
"type": "string"
},
"downloadLink": {
"type": "string"
},
"magnet": {
"type": "string"
},
"size": {
"type": "string"
},
"comments": {
"type": "integer"
},
"seeds": {
"type": "integer"
},
"peers": {
"type": "integer"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/get/rss/nonameclub": {
"get": {
"tags": [
"RSS"
],
"description": "Get native RSS news feed from NoNameClub provider in XML or JSON format. To get the answer in the required format, use the parameter in the answer block.",
"parameters": [
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"example": 0,
"default": 0
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/xml": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rss": {
"type": "string"
}
}
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"turbo": {
"type": "string"
},
"title": {
"type": "string"
},
"link": {
"type": "string"
},
"pubDate": {
"type": "string"
},
"description": {
"type": "string"
},
"content": {
"type": "string"
},
"creator": {
"type": "string"
},
"commentRss": {
"type": "string"
},
"comments": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/search/title/rutracker": {
"get": {
"tags": [
"Search by Title"
],
"description": "Search for a movie or TV series in torrent tracker RuTracker",
"parameters": [
{
"name": "query",
"in": "query",
"required": false,
"description": "Query parameter",
"schema": {
"type": "string",
"example": "The Rookie"
}
},
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"example": 0,
"default": 0
}
},
{
"name": "page",
"in": "query",
"required": false,
"description": "Page number (10 max) or all",
"schema": {
"type": "string",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"all"
],
"default": "0"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Id": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Size": {
"type": "string"
},
"Download_Count": {
"type": "string"
},
"Checked": {
"type": "string"
},
"Category": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/search/title/kinozal": {
"get": {
"tags": [
"Search by Title"
],
"description": "Search for a movie or TV series in torrent tracker Kinozal",
"parameters": [
{
"name": "query",
"in": "query",
"required": false,
"description": "Query parameter",
"schema": {
"type": "string",
"example": "The Rookie"
}
},
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
20,
21,
22,
23,
24,
32,
35,
37,
38,
39,
40,
41,
42,
45,
46,
47,
48,
49,
50,
1001,
1002,
1003,
1004,
1006
],
"default": 0,
"minimum": 0
}
},
{
"name": "page",
"in": "query",
"required": false,
"description": "Page number (100 max) or all",
"schema": {
"type": "string",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"all"
],
"default": "0"
}
},
{
"name": "year",
"in": "query",
"required": false,
"description": "Release year for filtering",
"schema": {
"type": "integer",
"default": 0,
"minimum": 0
}
},
{
"name": "format",
"in": "query",
"required": false,
"description": "Quality resolution format for filtering",
"schema": {
"type": "integer",
"enum": [
0,
720,
1080,
2160
],
"default": 0,
"minimum": 0
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Title": {
"type": "string"
},
"Id": {
"type": "string"
},
"Original_Name": {
"type": "string"
},
"Year": {
"type": "string"
},
"Language": {
"type": "string"
},
"Format": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Size": {
"type": "string"
},
"Comments": {
"type": "string"
},
"Category": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Time": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/search/title/rutor": {
"get": {
"tags": [
"Search by Title"
],
"description": "Search for a movie or TV series in torrent tracker RuTor",
"parameters": [
{
"name": "query",
"in": "query",
"required": false,
"description": "Query parameter",
"schema": {
"type": "string",
"example": "The Rookie"
}
},
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17
],
"default": 0,
"minimum": 0
}
},
{
"name": "page",
"in": "query",
"required": false,
"description": "Page number (20 max) or all",
"schema": {
"type": "string",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"all"
],
"default": "0"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Id": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Hash": {
"type": "string"
},
"Size": {
"type": "string"
},
"Comments": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/search/title/nonameclub": {
"get": {
"tags": [
"Search by Title"
],
"description": "Search for a movie or TV series in torrent tracker NoNameClub",
"parameters": [
{
"name": "query",
"in": "query",
"required": false,
"description": "Query parameter",
"schema": {
"type": "string",
"example": "The Rookie"
}
},
{
"name": "category",
"in": "query",
"required": false,
"description": "Parameter to filter by category",
"schema": {
"type": "integer",
"example": 0,
"default": 0
}
},
{
"name": "page",
"in": "query",
"required": false,
"description": "Page number (4 max) or all",
"schema": {
"type": "string",
"enum": [
"0",
"1",
"2",
"3",
"all"
],
"default": "0"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Id": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Size": {
"type": "string"
},
"Comments": {
"type": "string"
},
"Category": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Time": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/search/title/all": {
"get": {
"tags": [
"Search by Title"
],
"description": "Search for a movie or TV series in all torrent trackers",
"parameters": [
{
"name": "query",
"in": "query",
"required": false,
"description": "Query parameter",
"schema": {
"type": "string",
"example": "The Rookie"
}
},
{
"name": "page",
"in": "query",
"required": false,
"description": "Page number or all",
"schema": {
"type": "string",
"enum": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"all"
],
"default": "0"
}
},
{
"name": "year",
"in": "query",
"required": false,
"description": "Release year for filtering",
"schema": {
"type": "integer",
"default": 0,
"minimum": 0
}
},
{
"name": "format",
"in": "query",
"required": false,
"description": "Quality resolution format for filtering",
"schema": {
"type": "integer",
"enum": [
0,
720,
1080,
2160
],
"default": 0,
"minimum": 0
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"RuTracker": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Id": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Size": {
"type": "string"
},
"Download_Count": {
"type": "string"
},
"Checked": {
"type": "string"
},
"Category": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
},
"Kinozal": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Title": {
"type": "string"
},
"Id": {
"type": "string"
},
"Original_Name": {
"type": "string"
},
"Year": {
"type": "string"
},
"Language": {
"type": "string"
},
"Format": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Size": {
"type": "string"
},
"Comments": {
"type": "string"
},
"Category": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
},
"RuTor": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Id": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Hash": {
"type": "string"
},
"Size": {
"type": "string"
},
"Comments": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
},
"NoNameClub": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Id": {
"type": "string"
},
"Url": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"Size": {
"type": "string"
},
"Comments": {
"type": "string"
},
"Category": {
"type": "string"
},
"Seeds": {
"type": "string"
},
"Peers": {
"type": "string"
},
"Date": {
"type": "string"
}
}
}
}
}
}
}
}
},
"400": {
"description": "No data"
},
"404": {
"description": "Provider not found"
}
}
}
},
"/api/search/id/rutracker": {
"get": {
"tags": [
"Search by ID"
],
"description": "Search by id in the torrent tracker RuTracker",
"parameters": [
{
"name": "query",
"in": "query",
"required": true,
"description": "ID parameter",
"schema": {
"type": "integer",
"example": 6489937
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Url": {
"type": "string"
},
"Hash": {
"type": "string"
},
"Magnet": {
"type": "string"
},
"Torrent": {
"type": "string"
},
"IMDb_link": {
"type": "string"
},
"Kinopoisk_link": {
"type": "string"
},
"IMDb_id": {
"type": "string"
},
"Kinopoisk_id": {
"type": "string"
},
"Year": {
"type": "string"
},
"Release": {
"type": "string"
},
"Type": {
"type": "string"
},
"Duration": {
"type": "string"
},
"Audio": {
"type": "string"
},
"Directer": {
"type": "string"
},
"Actors": {
"type": "string"
},
"Description": {
"type": "string"
},
"Quality": {
"type": "string"
},