Discover/99 Bikes API
live

99 Bikes API99bikes.com.au ↗

Access 99bikes.com.au product catalog, store locations, Click & Collect stock, workshop services, and help centre data via a structured REST API.

Endpoint health
verified 3d ago
get_store_hours
get_stores
get_workshop_services
get_help_centre
get_store_stock
5/5 passing latest checkself-healing
Endpoints
7
Updated
17d ago

What is the 99 Bikes API?

The 99 Bikes API covers 7 endpoints that expose the full product catalog, retail store locations across Australia, per-store Click & Collect availability, and workshop service pricing from 99bikes.com.au. Endpoints like search_products and get_store_stock return granular fields including variant-level pricing in cents, discount amounts, brand, collection membership, and real-time in-store availability — making it straightforward to build inventory tools, store finders, or price trackers.

This call costs2 credits / call— charged only on success
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 '{
  "query": "helmet",
  "page": "1",
  "sort_by": "relevance",
  "page_size": "36"
}'
All endpoints · 7 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 Catalog and Search

The search_products endpoint accepts a query string and optional sort_by, page, and page_size parameters, returning paginated results with total_results and per-product fields: id, title, brand, handle, url, image_url, type, discount_amount, discount_percent, collections, and a variants array. get_collection_products works similarly but scopes results to a collection identified by its URL collection_handle (e.g. mountain-bikes or road-bike-helmets), and additionally returns available_filters with categories, brands, and colours facet arrays useful for building filtered browse UIs.

Store Locations and Hours

get_stores returns every 99 Bikes retail location in a single call — no pagination — with each store's id, name, full address fields, latitude, longitude, phone, and a link to its store page. get_store_hours accepts a store_page_url (as returned in get_stores) and resolves structured trading hours as an opening_hours array of {day, opens, closes} objects in 24-hour HH:MM format, plus email, map_url, and a store description.

Click & Collect Stock

get_store_stock provides per-store availability for a single product, identified by either url or product_handle. Results are broken down by variants, each carrying variant_id, variant_title, price in integer cents, and a stores array with each location's name, location, and availability status. Optional variant and store substring filters narrow results without additional calls. failed_variants flags any variant whose availability could not be resolved, and variants_truncated indicates when more than 25 variants were matched and capped.

Workshop and Help Centre

get_workshop_services returns workshop service packages (e.g. Tune-Up, Standard, Standard+, Ultimate) with included_services lists, plus individual repair services with full_price, club_price, and an optional with_service_price. get_help_centre surfaces FAQ question/answer pairs and a categories array containing article links grouped under headings like Returns/Refunds, Payments, and Product Information.

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
3d 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 bike price tracker that monitors discount_amount and discount_percent across product variants from search_products.
  • Create a store finder app using get_stores coordinates and get_store_hours trading hours to show nearby open locations.
  • Display real-time Click & Collect availability by variant size and colour using get_store_stock filtered by store and variant substrings.
  • Populate a category browse page with get_collection_products facets (brands, colours) to support client-side filtering.
  • Compare workshop service pricing by extracting full_price and club_price fields from get_workshop_services individual services.
  • Sync a product feed for a cycling gear affiliate site using handle, url, image_url, and variant pricing from collection endpoints.
  • Surface help centre FAQs and policy article links inside a customer support chatbot using get_help_centre category and FAQ data.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. 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?+
No. 99bikes.com.au does not publish a public developer API or API documentation for third-party access.
What does `get_store_stock` actually return for each product variant?+
get_store_stock returns a variants array where each entry includes variant_id, variant_title, price (in integer cents), stores_total (unfiltered store count), and a stores array with per-location availability. You can narrow results with the variant and store substring filters. Variants that could not be resolved appear in failed_variants with an upstream_status field.
Does the API return customer reviews or product ratings for bike listings?+
Not currently. The API covers product titles, pricing variants, brand, discount fields, and Click & Collect stock, but does not expose review text or star ratings. You can fork it on Parse and revise to add a product reviews endpoint.
Is there a limit on how many variants `get_store_stock` processes per call?+
Yes. The endpoint processes a maximum of 25 matched variants per request. When more than 25 variants match the filter, variants_truncated is set to true and only the first 25 are returned. Use the variant filter parameter to narrow results and avoid truncation.
Does the API expose 99 Bikes loyalty club membership or pricing beyond workshop club rates?+
Not currently. The API surfaces club_price for individual workshop services via get_workshop_services, but does not cover loyalty programme enrollment, member account data, or club-specific product discounts. You can fork it on Parse and revise to add endpoints targeting those pages.
Page content last updated . Spec covers 7 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.
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.
bunnings.com.au API
Search Bunnings Warehouse Australia's product catalogue, retrieve detailed product information, and look up store locations by state or territory.
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.
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.
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.
bestbuy.com API
Search Best Buy's entire product catalog and get instant autocomplete suggestions while browsing, then pull up detailed pricing, availability, and stock information for any item. Easily sort through results, look up multiple products at once, and discover what's trending in real-time.
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.