Discover/99 Bikes API
live

99 Bikes API99bikes.com.au

Access 99 Bikes product catalog, store locations, workshop services, and help centre data via API. Search by keyword, filter collections, get pricing and variants.

This API takes change requests — .
Endpoint health
verified 11h ago
get_collection_products
search_products
get_workshop_services
get_help_centre
get_stores
5/5 passing latest checkself-healing
Endpoints
5
Updated
1mo ago

What is the 99 Bikes API?

The 99 Bikes API provides 5 endpoints covering the full product catalog, Australian store locations, workshop service packages, and help centre content from 99bikes.com.au. The search_products endpoint returns paginated results with pricing, discount amounts, brand, variants, and collection membership. Use get_collection_products to browse by category handle with filter facets for brand and colour.

Try it
Page number for pagination.
Search query term (e.g. 'helmet', 'mountain bike', 'lights').
Sort order for results.
Number of results per page.
api.parse.bot/scraper/3284c9b0-8aa2-4a27-b893-0bf51d6314dd/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X POST 'https://api.parse.bot/scraper/3284c9b0-8aa2-4a27-b893-0bf51d6314dd/search_products' \
  -H 'X-API-Key: $PARSE_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "page": "1",
  "query": "helmet",
  "sort_by": "relevance",
  "page_size": "36"
}'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace 99bikes-com-au-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.ninety_nine_bikes_australia_api import NinetyNineBikes, Product, Store, Workshop, HelpCentre, ProductSort, CollectionSort

bikes = NinetyNineBikes()

# Search for helmets sorted by price
for product in bikes.products.search(query="helmet", sort_by=ProductSort.PRICE_ASC, limit=5):
    print(product.title, product.brand, product.discount_percent)
    for variant in product.variants:
        print(f"  {variant.title}: ${variant.price} (available: {variant.available})")

# Browse a collection sorted by popularity
for product in bikes.products.browse_collection(collection_handle="electric-bikes", sort_by=CollectionSort.POPULARITY, limit=3):
    print(product.title, product.url)

# List all store locations
for store in bikes.stores.list():
    print(store.name, store.city, store.state, store.phone)

# Fetch workshop services
workshop = bikes.workshops.fetch()
for pkg in workshop.service_packages:
    print(pkg.tier, pkg.included_services)
for svc in workshop.individual_services:
    print(svc.name, svc.full_price, svc.club_price)

# Fetch help centre
help_centre = bikes.helpcentres.fetch()
for cat in help_centre.categories:
    print(cat.category)
    for article in cat.articles:
        print(f"  {article.title}: {article.url}")
for faq in help_centre.faqs:
    print(faq.question, faq.answer)
All endpoints · 5 totalmissing one? ·

Full-text search across the 99 Bikes product catalog. Matches product titles and attributes against the query. Returns paginated results sorted by relevance, price, or popularity. Each product includes pricing variants with availability status.

Input
ParamTypeDescription
pageintegerPage number for pagination.
queryrequiredstringSearch query term (e.g. 'helmet', 'mountain bike', 'lights').
sort_bystringSort order for results.
page_sizeintegerNumber of results per page.
Response
{
  "type": "object",
  "fields": {
    "page": "integer - current page number",
    "query": "string - the search query used",
    "products": "array of product objects with id, title, brand, handle, url, image_url, type, discount_amount, discount_percent, collections, variants",
    "page_size": "integer - results per page",
    "total_results": "integer - total number of matching products"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "helmet",
      "products": [
        {
          "id": "6956627427400",
          "url": "https://99bikes.com.au/products/met-crossover-helmet-titanium-matt-with-light",
          "type": "Apparel : Helmets : Helmets - Sport : Helmets Sport",
          "brand": "Met",
          "title": "MET Crossover Helmet Titanium/Matt with LIGHT",
          "handle": "met-crossover-helmet-titanium-matt-with-light",
          "variants": [
            {
              "id": "gid://shopify/ProductVariant/40562525175880",
              "price": "70.00",
              "title": "Default Title",
              "available": true,
              "compare_at_price": "99.95"
            }
          ],
          "image_url": "https://cdn.shopify.com/s/files/1/0555/9477/8696/files/6956627427400-1-MET_20Crossover_20Helmet_20Titanium_20Matt_20with_20LIGHT.jpg?v=1752479705",
          "collections": [
            "Met",
            "All Products",
            "Bike Helmets"
          ],
          "discount_amount": 30,
          "discount_percent": 29
        }
      ],
      "page_size": 36,
      "total_results": 285
    },
    "status": "success"
  }
}

About the 99 Bikes API

Product Search and Collections

The search_products endpoint accepts a query string and returns an array of product objects including id, title, brand, handle, url, image_url, type, discount_amount, discount_percent, collections, and variant data. Results are paginated via page and page_size parameters, and sortable by relevance, price_asc, price_desc, or popularity. The get_collection_products endpoint works similarly but scopes results to a specific collection_handle such as helmets, mountain-bikes, or electric-bikes, and additionally returns an available_filters object containing arrays for categories, brands, and colours to support faceted browsing.

Store Locations and Workshop Services

The get_stores endpoint returns all 99 Bikes store locations across Australia, with each store record containing address_line_1, address_line_2, city, state, postal_code, latitude, longitude, phone, and a store page URL. total_stores is returned at the top level. The get_workshop_services endpoint exposes structured data for service packages — Tune-Up, Standard, Standard+, and Ultimate — listing the included services per tier, alongside individual repair services grouped by category, each with full_price, club_price, and an optional with_service_price for bundled pricing.

Help Centre

The get_help_centre endpoint returns the full help centre structure: a categories array covering topics such as Orders, Returns/Refunds/Warranties, Delivery & Collection, Payments, and Gift Cards, each with nested article links, plus a faqs array of question/answer pairs. This can be used to surface policy content, return conditions, or account-related guidance in a customer-facing context without scraping the site directly.

Reliability & maintenanceVerified

The 99 Bikes API is a managed, monitored endpoint for 99bikes.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 99bikes.com.au changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official 99bikes.com.au API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
11h ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a product comparison tool using search_products to retrieve pricing, discount percentages, and variants across bike categories.
  • Populate a store locator map using latitude, longitude, and address fields from get_stores.
  • Display workshop pricing tiers by reading service packages and club_price vs full_price from get_workshop_services.
  • Implement faceted filtering in a custom storefront using the available_filters brands and colours from get_collection_products.
  • Sync a returns or shipping policy FAQ into a support chatbot using get_help_centre categories and article links.
  • Track discount availability across product collections by monitoring discount_amount and discount_percent fields.
  • Aggregate electric bike and road bike inventory by querying specific collection handles through get_collection_products.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does 99 Bikes have an official public developer API?+
99 Bikes does not publish a public developer API or API documentation for third-party use. This Parse API provides structured access to their catalog, store, and service data.
What does `get_collection_products` return beyond a product list?+
In addition to the paginated product array, it returns an available_filters object containing categories, brands, and colours arrays reflecting the facets available for that collection. This lets you build filter UIs without hardcoding options.
Does the API return individual product detail pages, such as full descriptions or all variant images?+
Not currently. The search and collection endpoints return a product object with fields including title, brand, image_url, type, discount_amount, variants, and url, but do not include a dedicated single-product detail endpoint with extended descriptions or full image galleries. You can fork this API on Parse and revise it to add a product detail endpoint.
Are workshop service bookings or real-time availability exposed?+
Not currently. get_workshop_services returns service package tiers and pricing (including full_price, club_price, and with_service_price) but does not include booking slots or availability data. You can fork this API on Parse and revise it to add a booking availability endpoint if that surface is accessible.
How does pagination work for product endpoints?+
Both search_products and get_collection_products accept page and page_size integer inputs. Responses include total_results and the current page value so you can calculate total pages and iterate through result sets.
Page content last updated . Spec covers 5 endpoints from 99bikes.com.au.
Related APIs in EcommerceSee all →
fahrrad.de API
Search and browse e-bikes and bicycles from fahrrad.de to compare technical specifications, prices, and real-time availability across their store network. Find products by brand, view detailed product information, and locate inventory at specific store locations.
trekbikes.com API
Browse Trek's complete bike catalog by category, view detailed specifications and customer reviews, and search for specific models to find exactly what you're looking for. Locate nearby Trek shops and compare bikes to make an informed purchase decision.
giant-bicycles.com API
Shop Giant Bicycles with ease by browsing categories, searching specific models, viewing detailed specs and pricing, and checking real-time inventory across retail locations. Find nearby stores and discover clearance deals all in one place.
bike-discount.de API
Search and browse e-bikes from Bike-Discount.de to retrieve detailed specs, motor information, frame geometry, pricing, and stock availability. Access comprehensive product data across multiple brands and categories for research, comparison, and market analysis.
bunnings.com.au API
Search Bunnings Warehouse Australia's product catalogue, retrieve detailed product information, and look up store locations by state or territory.
cannondale.com API
Find detailed Cannondale bicycle and gear information including specs, geometry, and variants, then locate authorized dealers near you. Search across bikes, electric bikes, and accessories to compare products and check local availability in real-time.
jbhifi.com.au API
Search and browse JB Hi-Fi's product catalog across categories and brands, check real-time stock availability at different store locations, and discover new arrivals and clearance items. Get detailed product information including specs and find the nearest store to complete your purchase.
fortnine.ca API
Search FortNine.ca's motorcycle and powersports products, compare variants and prices, read customer reviews, and check compatibility with a vehicle make and model. Browse brands, explore categories, and access detailed product information all in one place.