# Diabetic Recipe Scraper - Low-cost💲🔥🥦🍽️ (`delectable_incubator/diabetic-recipe-scraper-low-cost`) Actor

Scrape diabetes-friendly recipes from DiabetesFoodHub.org 🥗 with a powerful recipe scraper. Extract recipe titles, ingredients, nutrition facts, meal categories, preparation details, and more. Ideal for healthcare apps, nutrition research, meal planning, dietitians, and AI/NLP training datasets 🚀

- **URL**: https://apify.com/delectable\_incubator/diabetic-recipe-scraper-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** E-commerce, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

<p align="center">
<img src="https://i.ibb.co/jkNS73wX/readme.png" alt="Diabetes Food Hub Recipes Scraper" width="100%">
</p>

---

## Diabetes Food Hub Recipes Scraper 🍽️📊🥗

The Diabetes Food Hub Recipes Scraper is a powerful and scalable Apify Actor designed to extract structured recipe listings directly from DiabetesFoodHub.org recipe category pages.

It enables nutrition research, healthy recipe discovery, diabetes-friendly meal analysis, healthcare data collection, food dataset generation, AI training, dietary monitoring, and structured recipe extraction from one of the leading diabetes-focused recipe platforms.

---

### 🎯 What This Scraper Does

Simply provide one or more Diabetes Food Hub recipe category URLs and the scraper handles everything automatically.

✅ Extracts structured recipe listings

✅ Supports recipe category scraping

✅ Automatically processes recipe pages

✅ Applies maxItems limits

✅ Extracts nutritional information

✅ Captures preparation and cooking times

✅ Detects sponsored recipes

✅ Collects recipe URLs and metadata

✅ Generates clean and structured datasets

✅ Ready for analytics and nutrition research

✅ Export-ready output format

---

### 📊 Data Extracted

#### 🍽️ Recipe Information

| Field              | Description                |
| ------------------ | -------------------------- |
| 🆔 `recipeId`      | Unique recipe identifier   |
| 🍽️ `recipeName`   | Recipe title               |
| 🖼️ `imageUrl`     | Recipe image URL           |
| ⏱️ `prepTime`      | Preparation time           |
| 🔥 `cookTime`      | Cooking time               |
| 👥 `servings`      | Number of servings         |
| 📏 `servingSize`   | Serving size               |
| 🔥 `calories`      | Calories per serving       |
| 🍞 `carbohydrates` | Carbohydrate content       |
| 🥑 `fat`           | Fat content                |
| 🍗 `protein`       | Protein content            |
| ⭐ `rating`         | User rating                |
| 📢 `isSponsored`   | Sponsored recipe indicator |
| 🔗 `recipeUrl`     | Recipe page URL            |

---

### 🛠 How to Use

#### 1️⃣ Configure Input

Provide one or multiple Diabetes Food Hub recipe category URLs:

````

{
"target\_url": "https://diabetesfoodhub.org/recipes/lunch",
"max\_items": 50
}

```

#### 2️⃣ Run the Actor

• Loads recipe category pages

• Processes recipe listings automatically

• Extracts recipe metadata

• Collects nutrition information

• Applies max_items limits

• Stops automatically when limits are reached

#### 3️⃣ Export the Dataset

Download your results in multiple formats:

✅ JSON

✅ CSV

✅ Excel

✅ XML

✅ HTML

---

### ⚙️ Input Configuration

#### 📥 Input Example

```

{
"target\_url": "https://diabetesfoodhub.org/recipes/lunch",
"max\_items": 50
}

```

#### Input Fields

| Field        | Type    | Description                           |
| ------------ | ------- | ------------------------------------- |
| `target_url` | string  | Diabetes Food Hub recipe category URL |
| `max_items`  | integer | Maximum number of recipes to collect  |

---

### 📤 Output Example

```

{
"recipeId": "DFH-10234",
"recipeName": "Grilled Chicken with Vegetables",
"imageUrl": "https://diabetesfoodhub.org/images/recipe.jpg",
"prepTime": "15 mins",
"cookTime": "25 mins",
"servings": "4",
"servingSize": "1 plate",
"calories": "320",
"carbohydrates": "18g",
"fat": "10g",
"protein": "35g",
"rating": "4.6",
"isSponsored": false,
"recipeUrl": "https://diabetesfoodhub.org/recipes/grilled-chicken-vegetables"
}

````

---

### 📊 Output Explanation

| Use Case               | Description                         |
| ---------------------- | ----------------------------------- |
| 🥗 Nutrition Analysis  | Analyze calories and macronutrients |
| 📊 Healthcare Research | Build nutrition-focused datasets    |
| 🤖 AI & NLP Projects   | Train food and nutrition models     |
| 🍽️ Recipe Discovery   | Discover healthy meal ideas         |
| 📈 Dietary Monitoring  | Track nutritional trends over time  |

---

### 🌍 Why Use This Scraper?

🥗 Collect diabetes-friendly recipes at scale

📊 Extract detailed nutritional information

🍽️ Build structured healthy recipe databases

🤖 Generate AI-ready nutrition datasets

⚡ Fast and automated extraction

📦 Export-ready structured output

🧠 Ideal for dietitians, healthcare providers, researchers, and developers

🚀 Scalable for both personal and enterprise projects

---

### ❓ FAQ

#### How does this scraper work?

The scraper loads Diabetes Food Hub recipe category pages and extracts structured recipe information, nutritional values, cooking times, ratings, and recipe URLs.

#### Can I scrape different recipe categories?

Yes. You can scrape any supported recipe category URL such as breakfast, lunch, dinner, or snacks.

#### Does the scraper collect nutritional information?

Yes. Calories, carbohydrates, fats, proteins, serving sizes, and other nutrition-related fields are extracted whenever available.

#### Can I monitor newly added recipes?

Yes. You can schedule recurring Apify runs to monitor newly published recipes over time.

#### Is the data collected live?

Yes. Data is extracted directly from DiabetesFoodHub.org during every run.

#### What export formats are supported?

JSON, CSV, Excel, XML, and HTML.

#### Can I use the extracted data commercially?

Yes. The extracted data can be used for analytics, research, automation, healthcare applications, and commercial projects.

#### What happens if the scraper fails?

The Actor includes retry mechanisms and automated error handling to improve extraction reliability.

#### How long does a run take?

Most extractions complete within minutes depending on the number of recipes requested.

---

### 🚀 How to Use

1️⃣ Sign up — Create a free Apify account

2️⃣ Find the tool — Search for "Diabetes Food Hub Recipes Scraper" in the Apify Store

3️⃣ Configure Input — Add a recipe category URL

4️⃣ Run it — Start the Actor and wait for extraction

5️⃣ Export data — Download results in JSON, CSV, Excel, XML, or HTML

---

### ⚠️ Disclaimer

This tool is an independent solution and is not affiliated with, endorsed by, or sponsored by Diabetes Food Hub or the American Diabetes Association.

---

### 💸 Pricing

This scraper runs on a **pay per events subscription model**.

You only pay for **successful runs**.

💳 **Price:** $2.99 / 1000 results

---

### Related Actors

If you're interested in other Healthcare, Nutrition, Recipe, Research, Marketplace, Jobs, Real Estate, or Lead Generation scraping solutions, explore more tools:

(Coming soon)

---

### 📬 Support

⭐⭐⭐⭐⭐ Leave a 5-star rating if you like this tool

---

### 🌍 PrimeScrape

Built for scalable web data extraction & automation.

Contact us for custom scraping solutions or enterprise requests via Apify or by email.

# Actor input Schema

## `searchUrls` (type: `array`):

List of DiabetesFoodHub.org recipe category URLs to scrape.

The scraper will load more results and extract recipes for each URL until the max items limit is reached or no more results are available.

Examples:
• https://diabetesfoodhub.org/recipes/lunch
• https://diabetesfoodhub.org/recipes/dinner
• https://diabetesfoodhub.org/recipes/breakfast
• https://diabetesfoodhub.org/recipes/desserts
## `maxItemsPerUrl` (type: `integer`):

Maximum number of recipes to collect for EACH category URL.



## Actor input object example

```json
{
  "searchUrls": [
    "https://diabetesfoodhub.org/recipes/lunch",
    "https://diabetesfoodhub.org/recipes/dinner"
  ],
  "maxItemsPerUrl": 50
}
````

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "searchUrls": [
        "https://diabetesfoodhub.org/recipes/lunch",
        "https://diabetesfoodhub.org/recipes/dinner"
    ],
    "maxItemsPerUrl": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/diabetic-recipe-scraper-low-cost").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 = {
    "searchUrls": [
        "https://diabetesfoodhub.org/recipes/lunch",
        "https://diabetesfoodhub.org/recipes/dinner",
    ],
    "maxItemsPerUrl": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/diabetic-recipe-scraper-low-cost").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 '{
  "searchUrls": [
    "https://diabetesfoodhub.org/recipes/lunch",
    "https://diabetesfoodhub.org/recipes/dinner"
  ],
  "maxItemsPerUrl": 50
}' |
apify call delectable_incubator/diabetic-recipe-scraper-low-cost --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=delectable_incubator/diabetic-recipe-scraper-low-cost",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Diabetic Recipe Scraper - Low-cost💲🔥🥦🍽️",
        "description": "Scrape diabetes-friendly recipes from DiabetesFoodHub.org 🥗 with a powerful recipe scraper. Extract recipe titles, ingredients, nutrition facts, meal categories, preparation details, and more. Ideal for healthcare apps, nutrition research, meal planning, dietitians, and AI/NLP training datasets 🚀",
        "version": "0.0",
        "x-build-id": "SfOtnLGc6nfpWx0eD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/delectable_incubator~diabetic-recipe-scraper-low-cost/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-delectable_incubator-diabetic-recipe-scraper-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/delectable_incubator~diabetic-recipe-scraper-low-cost/runs": {
            "post": {
                "operationId": "runs-sync-delectable_incubator-diabetic-recipe-scraper-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/delectable_incubator~diabetic-recipe-scraper-low-cost/run-sync": {
            "post": {
                "operationId": "run-sync-delectable_incubator-diabetic-recipe-scraper-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchUrls",
                    "maxItemsPerUrl"
                ],
                "properties": {
                    "searchUrls": {
                        "title": "Recipe Category URLs (Bulk) 🔗",
                        "type": "array",
                        "description": "List of DiabetesFoodHub.org recipe category URLs to scrape.\n\nThe scraper will load more results and extract recipes for each URL until the max items limit is reached or no more results are available.\n\nExamples:\n• https://diabetesfoodhub.org/recipes/lunch\n• https://diabetesfoodhub.org/recipes/dinner\n• https://diabetesfoodhub.org/recipes/breakfast\n• https://diabetesfoodhub.org/recipes/desserts",
                        "default": [
                            "https://diabetesfoodhub.org/recipes/lunch",
                            "https://diabetesfoodhub.org/recipes/dinner"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItemsPerUrl": {
                        "title": "Maximum Recipes Per URL 🎯",
                        "type": "integer",
                        "description": "Maximum number of recipes to collect for EACH category URL.\n\n",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
