
# Python

Start with the [REST guide](../rest.md) to create a Platform API token. This example uses Python's standard library and needs no generated client.

Save as `example.py`:

```python
import json
import os
from urllib.parse import quote, urlencode
from urllib.request import Request, urlopen

base_url = os.getenv("CR_RECONSTRUCT_REST_URL", "https://reconstruct.dev/api/v1/platform")
token = os.environ["CR_RECONSTRUCT_API_TOKEN"]


def get_json(path):
    request = Request(
        f"{base_url.rstrip('/')}{path}",
        headers={"Authorization": f"Bearer {token}"},
    )
    with urlopen(request, timeout=10) as response:
        return json.load(response)


page = get_json("/catalogs?" + urlencode({"pageSize": 10}))
for catalog in page.get("catalogs", []):
    detail = get_json("/catalogs/" + quote(catalog["catalogId"], safe=""))
    print(detail["catalogId"], detail.get("description", ""))

if page.get("nextPageToken"):
    print("Next page token:", page["nextPageToken"])
```

Run `python example.py`. Pass `nextPageToken` back as a `pageToken` query parameter to continue through the list.
