Ro APIro.co ↗
Access Ro weight loss medication data including product names, active ingredients, dose-level pricing tiers, product type, and current promotional offers via one endpoint.
What is the Ro API?
The Ro.co API exposes weight loss medication catalog data from ro.co through a single endpoint, returning up to 9 response fields per product. The get_products endpoint returns every listed weight loss medication with its name, active ingredient, product type (pill or injection), dose-level pricing tiers, and any active promotional offers — no parameters required.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/36020390-9ad3-4dae-a427-28a78917a7dd/get_products' \ -H 'X-API-Key: $PARSE_API_KEY'
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 ro-co-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.
"""Walkthrough: Ro Products API — list available weight loss medications and their dose pricing."""
from parse_apis.ro_co_api import Ro, ParseError
client = Ro()
# Fetch all available products and print name, type, and starting price.
try:
for product in client.products.list(limit=10):
print(f"{product.name} ({product.type}) — starting at ${product.starting_price:.0f}/mo")
# Show dose-level pricing for each product.
for dose in product.doses:
line = f" {dose.dose}: ${dose.price}"
if dose.savings:
line += f" (save {dose.savings})"
print(line)
except ParseError as e:
print(f"Failed to retrieve products: {e.code}")
print("exercised: products.list / Product fields / Dose fields")
Returns all weight loss medication products available on Ro with detailed pricing by dose, product type (pill or injection), active ingredient, and any current promotional offers. Each product includes dose-level pricing tiers. Makes one request to the Ro pricing page.
No input parameters required.
{
"type": "object",
"fields": {
"products": "array of product objects with id, name, subtitle, type, category, description, offer, starting_price, and doses"
},
"sample": {
"data": {
"products": [
{
"id": "wegovy-pill",
"name": "Wegovy® pill",
"type": "pill",
"doses": [
{
"dose": "1.5 mg",
"price": "$149",
"savings": null,
"original_price": null
},
{
"dose": "4 mg",
"price": "$149",
"savings": "Save $50",
"original_price": "$199"
},
{
"dose": "9 mg and 25 mg",
"price": "$299",
"savings": null,
"original_price": null
}
],
"offer": "Limited-time offer valid for 4 mg only. Sign up by Aug 31, 2026 to qualify.",
"category": "weight_loss",
"subtitle": "daily semaglutide tablet",
"description": "Treatment usually starts at 1.5 mg and increases each month. Your provider will help you decide if and when a higher dose feels right.",
"starting_price": 149
}
]
},
"status": "success"
}
}About the Ro API
What the API Returns
The get_products endpoint returns an array of product objects covering Ro's weight loss medication lineup. Each object includes id, name, subtitle, type (pill or injection), category, description, offer, starting_price, and a doses array. The doses array breaks down pricing by individual dose tier, so you can see exactly what each strength or quantity costs rather than relying on a single list price.
Key Fields
type distinguishes between oral medications and injectables, which matters when building comparison tools or filtering by administration route. offer captures any current promotional copy attached to a product — useful for tracking deal changes over time. starting_price gives the lowest entry-point price displayed for that product, while the nested doses array provides the full pricing ladder across available dose options.
Scope and Freshness
The endpoint makes a single request to Ro's pricing page, so the response reflects the current state of their product catalog and pricing as published. There are no query parameters — the call returns the full catalog in one response. This makes it straightforward to store snapshots for price-tracking or feed the data into a product comparison interface.
The Ro API is a managed, monitored endpoint for ro.co — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ro.co 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 ro.co 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track Ro weight loss medication pricing changes over time using
starting_priceanddosesfields - Build a GLP-1 and oral weight loss drug comparison table using
type,name, anddosespricing tiers - Monitor active promotional offers on Ro products by polling the
offerfield - Filter weight loss medications by administration route (pill vs. injection) using the
typefield - Aggregate telehealth weight loss pricing data across providers, using Ro as one data source
- Populate a healthcare cost transparency tool with dose-level medication prices from
doses
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does Ro have an official public developer API?+
What does the `doses` field contain, and how detailed is the pricing breakdown?+
doses array contains one object per available dose tier for a given product. This lets you see the full pricing ladder rather than just the starting_price floor — useful when the cost varies significantly across strengths or quantities.Does the API cover Ro products outside of weight loss, such as hair, ED, or skincare?+
Does the API include prescription eligibility, clinical details, or patient reviews for each product?+
How fresh is the pricing data returned by `get_products`?+
get_products retrieves current data from Ro's pricing page, so the response reflects what Ro is displaying at the time of the request. Ro can update prices or offers at any time, so point-in-time snapshots may differ from a later call.