{"id":1056,"library":"wikipedia-api","title":"Wikipedia-API","description":"Wikipedia-API is a Python wrapper that provides an easy-to-use interface for interacting with Wikipedia's MediaWiki API. It supports extracting various types of information, including text, sections, links, categories, and translations from Wikipedia pages. The library offers both synchronous and asynchronous clients for flexible integration, and is actively maintained with frequent releases, currently at version 0.13.0.","status":"active","version":"0.13.0","language":"python","source_language":"en","source_url":"https://github.com/martin-majlis/Wikipedia-API","tags":["wikipedia","api wrapper","media wiki","data extraction","asynchronous"],"install":[{"cmd":"pip install wikipedia-api","lang":"bash","label":"Install stable version"}],"dependencies":[{"reason":"Used for making HTTP requests to the Wikipedia API.","package":"requests","optional":false},{"reason":"Used for command-line interface (CLI) functionality.","package":"click","optional":true}],"imports":[{"note":"For the synchronous client.","symbol":"Wikipedia","correct":"from wikipediaapi import Wikipedia"},{"note":"For the asynchronous client.","symbol":"AsyncWikipedia","correct":"from wikipediaapi import AsyncWikipedia"}],"quickstart":{"code":"import wikipediaapi\nimport os\n\n# It's crucial to provide a User-Agent that identifies your project.\n# Replace 'MyProjectName (contact@example.com)' with your actual project name and contact info.\n# See https://meta.wikimedia.org/wiki/User-Agent_policy\nwiki_wiki = wikipediaapi.Wikipedia(\n    user_agent=os.environ.get('WIKIPEDIA_USER_AGENT', 'MyPythonApp/1.0 (contact@example.com)'),\n    language='en'\n)\n\npage_py = wiki_wiki.page('Python (programming language)')\n\nif page_py.exists():\n    print(f\"Page title: {page_py.title}\")\n    print(f\"Summary: {page_py.summary[0:200]}...\")\n    print(f\"Full URL: {page_py.fullurl}\")\n    # Example of accessing sections\n    for s in page_py.sections:\n        print(f\"Section: {s.title}\")\n        break # Just print the first section title for brevity\nelse:\n    print(f\"Page 'Python (programming language)' does not exist.\")","lang":"python","description":"Demonstrates how to initialize the synchronous Wikipedia client, retrieve a page by title, check its existence, and access its summary, URL, and sections. A descriptive user_agent is mandatory."},"warnings":[{"fix":"Always pass a descriptive `user_agent` string as the first argument to the constructor, e.g., `wikipediaapi.Wikipedia(user_agent='MyProjectName (contact@example.com)', ...)`.","message":"The `user_agent` parameter became mandatory in the `Wikipedia` and `AsyncWikipedia` constructors starting from version 0.6.0. Failing to provide it will raise an error.","severity":"breaking","affected_versions":">=0.6.0"},{"fix":"Ensure `variant` is passed as a keyword argument (e.g., `wikipediaapi.Wikipedia(..., language='en', variant='zh-tw')`) or as the third positional argument if maintaining positional arguments.","message":"The position of the `variant` parameter in the `Wikipedia` and `AsyncWikipedia` constructors changed to the third argument in versions 0.7.x. If you were explicitly passing `variant` by position in older versions, this will break.","severity":"breaking","affected_versions":">=0.7.0"},{"fix":"Prepend `await` to calls for data-fetching attributes, e.g., `await page.summary` instead of `page.summary`.","message":"When using the `AsyncWikipedia` client, all data-fetching attributes (e.g., `summary`, `text`, `sections`, `links`, `fullurl`, `pageid`) are coroutines and must be `awaited`. Failing to do so will result in a coroutine object instead of the expected data.","severity":"gotcha","affected_versions":"All versions with `AsyncWikipedia`"},{"fix":"Use a descriptive `user_agent` like `'MyProjectName/1.0 (https://myproject.com; contact@example.com)'` or `'MyProjectName (contact@example.com)'`.","message":"Providing an inappropriate or missing `User-Agent` string can lead to your requests being blocked by Wikimedia servers. It's essential to follow Wikimedia's User-Agent policy, including providing a project name and contact information.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Implement rate limiting or introduce delays between requests, particularly for automated scraping or high-volume data retrieval. Consider using `time.sleep()` between calls if performing many requests.","message":"Excessive or rapid requests to the Wikipedia API, especially without proper delays, can lead to your IP being temporarily or permanently blocked by Wikimedia's servers due to rate limiting.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Upgrade your Python environment to 3.10 or newer. Alternatively, if you must use an older Python version (e.g., 3.9), downgrade `wikipediaapi` to a version prior to 0.8.0.","message":"`wikipediaapi` versions 0.8.0 and newer utilize Python 3.10+ type hint syntax (e.g., `X | Y` for union types). Running these versions on Python environments older than 3.10 will result in a `TypeError: unsupported operand type(s) for |: 'type' and 'type'` during import.","severity":"breaking","affected_versions":">=0.8.0 (when running on Python < 3.10)"}],"env_vars":null,"last_verified":"2026-05-12T23:15:59.540Z","next_check":"2026-06-30T00:00:00.000Z","problems":[{"fix":"import wikipediaapi","cause":"The Python module name to import is `wikipediaapi` (without hyphen or underscore), even though the installation package name is `wikipedia-api`.","error":"ModuleNotFoundError: No module named 'wikipedia_api'"},{"fix":"page_object.text","cause":"The `wikipedia-api` library uses the attribute `text` to access the main textual content of a Wikipedia page, not `content`.","error":"AttributeError: 'WikipediaPage' object has no attribute 'content'"},{"fix":"Use `page_object.sections`, `page_object.links`, `page_object.categories`, or `page_object.summary` to access specific information.","cause":"The `WikipediaPage` object in `wikipedia-api` does not have a direct `info` attribute; detailed information is accessed via other attributes like `sections`, `links`, or `categories`.","error":"AttributeError: 'WikipediaPage' object has no attribute 'info'"},{"fix":"Use dot notation, such as `page.sections` (or `page.links`, `page.categories`, etc.), to access properties of the `WikipediaPage` object.","cause":"You are attempting to access properties of a `WikipediaPage` object using dictionary-style bracket notation (e.g., `page['sections']`) instead of dot notation.","error":"TypeError: 'builtin_function_or_method' object is not subscriptable"}],"ecosystem":"pypi","meta_description":null,"install_score":90,"install_tag":"verified","quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.14.1","cli_name":"","cli_version":null,"install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","installed_version":"0.10.0","pypi_latest":"0.14.1","is_stale":true,"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.29,"mem_mb":8.9,"disk_size":"24.2M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.34,"mem_mb":8.8,"disk_size":"24.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.21,"mem_mb":8.9,"disk_size":"25M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.23,"mem_mb":8.8,"disk_size":"25M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.44,"mem_mb":10.1,"disk_size":"26.7M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.53,"mem_mb":10.1,"disk_size":"26.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.4,"mem_mb":10.1,"disk_size":"27M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.41,"mem_mb":10.1,"disk_size":"27M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.38,"mem_mb":9.7,"disk_size":"18.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.44,"mem_mb":9.7,"disk_size":"18.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.45,"mem_mb":9.7,"disk_size":"19M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.47,"mem_mb":9.7,"disk_size":"19M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.39,"mem_mb":10.1,"disk_size":"17.7M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.55,"mem_mb":10.1,"disk_size":"17.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.37,"mem_mb":10.1,"disk_size":"18M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.41,"mem_mb":10.1,"disk_size":"18M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"22.8M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"wikipedia-api","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":"23M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"wikipedia-api","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":null,"tag_description":null,"results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}