# Redcare Pharmacie Scraper — French Pharmacy Products (`studio-amba/redcare-pharmacy-fr-scraper`) Actor

Scrape product data from redcare-pharmacie.fr (Redcare Pharmacy France, formerly Shop Pharmacie). Extract names, brands, prices, product codes, ratings, stock, and images for French pharmacy and parapharmacy products.

- **URL**: https://apify.com/studio-amba/redcare-pharmacy-fr-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 result scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Redcare Pharmacie Scraper

Scrape product data from Redcare Pharmacie (redcare-pharmacie.fr, formerly shop-pharmacie.fr), the French online pharmacy of the Redcare Pharmacy group. Get product names, brands, prices, list prices, product codes, ratings, review counts, stock status, images and categories. No login, no cookies.

### What this actor does

Redcare Pharmacie is one of France's largest online pharmacies, with a catalogue of medicines, parapharmacy, health, beauty and personal-care products. This actor searches that catalogue by keyword and returns a clean, structured record for every matching product, straight from the store's own search backend.

You give it a French search term (for example `doliprane`, `vitamine d`, or `creme solaire`) and a result limit. It returns the same products a shopper sees on the site, with pricing, discounts, product codes, ratings and availability, ready to export as JSON, CSV or Excel, or to feed into your own pipeline.

### Why use this actor?

- **Price monitoring** — track medicine and parapharmacy prices across the French market.
- **Competitor benchmarking** — compare Redcare Pharmacie against other pharmacies (see Related Scrapers below).
- **Product matching** — match by the store's product code, exposed on every result in the `sku` field.
- **Market research** — pull ratings, review counts and discounts to see what sells and how it is positioned.
- **Catalogue building** — assemble a health-and-beauty product feed with images and categories.

No account is required. The actor reads the store's public product search directly, so results are fast and stable run after run.

### How to scrape Redcare Pharmacie data

1. Add this actor to your Apify account.
2. Set `searchQuery` to a French keyword, for example `doliprane`, `vitamine d`, `magnesium` or `creme solaire`. Leave it empty and the actor defaults to `doliprane` so a blank run still returns data.
3. Set `maxResults` to cap the run (default 100, prefilled 20 for a quick test).
4. Optionally set a proxy. The search API is public and works without one, but a residential FR proxy is available as a safety valve.
5. Run the actor. Results stream to the dataset and can be exported as JSON, CSV, Excel or pulled via the API.

The actor queries the store's Algolia-powered product search, pages through the results up to your limit, deduplicates by product id, and writes one row per product.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchQuery` | String | No | French search term (default `doliprane`) |
| `maxResults` | Integer | No | Maximum products to return (default 100) |
| `proxyConfiguration` | Object | No | Optional Apify proxy (residential FR prefilled) |

Example input:

```json
{
  "searchQuery": "vitamine d",
  "maxResults": 50,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

### Output

Each result contains:

| Field | Type | Example |
|-------|------|---------|
| `name` | String | `"Sanofi Doliprane® 1 000 mg"` |
| `brand` | String | `"Doliprane"` |
| `price` | Number | `2.19` |
| `originalPrice` | Number | `2.99` |
| `currency` | String | `"EUR"` |
| `pricePerUnit` | String | `"0,27 € / 1 pc(s)"` |
| `ean` | String | `"3400941533969"` |
| `sku` | String | `"F10000377"` (product code) |
| `productId` | String | `"F10000377"` |
| `inStock` | Boolean | `true` |
| `rating` | Number | `4.8` |
| `reviewCount` | Integer | `120` |
| `category` | String | `"Douleurs et fièvre"` |
| `imageUrl` | String | `"https://cdn.redcare-pharmacie.fr/images/F10/000/377/F10000377-p10.jpg"` |
| `url` | String | `"https://www.redcare-pharmacie.fr/medicaments/F10000377/sanofi-doliprane-1-000-mg.htm"` |
| `description` | String | `"Comprimés de paracétamol contre la douleur et la fièvre"` |
| `specs` | Object | `{ "pharmaForm": "Comprimés", "packSize": "8 pc(s)", ... }` |
| `scrapedAt` | String | `"2026-07-11T10:00:00.000Z"` |

#### Example output

```json
{
  "name": "Sanofi Doliprane® 1 000 mg",
  "brand": "Doliprane",
  "price": 2.19,
  "currency": "EUR",
  "pricePerUnit": "0,27 € / 1 pc(s)",
  "sku": "F10000377",
  "productId": "F10000377",
  "inStock": true,
  "category": "Douleurs et fièvre",
  "imageUrl": "https://cdn.redcare-pharmacie.fr/images/F10/000/377/F10000377-p10.jpg",
  "url": "https://www.redcare-pharmacie.fr/medicaments/F10000377/sanofi-doliprane-1-000-mg.htm",
  "description": "Comprimés de paracétamol contre la douleur et la fièvre",
  "specs": {
    "pharmaForm": "Comprimés",
    "packSize": "8 pc(s)",
    "manufacturer": "Sanofi",
    "activeSubstances": "Paracétamol",
    "prescriptionMedicine": "no"
  },
  "scrapedAt": "2026-07-11T10:00:00.000Z"
}
```

### About the product code

Every product carries a store product code (an F-prefixed pack identifier, for example `F10000377`). This actor returns it in the `sku` field, so you can join Redcare Pharmacie data against your own catalogue or track a specific pack over time. EAN/GTIN barcodes are not exposed by the store's search backend, which is normal for pharmacy listings.

### Prices and discounts

- `price` is the current selling price in EUR.
- `originalPrice` is the list/strike-through price, present only when it is higher than the selling price (so you can compute the discount).
- `pricePerUnit` is the base price per unit (for example per tablet or per 100 ml), useful for comparing pack sizes.
- Some prescription medicines are listed without a public price; those are skipped.

### Notes and limitations

- **Search-based.** The actor scrapes by keyword. Broad terms return more products; specific terms return fewer, more relevant ones.
- **Result window.** A single keyword returns up to roughly 1,000 products (the search backend's pagination window). For a fuller pull, run several targeted queries.
- **French storefront.** This actor targets redcare-pharmacie.fr (redcare-pharmacy.fr redirects there), with French pricing and availability. For the German or Austrian market, use the Shop Apotheke scrapers linked below.
- **No prescription checkout.** This reads public product data only; it does not place orders or handle prescriptions.

### Related Scrapers

Building a pharmacy or health price comparison? Pair this with the other Studio AMBA pharmacy actors:

- [Shop Apotheke Scraper](https://apify.com/studio-amba/shop-apotheke-scraper) — German storefront of the same group
- [Shop Apotheke AT Scraper](https://apify.com/studio-amba/shop-apotheke-at-scraper) — Austrian storefront of the same group
- [DocMorris Scraper](https://apify.com/studio-amba/docmorris-scraper) — German/EU online pharmacy
- [Apotheka Scraper](https://apify.com/studio-amba/apotheka-scraper) — Baltic online pharmacy
- [Dr. Max Scraper](https://apify.com/studio-amba/drmax-scraper) — Central-European pharmacy chain
- [Pilulka Scraper](https://apify.com/studio-amba/pilulka-scraper) — Czech online pharmacy
- [Newpharma Scraper](https://apify.com/studio-amba/newpharma-scraper) — Belgian online pharmacy

### FAQ

**Do I need an account or cookies?**
No. The actor reads the store's public product search directly.

**Which country does this cover?**
The French storefront (redcare-pharmacie.fr), prices in EUR with French availability.

**How do I match products across runs?**
Use the `sku` field, which holds the store's stable product code.

**Can I scrape the whole catalogue?**
Run a set of category or keyword queries. Each query returns up to about 1,000 products, so split broad ranges into narrower terms for full coverage.

# Actor input Schema

## `searchQuery` (type: `string`):

Search term to find products on redcare-pharmacie.fr (French storefront). Use French keywords, e.g. "doliprane", "vitamine d", "creme solaire".

## `maxResults` (type: `integer`):

Maximum number of products to scrape

## `proxyConfiguration` (type: `object`):

Optional Apify proxy. The Redcare Pharmacie search API is public and works without a proxy; residential FR is available as a safety valve.

## Actor input object example

```json
{
  "searchQuery": "doliprane",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "doliprane",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "FR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/redcare-pharmacy-fr-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "doliprane",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "FR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/redcare-pharmacy-fr-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "doliprane",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}' |
apify call studio-amba/redcare-pharmacy-fr-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=studio-amba/redcare-pharmacy-fr-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/mlENvi693zs4aaKgB/builds/t0X64GWkJDOP6zkiw/openapi.json
