Discover/On API
live

On APIon.com

Access On Running product data, shoe variants, category listings, prices, availability, and editorial articles via 6 structured endpoints.

This API takes change requests — .
Endpoint health
verified 6d ago
search_products
get_all_shoes
get_articles_list
get_article_detail
get_products_by_category
6/6 passing latest checkself-healing
Endpoints
6
Updated
28d ago

What is the On API?

The On Running API exposes 6 endpoints covering the full on.com product catalog and editorial content. Use search_products to query shoes and apparel by keyword and get back names, prices, SKUs, color variants, and image URLs. Other endpoints retrieve products by category, pull per-product variant availability, enumerate all shoe variants across genders, and surface articles from On's editorial hub.

Try it
Page number (0-indexed)
Results per page
Search keyword (e.g. 'cloud', 'runner')
api.parse.bot/scraper/aaac0b11-8b08-45ba-b71d-1a014af71824/<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 GET 'https://api.parse.bot/scraper/aaac0b11-8b08-45ba-b71d-1a014af71824/search_products?page=0&limit=5&query=cloud' \
  -H 'X-API-Key: $PARSE_API_KEY'
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 on-com-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.on_running_api import OnRunning, Product, CategoryProduct, ProductDetail, Variant, Shoe, Article, ArticleDetail, Gender, ProductType

client = OnRunning()

# Search for Cloud shoes and drill into details
for product in client.products.search(query="cloud", limit=3):
    print(product.name, product.price, product.sku, product.color)
    detail = product.details()
    print(detail.name, detail.brand, detail.currency)
    for variant in detail.variants:
        print(variant.sku, variant.color, variant.price, variant.availability)

# Browse women's apparel by category
for item in client.categoryproducts.list(gender=Gender.WOMENS, product_type=ProductType.SHOES, limit=5):
    print(item.name, item.price, item.color, item.tags)

# List all shoes
for shoe in client.shoes.list_all(limit=10):
    print(shoe.name, shoe.gender, shoe.price, shoe.color)

# Browse articles and get details
for article in client.articles.list(limit=3):
    print(article.title, article.url)
    article_info = article.details()
    print(article_info.title, article_info.summary)
All endpoints · 6 totalmissing one? ·

Full-text search across On Running's US product catalog. query matches product names and descriptions. Returns one entry per color variant with price, SKU, and image. Paginates via zero-indexed page number; each page returns up to limit items. total_hits and nb_pages describe the full result set.

Input
ParamTypeDescription
pageintegerPage number (0-indexed)
limitintegerResults per page
queryrequiredstringSearch keyword (e.g. 'cloud', 'runner')
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page number",
    "nb_pages": "integer total number of pages",
    "products": "array of product objects with name, product_type, gender, price, compare_at_price, image_url, product_url, sku, color",
    "total_hits": "integer total number of matching products"
  },
  "sample": {
    "data": {
      "page": 0,
      "nb_pages": 50,
      "products": [
        {
          "sku": "3WF1006",
          "name": "Cloud 6",
          "color": "Salt | Gardenia",
          "price": 160,
          "gender": "womens",
          "image_url": "https://images.ctfassets.net/hnk2vsx53n6l/4ziTmq1yEtf3Sp1UXQVsb6/7825f615f81f623ecf85a1b174397622/8a56c403d65a75e3d5fbd91352a61a7e26c778b7.png",
          "product_url": "https://www.on.com/en-us/products/cloud-6-3wf1006/womens/salt-gardenia-shoes-3WF10064657",
          "product_type": "shoes",
          "compare_at_price": 160
        }
      ],
      "total_hits": 1354
    },
    "status": "success"
  }
}

About the On API

Product Search and Category Browsing

search_products accepts a required query string plus optional page (0-indexed) and limit parameters, returning an array of product objects with name, product_type, gender, price, compare_at_price, image_url, product_url, sku, and color, along with total_hits and nb_pages for pagination. get_products_by_category filters by gender (mens, womens, kids) and product_type (shoes, apparel, accessories); note that some combinations—such as kids plus accessories—return zero results. Both endpoints share a similar product object shape but get_products_by_category also returns tags.

Product Detail and Full Shoe Catalog

get_product_detail takes a full product URL and returns a single detailed object: name, brand, price, currency, description, a list of image_urls, and a variants array. Each variant includes sku, name, color, price, currency, availability, and url—making this endpoint the right choice when you need to know whether a specific colorway or size is in stock. get_all_shoes requires no inputs and returns every shoe variant across all genders in one response, with a top-level count and a shoes array containing name, gender, price, url, sku, color, and image.

Editorial Content

get_articles_list fetches the Off Stories editorial hub and returns an array of article objects, each with a title and url, plus a total count. get_article_detail accepts a single article URL and returns the title, summary (from the meta description), and a json_ld object containing schema.org BlogPosting structured data—headline, author, and publisher. Full article body text is not reliably available due to client-side rendering on the stories pages.

Reliability & maintenanceVerified

The On API is a managed, monitored endpoint for on.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when on.com 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 on.com 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
6d ago
Latest check
6/6 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 shoe price tracker that monitors price and compare_at_price changes across search results over time.
  • Aggregate availability per variant from get_product_detail to alert users when a specific colorway restocks.
  • Generate a gender-segmented product feed using get_products_by_category with mens, womens, and kids filters.
  • Populate a product comparison tool with variant SKUs, colors, and images from get_product_detail.
  • Index On Running editorial content by title and URL using get_articles_list for a brand content tracker.
  • Build a full shoe catalog snapshot using get_all_shoes to track new colorway launches across genders.
  • Extract json_ld structured data from articles via get_article_detail to feed a content metadata pipeline.
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 On Running have an official developer API?+
On (on.com) does not publish a public developer API or documentation for external data access. This Parse API provides structured access to product and editorial data from the site.
What does `get_product_detail` return that the listing endpoints don't?+
get_product_detail returns per-variant availability status, the full product description, all image_urls, and a currency code. The listing endpoints (search_products, get_products_by_category) return summary-level fields like price and image_url but omit availability and the variant-level breakdown.
Does `get_all_shoes` include apparel and accessories?+
No—get_all_shoes covers only the shoes product type across mens, womens, and kids. Apparel and accessories are available through get_products_by_category with the appropriate product_type filter. You can fork this API on Parse and revise it to add a similar bulk-fetch endpoint for apparel or accessories.
Is full article body text available from the editorial endpoints?+
get_article_detail returns a summary from the meta description and json_ld structured data (headline, author, publisher), but full article body text is not reliably extracted due to client-side rendering on story pages. You can fork this API on Parse and revise the article endpoint to add body extraction if the rendering constraints change.
Are product reviews or ratings included in any endpoint?+
Not currently. The API covers product names, prices, SKUs, colors, variant availability, and editorial content, but user reviews and ratings are not part of any response object. You can fork this API on Parse and revise it to add a reviews endpoint if that data becomes accessible.
Page content last updated . Spec covers 6 endpoints from on.com.
Related APIs in EcommerceSee all →
sneakers.com API
Search and browse sneaker products across categories and brands, view detailed product information, and discover current flash sales and trending searches from sneakers.com. Get instant access to sneaker listings, pricing, and real-time sale events to find exactly what you're looking for.
stories.com API
Search & Other Stories' catalog to find products by name or category, and retrieve detailed information including pricing, images, available sizes, colors, and materials for each item. Get comprehensive product details to compare styles, check inventory across variations, and make informed shopping decisions.
catalog.onliner.by API
Search and compare products from Onliner.by's catalog with access to real-time prices, detailed product information, customer reviews, and historical price trends. Browse categories, get autocomplete suggestions, and view all available offers for any product to make informed purchasing decisions.
nike.com API
Search the Nike product catalog by keyword and retrieve detailed product information including pricing, sizing, color variants, and availability. Use autocomplete suggestions to refine queries and discover relevant products on Nike.com.
nike.com.cn API
Search Nike China's catalog to find products, check availability, browse specific categories like men's, women's, and kids' shoes, and discover trending items and new arrivals. Get detailed product information including sizes, pricing, and specifications to help with shopping decisions and market research.
asos.com API
Search and browse ASOS's fashion catalog to discover products across women's and men's categories, view real-time pricing and stock information, and find trending or sale items. Get detailed product information, explore similar items, and discover new arrivals and brands all in one place.
stylishop.com API
Browse and search stylishop.com's complete fashion catalog, including products, categories, brands, reviews, and trending data to discover new arrivals and sale items. Get product details, size guides, autocomplete suggestions, and trending search insights to enhance your shopping experience.
sneakernews.com API
Browse the latest sneaker news, search articles by keyword, and look up upcoming release dates — including pricing, images, and retailer links. Also surfaces per-page ad slot inventory and density metrics for programmatic and publisher analysis.