# GraphQL Auction Schema Explorer A Python script for exploring and testing GraphQL queries against the TBAuctions storefront API. This tool helps understand the auction schema by testing different query structures and viewing the responses. ## Features - Three pre-configured GraphQL queries with varying levels of detail - Asynchronous HTTP requests using aiohttp for efficient testing - Error handling and formatted JSON output - Configurable auction ID, locale, and platform parameters ## Prerequisites - Python 3.7 or higher - Required packages: `aiohttp` ## Installation 1. Clone or download this script 2. Install dependencies: ```bash pip install aiohttp ``` ## Usage Run the script directly: ```bash python auction_explorer.py ``` Or make it executable and run: ```bash chmod +x auction_explorer.py ./auction_explorer.py ``` ## Queries Included The script tests three different query structures: ### 1. `viewingDays_simple` Basic query that retrieves city and country code for viewing days. ### 2. `viewingDays_with_times` Extended query that includes date ranges (`from` and `to`) along with city information. ### 3. `full_auction` Comprehensive query that fetches: - Auction ID and display ID - Bidding status - Buyer's premium - Viewing days with location and timing - Collection days with location and timing ## Configuration Modify these variables in the script as needed: ```python GRAPHQL_ENDPOINT = "https://storefront.tbauctions.com/storefront/graphql" auction_id = "9d5d9d6b-94de-4147-b523-dfa512d85dfa" # Replace with your auction ID variables = { "auctionId": auction_id, "locale": "nl", # Change locale as needed "platform": "TWK" # Change platform as needed } ``` ## Output Format The script outputs: - Query name and separator - Success status with formatted JSON response - Or error messages if the query fails Example output: ``` ============================================================ QUERY: viewingDays_simple ============================================================ SUCCESS: { "data": { "auction": { "viewingDays": [ { "city": "Amsterdam", "countryCode": "NL" } ] } } } ``` ## Customization To add new queries, extend the `QUERIES` dictionary: ```python QUERIES = { "your_query_name": """ query YourQuery($auctionId: TbaUuid!, $locale: String!, $platform: Platform!) { auction(id: $auctionId, locale: $locale, platform: $platform) { # Your fields here } } """, # ... existing queries } ``` ## Notes - The script includes a 500ms delay between queries to avoid rate limiting - Timeout is set to 30 seconds per request - All queries use the same GraphQL endpoint and variables - Error responses are displayed in a readable format ## License This script is provided for educational and exploratory purposes.