Files
auctiora/docs/GraphQL.md
2025-12-08 09:35:13 +01:00

2.8 KiB

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:
pip install aiohttp

Usage

Run the script directly:

python auction_explorer.py

Or make it executable and run:

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:

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:

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.