{
  "openapi": "3.0.1",
  "info": {
    "title": "AniList Anime & Manga Scraper - Scores, Charts, Full Metadata",
    "description": "Scrape AniList anime and manga: titles (romaji/English/native), scores, popularity, favourites, genres, studios, airing schedule, synopses, charts (trending, popular, top-rated, most-favourited), keyword search and URL/ID lookup.",
    "version": "0.1",
    "x-build-id": "0RyMMMtwjnBt7o805"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~anilist-anime-manga-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-anilist-anime-manga-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/abotapi~anilist-anime-manga-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-anilist-anime-manga-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/abotapi~anilist-anime-manga-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-anilist-anime-manga-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "charts",
              "url"
            ],
            "type": "string",
            "description": "How to find media: keyword search, charts (trending/popular/top-rated), or paste AniList URLs or ids.",
            "default": "search"
          },
          "mediaType": {
            "title": "Media type",
            "enum": [
              "ANIME",
              "MANGA"
            ],
            "type": "string",
            "description": "Anime or manga. Applies to search, charts and URL modes.",
            "default": "ANIME"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search for (Search mode). Each term is searched separately; results are merged and de-duplicated.",
            "default": [
              "frieren"
            ],
            "items": {
              "type": "string"
            }
          },
          "chartKind": {
            "title": "Chart",
            "enum": [
              "TRENDING",
              "POPULAR",
              "TOP_RATED",
              "FAVOURITES"
            ],
            "type": "string",
            "description": "Which ranking to return (Charts mode).",
            "default": "TRENDING"
          },
          "urls": {
            "title": "AniList URLs or ids",
            "type": "array",
            "description": "AniList links or ids (URL mode). Accepts anilist.co/anime/<id> and anilist.co/manga/<id> links (a title slug, a sub-page such as /characters, or the www host resolve to the same record), bare numeric media ids, and anilist.co/search/anime|manga listing links: a keyword search with its filters, or a chart (trending, popular, top-100, this-season, next-season). Max records and Max pages apply to each pasted listing link; media links and ids are always all returned. A listing link with page=2 or later starts mid-list and never marks records as expired. Character, staff, studio and user pages are skipped.",
            "default": [
              "https://anilist.co/anime/154587",
              "https://anilist.co/manga/30013"
            ],
            "items": {
              "type": "string"
            }
          },
          "format": {
            "title": "Format",
            "type": "array",
            "description": "Keep only these formats (any of them matches). Leave empty for all. Applies to search and charts.",
            "items": {
              "type": "string",
              "enum": [
                "TV",
                "TV_SHORT",
                "MOVIE",
                "SPECIAL",
                "OVA",
                "ONA",
                "MUSIC",
                "MANGA",
                "NOVEL",
                "ONE_SHOT"
              ]
            }
          },
          "status": {
            "title": "Status",
            "type": "array",
            "description": "Keep only these release statuses (any of them matches). Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "FINISHED",
                "RELEASING",
                "NOT_YET_RELEASED",
                "CANCELLED",
                "HIATUS"
              ]
            }
          },
          "season": {
            "title": "Season (anime only)",
            "enum": [
              "",
              "WINTER",
              "SPRING",
              "SUMMER",
              "FALL"
            ],
            "type": "string",
            "description": "Keep only titles from this season. Leave empty for all."
          },
          "seasonYear": {
            "title": "Season year",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only titles from this year (for example 2024). 0 or empty = any."
          },
          "genres": {
            "title": "Genres",
            "type": "array",
            "description": "Keep only titles that have ALL of these genres.",
            "items": {
              "type": "string",
              "enum": [
                "Action",
                "Adventure",
                "Comedy",
                "Drama",
                "Ecchi",
                "Fantasy",
                "Horror",
                "Mahou Shoujo",
                "Mecha",
                "Music",
                "Mystery",
                "Psychological",
                "Romance",
                "Sci-Fi",
                "Slice of Life",
                "Sports",
                "Supernatural",
                "Thriller"
              ]
            }
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "",
              "POPULARITY_DESC",
              "SEARCH_MATCH",
              "SCORE_DESC",
              "TRENDING_DESC",
              "START_DATE_DESC",
              "FAVOURITES_DESC"
            ],
            "type": "string",
            "description": "Result order. Empty keeps the default: search uses the best keyword match, charts use the chart ranking above."
          },
          "adultContent": {
            "title": "Adult content",
            "enum": [
              "",
              "exclude",
              "include",
              "only"
            ],
            "type": "string",
            "description": "Exclude, include (adult and non-adult together) or return adult titles only. Empty follows the Include adult media toggle below."
          },
          "maxMedia": {
            "title": "Max records",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many media records (0 = no limit).",
            "default": 25
          },
          "maxPages": {
            "title": "Max pages per search or chart",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on pages walked per term or chart (50 records per page; 0 = no limit).",
            "default": 0
          },
          "includeAdult": {
            "title": "Include adult media",
            "type": "boolean",
            "description": "Off by default; adult media is excluded. When on, results are adult titles only. Use Adult content above to include both.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Connection used for every request. Works on every proxy plan."
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run",
            "type": "string",
            "description": "Paste a previous run ID or dataset ID to continue a large pull without returning items already collected there."
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Turn this on for daily or recurring monitoring. The first run returns every matching record as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED records. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). A record counts as changed when any of its output fields differ from the stored copy, except popularity, favourites, trending, rankings and tag rank (daily counters and chart positions, kept in the output but never a change) and any field you list under Ignore fields.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Optional. Name this monitoring campaign to keep its state stable, or deliberately share state across differently configured runs."
          },
          "emitUnchanged": {
            "title": "Emit unchanged records (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired records (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search.",
            "default": false
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Optional. Field names to exclude from UPDATED change detection, in addition to the built-in handling: popularity, favourites, trending, rankings and tags.rank are always ignored because those counters and chart positions move daily without the title changing (they stay in the output). Use this for any other noisy field, for example averageScore or coverImage. Dotted names reach into nested values. An ignored field never triggers UPDATED and is never listed in changedFields.",
            "items": {
              "type": "string"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output.",
            "items": {
              "type": "string"
            }
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}