"""Test Bol.com Catalog API - get auth token and search sneakers""" import requests import json CLIENT_ID = "7609ba1c-063c-4be6-88df-19a6eeb834a9" CLIENT_SECRET = "1dp!RDvdwk208Wg?dT2aj1CL8i4eIqU+93QoTVaFpWjWXnMX53nEVifbKRUvCc@U" # Step 1: Get access token print("=== Getting access token ===") token_url = "https://login.bol.com/token?grant_type=client_credentials" r = requests.post(token_url, auth=(CLIENT_ID, CLIENT_SECRET), headers={"Accept": "application/json"}) print(f"Status: {r.status_code}") if r.status_code != 200: print(f"Error: {r.text}") exit(1) token_data = r.json() access_token = token_data.get("access_token") print(f"Token type: {token_data.get('token_type')}") print(f"Expires in: {token_data.get('expires_in')}s") print(f"Token: {access_token[:20]}...") # Step 2: Search for sneakers print("\n=== Searching sneakers ===") headers = { "Authorization": f"Bearer {access_token}", "Accept": "application/json", } # Try catalog API endpoints endpoints = [ "https://api.bol.com/catalog/v5/search/?q=nike+sneakers&limit=5", "https://api.bol.com/catalog/v4/search/?q=nike+sneakers&limit=5", "https://api.bol.com/retailer/products?q=nike+sneakers&limit=5", ] for url in endpoints: print(f"\nTrying: {url}") r = requests.get(url, headers=headers) print(f" Status: {r.status_code}") if r.status_code == 200: data = r.json() print(f" Response keys: {list(data.keys())}") # Print first product products = data.get("products", data.get("items", [])) if products: p = products[0] print(f" First product: {json.dumps(p, indent=2, ensure_ascii=False)[:500]}") break else: print(f" Error: {r.text[:200]}")