Discover/Ro API
live

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.

This API takes change requests — .
Endpoint health
verified 1h ago
get_products
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

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.

This call costs2 credits / call— charged only on success
Try it

No input parameters required.

api.parse.bot/scraper/36020390-9ad3-4dae-a427-28a78917a7dd/<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/36020390-9ad3-4dae-a427-28a78917a7dd/get_products' \
  -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 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")
All endpoints · 1 totalmissing one? ·

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.

Input

No input parameters required.

Response
{
  "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.

Reliability & maintenanceVerified

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.

Last verified
1h ago
Latest check
1/1 endpoint 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
  • Track Ro weight loss medication pricing changes over time using starting_price and doses fields
  • Build a GLP-1 and oral weight loss drug comparison table using type, name, and doses pricing tiers
  • Monitor active promotional offers on Ro products by polling the offer field
  • Filter weight loss medications by administration route (pill vs. injection) using the type field
  • 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
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 Ro have an official public developer API?+
Ro does not publish a public developer API or developer documentation as of mid-2025. This Parse API provides structured access to their publicly listed product and pricing data.
What does the `doses` field contain, and how detailed is the pricing breakdown?+
The 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?+
Not currently. The API covers only the weight loss medication catalog as presented on Ro's weight loss pricing page. You can fork this API on Parse and revise it to add an endpoint targeting other Ro product categories.
Does the API include prescription eligibility, clinical details, or patient reviews for each product?+
Not currently. The API returns commercial catalog fields: name, type, description, pricing tiers, and promotional offers. Clinical prescribing details and patient reviews are not included. You can fork this API on Parse and revise it to pull from additional Ro page types if that data is publicly accessible.
How fresh is the pricing data returned by `get_products`?+
Each call to 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.
Page content last updated . Spec covers 1 endpoint from ro.co.
Related APIs in HealthcareSee all →