"""
NewsAPI — Top Headlines Demo
=============================
A minimal, ready-to-run example of fetching top news headlines.

Get an API key (free developer tier):
    1. Register at https://newsapi.org/register
    2. Your API key is shown on the account page right after signup.

Setup:
    pip install requests
    export NEWSAPI_KEY="..."

Run:
    python newsapi_demo.py
"""

import os
import requests


def top_headlines(country: str = "us", count: int = 5) -> list:
    """Return a list of top headline titles."""
    response = requests.get(
        "https://newsapi.org/v2/top-headlines",
        params={"country": country, "pageSize": count, "apiKey": os.environ.get("NEWSAPI_KEY")},
    )
    response.raise_for_status()
    return [a["title"] for a in response.json()["articles"]]


if __name__ == "__main__":
    for i, title in enumerate(top_headlines(), 1):
        print(f"{i}. {title}")
