Domestika Course Catalog Scraper avatar

Domestika Course Catalog Scraper

Pricing

from $0.06 / 1,000 course extracteds

Go to Apify Store
Domestika Course Catalog Scraper

Domestika Course Catalog Scraper

Extract public Domestika course catalogs and profiles with prices, ratings, students, instructors, languages, workload, topics, and FAQs. Export structured data, use the API, or schedule catalog monitoring.

Pricing

from $0.06 / 1,000 course extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Extract structured Domestika course catalog data from public category, search, ranked, and individual course pages. Collect prices, instructors, ratings, student counts, languages, workload, learning topics, and FAQs without a login or API key. The Actor uses lightweight HTTP requests rather than a browser, so scheduled catalog snapshots stay fast and economical.

  • πŸŽ“ Turn Domestika pages into clean JSON, CSV, Excel, XML, or RSS exports.
  • πŸ“ˆ Compare prices, popularity, ratings, and availability across creative courses.
  • πŸ‘©β€πŸ« Research instructors with public biographies, locations, and social links.
  • πŸ” Schedule recurring runs to monitor catalog changes over time.

What does Domestika Course Catalog Scraper do?

Domestika publishes creative-course catalogs and detailed public course pages. This scraper converts those pages into analysis-ready records. Give it one or more catalog or course URLs, choose a limit, and receive one dataset row per unique course.

It supports:

  • public category pages such as Illustration;
  • public search result pages;
  • ranked catalog URLs such as highest rated;
  • direct course URLs;
  • optional course-detail enrichment;
  • optional Apify Proxy configuration;
  • global deduplication by Domestika course ID.

The Actor does not log in, buy courses, or access paid lessons.

Who is Domestika Course Catalog Scraper for?

Edtech catalog teams

  • Build a structured creative-learning catalog.
  • Normalize course prices, languages, workload, and availability.
  • Feed course records into internal search or recommendation systems.

Market and competitive intelligence analysts

  • Compare creative-course categories and instructors.
  • Track price, rating, and popularity changes.
  • Create recurring category snapshots for trend analysis.

Instructor and creator researchers

  • Discover teachers in a creative discipline.
  • Collect public biographies, locations, topics, and social links.
  • Rank instructors using course and student signals.

Data engineers and automation teams

  • Export records through the Apify API.
  • Schedule updates and deliver them through webhooks.
  • Connect datasets to warehouses, spreadsheets, or dashboards.

Why use this Domestika scraper?

  • βœ… No login or API key: it reads public course metadata.
  • βœ… Rich detail data: combines SSR catalog cards and structured JSON-LD.
  • βœ… Low overhead: HTTP/Cheerio extraction runs at 256 MB.
  • βœ… Stable identity: numeric course IDs support reliable deduplication.
  • βœ… Flexible sources: mix direct course and catalog URLs in one run.
  • βœ… Typed output: numeric prices, counts, and ratings remain numbers.
  • βœ… Apify-native: use schedules, webhooks, API clients, and 5,000+ integrations.
  • βœ… Scope-safe: only domestika.org course URLs are accepted.

What Domestika course data can you extract?

Data groupFields
Course identityCourse ID, canonical URL, source URL, catalog rank
Catalog copyTitle, description, category, badges, cover image
Commercial dataPrice, currency, availability
Social proofPositive rating percentage, rating count, student count
Learning formatWorkload, lesson count, resource count, level
LocalizationCourse/audio languages and subtitle languages
InstructorName, role, portrait, biography, location, social URLs
DiscoveryLearning topics and public course FAQs
ProvenanceExtraction timestamp and originating source URL

Optional fields are omitted when Domestika does not publish them for a course. This avoids misleading placeholder values.

How much does it cost to scrape Domestika courses?

The Actor uses pay-per-event pricing. A run has a $0.005 start charge plus a charge for every course saved. The current Starter/BRONZE price is $0.00010374 per course; higher plans receive volume discounts.

Plan tierPer course
Free$0.0001193
Starter / BRONZE$0.00010374
Scale / SILVER$0.000080914
Business / GOLD$0.000062242
Platinum$0.000041494
Diamond$0.000029046

Example Starter-plan totals:

WorkflowCoursesEstimated Actor charge
One direct course1$0.00510
Small category snapshot20$0.00707
Multi-source research run100$0.01537

Apify platform usage is handled according to the active Actor pricing shown in the Store. Start with a small limit before scheduling a larger workflow.

How to scrape Domestika courses

  1. Open Domestika Course Catalog Scraper on Apify.
  2. Add a public Domestika category, search, ranked, or direct course URL.
  3. Set Maximum courses to the number of unique records you need.
  4. Keep Enrich course details enabled for price, language, instructor, and FAQ data.
  5. Click Start.
  6. Preview the dataset and export it as JSON, CSV, Excel, XML, or RSS.
  7. Save the task or add a schedule when you need recurring snapshots.

A minimal direct-course input:

{
"startUrls": [
{
"url": "https://www.domestika.org/en/courses/2432-atmospheric-scenes-in-procreate-paint-with-color-and-light"
}
],
"maxItems": 1,
"includeDetails": true
}

A ranked-category input:

{
"startUrls": [
{
"url": "https://www.domestika.org/en/courses/category/11-illustration/highest_rated"
}
],
"maxItems": 20,
"includeDetails": true,
"maxConcurrency": 4
}

Input parameters

ParameterTypeDefaultDescription
startUrlsarrayrequiredPublic domestika.org category, search, ranked, or direct course URLs
maxItemsinteger20Maximum unique courses saved across every source URL
includeDetailsbooleantrueOpen course pages for complete detail enrichment
maxConcurrencyinteger4Simultaneous detail requests, from 1 to 10
proxyConfigurationobjectdirect accessOptional Apify Proxy settings

The input editor prefill uses one real direct course and a low three-course limit. Only URLs on domestika.org whose path includes /courses are accepted.

Output example

{
"courseId": 2432,
"url": "https://www.domestika.org/en/courses/2432-atmospheric-scenes-in-procreate-paint-with-color-and-light",
"sourceUrl": "https://www.domestika.org/en/courses/category/11-illustration/highest_rated",
"rank": 1,
"title": "Atmospheric Scenes in Procreate: Paint with Color and Light",
"description": "Learn to create digital paintings filled with magic and emotion by exploring illustration techniques",
"category": "Illustration",
"badges": ["Best seller"],
"instructor": "Ramona Wultschner",
"instructorLocation": "Neuss, Germany",
"price": 29.99,
"currency": "USD",
"availability": "InStock",
"ratingPercentage": 100,
"ratingCount": 893,
"studentCount": 33452,
"workload": "PT2H47M1S",
"courseLanguages": ["English", "French", "Italian", "Portuguese", "Turkish"],
"learningTopics": ["Digital Illustration"],
"scrapedAt": "2026-07-23T00:00:00.000Z"
}

Prices and counts reflect the public page at run time and can change. The exact optional fields vary by course.

Catalog-only versus enriched output

Keep includeDetails enabled when you need the full product. Each discovered course receives one additional public HTTP request. This adds price, availability, category, workload, learning format, languages, instructor profile, topics, and FAQs.

Disable detail enrichment when you only need a fast catalog index. Catalog cards still provide:

  • course ID and URL;
  • title and short description;
  • instructor name;
  • badge and cover image;
  • student count;
  • positive rating percentage and rating count.

Both modes return the same course entity and dataset schema.

Tips for best results

  • 🎯 Start with maxItems: 5 while validating a new source URL.
  • πŸ“š Add several category or search URLs to build a combined catalog.
  • πŸ” Use direct course URLs for deterministic one-course monitoring.
  • ⚑ Disable detail enrichment only when catalog-card fields are enough.
  • 🧭 Keep concurrency at 4 unless you have a specific reason to change it.
  • 🌍 Use English /en/courses pages for the most consistent labels.
  • πŸ” Schedule snapshots at a cadence appropriate for your analysis.
  • πŸ†” Join historical datasets by courseId, not by title.

Monitor Domestika catalog changes

Create an Apify task with a stable category or search URL. Run it daily or weekly and store each dataset ID in your data warehouse. Compare snapshots using courseId as the key.

Useful changes to detect include:

  • price or currency changes;
  • availability changes;
  • new and removed courses;
  • rating and student-count growth;
  • changes in workload or language coverage;
  • instructor profile updates.

Use a webhook to trigger your comparison pipeline when each run succeeds.

Integrations

Domestika β†’ Google Sheets

Export course rows to a sheet used by catalog or content teams. Create formulas for category, price, rating, and popularity comparisons.

Domestika β†’ Slack or Discord

Schedule a run and send an alert when a tracked price or availability field changes. Keep the detailed dataset linked from the notification.

Domestika β†’ Make or Zapier

Trigger downstream workflows from a completed Actor run. Upsert courses into Airtable, Notion, a CMS, or a CRM using courseId.

Domestika β†’ data warehouse

Load JSON or CSV snapshots into BigQuery, Snowflake, or PostgreSQL. Build time-series dashboards for price and demand signals.

Domestika β†’ webhook API

Send the dataset URL to your own endpoint as soon as extraction completes. This works well for internal catalog-refresh pipelines.

Use the Apify API with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/domestika-course-catalog-scraper').call({
startUrls: [{
url: 'https://www.domestika.org/en/courses/category/11-illustration/highest_rated',
}],
maxItems: 20,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Install the client with npm install apify-client. Keep your Apify token in an environment variable.

Use the Apify API with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/domestika-course-catalog-scraper').call(run_input={
'startUrls': [{
'url': 'https://www.domestika.org/en/courses/2432-atmospheric-scenes-in-procreate-paint-with-color-and-light'
}],
'maxItems': 1,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Install the client with pip install apify-client. The returned dataset supports pagination for larger exports.

Use the Apify API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~domestika-course-catalog-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{
"url": "https://www.domestika.org/en/courses/search/illustration"
}],
"maxItems": 10,
"includeDetails": true
}'

The run response includes the dataset and key-value-store identifiers. Poll the run endpoint or use a webhook to wait for completion.

Use with AI agents via MCP

Domestika Course Catalog Scraper can be used by AI assistants through the Model Context Protocol.

For Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/domestika-course-catalog-scraper"

For Claude Desktop, Cursor, or VS Code, add this MCP configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/domestika-course-catalog-scraper"
}
}
}

Authenticate with your Apify account when prompted.

Example prompts

Then try prompts such as:

  • β€œUse automation-lab/domestika-course-catalog-scraper to compare the top-rated illustration courses by price and student count.”
  • β€œExtract this Domestika course and summarize the teacher background, workload, languages, and learning topics.”
  • β€œCreate a weekly Domestika category snapshot and flag courses whose price or availability changed.”

This Actor extracts information visible on public Domestika course and catalog pages. It does not authenticate, circumvent paid access, or retrieve lesson media. Web scraping laws and website terms vary by jurisdiction and use case.

You are responsible for ensuring that your collection and use of data comply with applicable laws, Domestika terms, privacy obligations, and intellectual-property rights. Collect only what you need, use reasonable request volume, and avoid republishing protected course content. Do not use the Actor to access purchased or private material.

Limitations

  • The first server-rendered result surface of each supplied catalog/search URL is extracted; Domestika currently does not expose working ?page= pagination on the tested ranked page.
  • Add multiple source URLs when your workflow needs several catalog slices.
  • Detail fields depend on what Domestika publishes for the selected locale and course.
  • Price and availability may vary by locale, campaign, or time.
  • The Actor does not download course videos, lessons, or other paid assets.
  • Domestika HTML can change; extraction errors are surfaced rather than silently returning an empty successful dataset.

Troubleshooting

Why did my run reject a URL?

Use a public https://www.domestika.org/.../courses... URL. The Actor intentionally rejects other hosts and non-course pages so unrelated inputs cannot bypass product scope.

Why is an optional field missing?

Domestika does not publish every field on every course or locale. Keep detail enrichment enabled and try the English page before treating the field as unavailable.

Why did I receive fewer courses than maxItems?

maxItems is a ceiling, not a promise. The source surface may contain fewer unique course cards, and duplicates across source URLs are removed by course ID.

What should I do after an extraction failure?

Inspect the Actor log and verify that the source URL still opens publicly. If direct access is restricted in your region, enable Apify Proxy in the advanced input section.

Frequently asked questions

How fast is the Domestika scraper?

A direct course usually finishes in seconds. Catalog runs depend on course count and detail enrichment; up to four detail pages are requested concurrently by default.

Do I need a Domestika account?

No. The supported product uses only anonymous public course metadata.

Can I scrape paid lessons?

No. Paid lessons, downloads, and authenticated learning content are outside scope.

Does it support category and search pages?

Yes. Supply public category, ranked, search, or direct course URLs in startUrls.

How are duplicate courses handled?

The Actor deduplicates every discovered record by Domestika’s numeric course ID across all source URLs.

Can I schedule it as a monitor?

Yes. Save the input as an Apify task, add a schedule, and compare datasets using courseId.

Other research and catalog scrapers

Combine this Actor with other Automation Lab tools:

Each linked Actor has its own input, output, pricing, and data-use requirements. Use stable identifiers when joining results across sources.