Rep Titan Fitness Equipment Catalog Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
REP + Titan Fitness Equipment Catalog Scraper
Scrapes the complete product catalog from REP Fitness and Titan Fitness — the two dominant direct-to-consumer strength-equipment retailers on Shopify. Returns normalized product records with titles, variants, pricing, availability, and images from both sources in a single dataset.
What It Does
Both REP Fitness (repfitness.com) and Titan Fitness (titan.fitness) run on Shopify and expose a public /products.json API endpoint. This actor pages through both catalogs in full, normalizing each product into a consistent schema with a source_site field so you can filter by brand.
Use cases include:
- Price monitoring — track price changes across both brands over time
- Competitive analysis — compare product types, price points, and availability side-by-side
- Affiliate content — build or update product feeds for gym equipment review sites
- Inventory tracking — monitor in-stock/out-of-stock status for specific products or categories
Input
| Field | Type | Default | Description |
|---|---|---|---|
maxItems |
integer | 10 | Maximum number of records to return across both sources combined. Set to a large number (e.g. 10000) to pull the full catalog. |
Output Schema
Each record in the dataset represents one product:
| Field | Type | Description |
|---|---|---|
source_site |
string | Source brand: repfitness or titan |
product_id |
string | Shopify product ID |
title |
string | Product title |
handle |
string | URL-friendly product handle (slug) |
vendor |
string | Brand vendor name |
product_type |
string | Product category (e.g. Barbell, Rack, Plates, Bench, Conditioning) |
tags |
string | JSON array of product tags |
variants |
string | JSON array of variant objects — each with variant_id, sku, title, price, available, grams |
price_min |
number | Lowest variant price |
price_max |
number | Highest variant price |
available |
boolean | True if any variant is in stock |
images |
string | JSON array of product image URLs |
url |
string | Direct product page URL |
created_at |
string | ISO 8601 timestamp when the product was created |
updated_at |
string | ISO 8601 timestamp of the last update |
Example Output
{
"source_site": "repfitness",
"product_id": "7038894801054",
"title": "Ares Bar",
"handle": "ares-bar",
"vendor": "REP Fitness",
"product_type": "Barbells",
"tags": "[\"Barbell\",\"Featured\",\"Strength\"]",
"variants": "[{\"variant_id\":\"41234567890\",\"sku\":\"AB-20\",\"title\":\"20 KG\",\"price\":279.99,\"available\":true,\"grams\":20000}]",
"price_min": 249.99,
"price_max": 279.99,
"available": true,
"images": "[\"https://cdn.shopify.com/s/files/.../ares-bar-main.jpg\"]",
"url": "https://repfitness.com/products/ares-bar",
"created_at": "2023-06-15T08:00:00-06:00",
"updated_at": "2025-05-01T12:34:56-06:00"
}
Notes
- Paginates 250 products per request at ~0.4 seconds between requests — polite for Shopify rate limits.
- Full dual-catalog refresh (REP ~1,500 + Titan ~3,000 SKUs) runs in a few minutes.
- Rogue Fitness is intentionally excluded — their site has no public
products.jsonendpoint. - The
/products.jsonAPI endpoint is public and requires no authentication.