{
  "data": {
    "id": "2Tpf5PUHl0dObidV5",
    "actId": "z5wasRpKZDqZTdNyM",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-10T16:02:45.142Z",
    "finishedAt": "2026-11-10T16:02:59.521Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 14302,
      "runTimeSecs": 14.302,
      "computeUnits": 0.015891111111111113,
      "imageSizeBytes": 319189504
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Coursera Course & Specialization Catalog Scraper Input\",\n  \"description\": \"Search Coursera's public catalog by keyword, category, partner or URL, with filters for product type, level, duration, cost, language, subtitle, skills and tools. Optional detail enrichment adds instructors, syllabus, enrollment, page views, rating breakdown and top reviews.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"What to fetch. `bySlug`, `byUrl` and `byIds` always return detail fields for the looked-up products.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"byCategory\",\n        \"byPartner\",\n        \"bySlug\",\n        \"byUrl\",\n        \"byIds\",\n        \"browse\",\n        \"searchSpecializations\"\n      ],\n      \"enumTitles\": [\n        \"Search by keyword\",\n        \"Browse a category (topic)\",\n        \"Browse a partner / university\",\n        \"Look up by slug\",\n        \"Look up by URL\",\n        \"Look up by product ID\",\n        \"Browse the catalog without a keyword\",\n        \"Search specializations (legacy)\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"query\": {\n      \"title\": \"Search query\",\n      \"type\": \"string\",\n      \"description\": \"Keyword search (mode=search, searchSpecializations). Optional narrowing keyword for byCategory and byPartner.\",\n      \"editor\": \"textfield\",\n      \"default\": \"\",\n      \"prefill\": \"machine learning\"\n    },\n    \"startUrls\": {\n      \"title\": \"Coursera URLs (mode=byUrl)\",\n      \"type\": \"array\",\n      \"description\": \"Course, specialization, professional certificate, guided project, degree or certificate page, or a Coursera search / courses URL. Search URLs are converted into catalog filters.\",\n      \"editor\": \"requestListSources\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"url\": {\n            \"title\": \"URL\",\n            \"type\": \"string\",\n            \"description\": \"Coursera page URL.\"\n          }\n        }\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"slugs\": {\n      \"title\": \"Slugs (mode=bySlug)\",\n      \"type\": \"array\",\n      \"description\": \"Course or specialization slugs, e.g. `machine-learning`. A full Coursera URL is also accepted.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"productIds\": {\n      \"title\": \"Product IDs (mode=byIds)\",\n      \"type\": \"array\",\n      \"description\": \"Coursera product IDs such as `course~8UjeMk-mEeit4g4GsxE4dg` or `s12n~nOOfCDWeEeuiZgo2K4rorQ`. Bare course IDs are also accepted.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"productTypes\": {\n      \"title\": \"Learning product types\",\n      \"type\": \"array\",\n      \"description\": \"Limit results to these Coursera product types. Leave empty for every type.\",\n      \"editor\": \"select\",\n      \"sectionCaption\": \"Catalog filters\",\n      \"sectionDescription\": \"All filters are optional. They apply to search, browse, byCategory and byPartner modes (byUrl applies the filters embedded in search URLs).\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"COURSE\",\n          \"SPECIALIZATION\",\n          \"GUIDED_PROJECT\",\n          \"PROJECT\",\n          \"PROFESSIONAL_CERTIFICATE\",\n          \"DEGREE\",\n          \"GRADUATE_CERTIFICATE\",\n          \"MASTERTRACK\",\n          \"UNIVERSITY_CERTIFICATE\",\n          \"POSTGRADUATE_DIPLOMA\"\n        ],\n        \"enumTitles\": [\n          \"Course\",\n          \"Specialization\",\n          \"Guided Project\",\n          \"Project\",\n          \"Professional Certificate\",\n          \"Degree\",\n          \"Graduate Certificate\",\n          \"MasterTrack Certificate\",\n          \"University Certificate\",\n          \"Postgraduate Diploma\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": [\n        \"COURSE\"\n      ]\n    },\n    \"difficulties\": {\n      \"title\": \"Difficulty levels\",\n      \"type\": \"array\",\n      \"description\": \"Only include products at these difficulty levels.\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"BEGINNER\",\n          \"INTERMEDIATE\",\n          \"ADVANCED\",\n          \"MIXED\"\n        ],\n        \"enumTitles\": [\n          \"Beginner\",\n          \"Intermediate\",\n          \"Advanced\",\n          \"Mixed\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"durations\": {\n      \"title\": \"Durations\",\n      \"type\": \"array\",\n      \"description\": \"Only include products in these duration bands.\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"Less Than 2 Hours\",\n          \"1-4 Weeks\",\n          \"1-3 Months\",\n          \"3-6 Months\",\n          \"6-12 Months\",\n          \"1-4 Years\"\n        ],\n        \"enumTitles\": [\n          \"Less than 2 hours\",\n          \"1-4 weeks\",\n          \"1-3 months\",\n          \"3-6 months\",\n          \"6-12 months\",\n          \"1-4 years\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"costs\": {\n      \"title\": \"Cost\",\n      \"type\": \"array\",\n      \"description\": \"Only include products with these cost labels.\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"Free\",\n          \"Free Trial\",\n          \"Paid\",\n          \"Preview\"\n        ],\n        \"enumTitles\": [\n          \"Free\",\n          \"Free trial\",\n          \"Paid\",\n          \"Preview\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"topics\": {\n      \"title\": \"Topics / categories\",\n      \"type\": \"array\",\n      \"description\": \"Only include products in these subject areas (mode=byCategory requires at least one).\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"Business\",\n          \"Computer Science\",\n          \"Information Technology\",\n          \"Data Science\",\n          \"Health\",\n          \"Physical Science and Engineering\",\n          \"Social Sciences\",\n          \"Arts and Humanities\",\n          \"Personal Development\",\n          \"Language Learning\",\n          \"Math and Logic\"\n        ],\n        \"enumTitles\": [\n          \"Business\",\n          \"Computer Science\",\n          \"Information Technology\",\n          \"Data Science\",\n          \"Health\",\n          \"Physical Science and Engineering\",\n          \"Social Sciences\",\n          \"Arts and Humanities\",\n          \"Personal Development\",\n          \"Language Learning\",\n          \"Math and Logic\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"languages\": {\n      \"title\": \"Content languages\",\n      \"type\": \"array\",\n      \"description\": \"Only include products available in these content languages.\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"English\",\n          \"Spanish\",\n          \"French\",\n          \"Arabic\",\n          \"German\",\n          \"Japanese\",\n          \"Korean\",\n          \"Italian\",\n          \"Portuguese\",\n          \"Kazakh\",\n          \"Indonesian\",\n          \"Pushto\",\n          \"Chinese\",\n          \"Russian\",\n          \"Turkish\",\n          \"Hindi\",\n          \"Ukrainian\",\n          \"Thai\",\n          \"Polish\",\n          \"Dutch\",\n          \"Swedish\",\n          \"Greek\",\n          \"Hungarian\",\n          \"Vietnamese\",\n          \"Azerbaijani\",\n          \"Uzbek\",\n          \"Urdu\",\n          \"Bengali\",\n          \"Oriya\",\n          \"Malay\",\n          \"Haitian (Haitian Creole)\",\n          \"Romanian\",\n          \"Persian\",\n          \"Khmer\",\n          \"Finnish\",\n          \"Hebrew\",\n          \"Serbian\",\n          \"Catalan\",\n          \"Javanese\",\n          \"Afrikaans\",\n          \"Czech\",\n          \"Tamil\",\n          \"Croatian\",\n          \"Slovak\",\n          \"Mongolian\",\n          \"Telugu\",\n          \"Lithuanian\",\n          \"Estonian\",\n          \"Bulgarian\",\n          \"Danish\",\n          \"Latvian\",\n          \"Nepali\",\n          \"Burmese\",\n          \"Albanian\",\n          \"Georgian\",\n          \"Malayalam\",\n          \"Swahili\",\n          \"Marathi\",\n          \"Amharic\",\n          \"Kannada\",\n          \"Somali\",\n          \"Tagalog\",\n          \"Macedonian\",\n          \"Kinyarwanda\",\n          \"Norwegian\",\n          \"Nyanja\",\n          \"Slovenian\"\n        ],\n        \"enumTitles\": [\n          \"English\",\n          \"Spanish\",\n          \"French\",\n          \"Arabic\",\n          \"German\",\n          \"Japanese\",\n          \"Korean\",\n          \"Italian\",\n          \"Portuguese\",\n          \"Kazakh\",\n          \"Indonesian\",\n          \"Pushto\",\n          \"Chinese\",\n          \"Russian\",\n          \"Turkish\",\n          \"Hindi\",\n          \"Ukrainian\",\n          \"Thai\",\n          \"Polish\",\n          \"Dutch\",\n          \"Swedish\",\n          \"Greek\",\n          \"Hungarian\",\n          \"Vietnamese\",\n          \"Azerbaijani\",\n          \"Uzbek\",\n          \"Urdu\",\n          \"Bengali\",\n          \"Oriya\",\n          \"Malay\",\n          \"Haitian (Haitian Creole)\",\n          \"Romanian\",\n          \"Persian\",\n          \"Khmer\",\n          \"Finnish\",\n          \"Hebrew\",\n          \"Serbian\",\n          \"Catalan\",\n          \"Javanese\",\n          \"Afrikaans\",\n          \"Czech\",\n          \"Tamil\",\n          \"Croatian\",\n          \"Slovak\",\n          \"Mongolian\",\n          \"Telugu\",\n          \"Lithuanian\",\n          \"Estonian\",\n          \"Bulgarian\",\n          \"Danish\",\n          \"Latvian\",\n          \"Nepali\",\n          \"Burmese\",\n          \"Albanian\",\n          \"Georgian\",\n          \"Malayalam\",\n          \"Swahili\",\n          \"Marathi\",\n          \"Amharic\",\n          \"Kannada\",\n          \"Somali\",\n          \"Tagalog\",\n          \"Macedonian\",\n          \"Kinyarwanda\",\n          \"Norwegian\",\n          \"Nyanja\",\n          \"Slovenian\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"subtitleLanguages\": {\n      \"title\": \"Subtitle languages\",\n      \"type\": \"array\",\n      \"description\": \"Only include products with subtitles in these languages.\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"English\",\n          \"Spanish\",\n          \"French\",\n          \"Arabic\",\n          \"German\",\n          \"Japanese\",\n          \"Korean\",\n          \"Italian\",\n          \"Portuguese\",\n          \"Kazakh\",\n          \"Indonesian\",\n          \"Pushto\",\n          \"Chinese\",\n          \"Russian\",\n          \"Turkish\",\n          \"Hindi\",\n          \"Ukrainian\",\n          \"Thai\",\n          \"Polish\",\n          \"Dutch\",\n          \"Swedish\",\n          \"Greek\",\n          \"Hungarian\",\n          \"Vietnamese\",\n          \"Azerbaijani\",\n          \"Uzbek\",\n          \"Urdu\",\n          \"Bengali\",\n          \"Oriya\",\n          \"Malay\",\n          \"Haitian (Haitian Creole)\",\n          \"Romanian\",\n          \"Persian\",\n          \"Khmer\",\n          \"Finnish\",\n          \"Hebrew\",\n          \"Serbian\",\n          \"Catalan\",\n          \"Javanese\",\n          \"Afrikaans\",\n          \"Czech\",\n          \"Tamil\",\n          \"Croatian\",\n          \"Slovak\",\n          \"Mongolian\",\n          \"Telugu\",\n          \"Lithuanian\",\n          \"Estonian\",\n          \"Bulgarian\",\n          \"Danish\",\n          \"Latvian\",\n          \"Nepali\",\n          \"Burmese\",\n          \"Albanian\",\n          \"Georgian\",\n          \"Malayalam\",\n          \"Swahili\",\n          \"Marathi\",\n          \"Amharic\",\n          \"Kannada\",\n          \"Somali\",\n          \"Tagalog\",\n          \"Macedonian\",\n          \"Kinyarwanda\",\n          \"Norwegian\",\n          \"Nyanja\",\n          \"Slovenian\"\n        ],\n        \"enumTitles\": [\n          \"English\",\n          \"Spanish\",\n          \"French\",\n          \"Arabic\",\n          \"German\",\n          \"Japanese\",\n          \"Korean\",\n          \"Italian\",\n          \"Portuguese\",\n          \"Kazakh\",\n          \"Indonesian\",\n          \"Pushto\",\n          \"Chinese\",\n          \"Russian\",\n          \"Turkish\",\n          \"Hindi\",\n          \"Ukrainian\",\n          \"Thai\",\n          \"Polish\",\n          \"Dutch\",\n          \"Swedish\",\n          \"Greek\",\n          \"Hungarian\",\n          \"Vietnamese\",\n          \"Azerbaijani\",\n          \"Uzbek\",\n          \"Urdu\",\n          \"Bengali\",\n          \"Oriya\",\n          \"Malay\",\n          \"Haitian (Haitian Creole)\",\n          \"Romanian\",\n          \"Persian\",\n          \"Khmer\",\n          \"Finnish\",\n          \"Hebrew\",\n          \"Serbian\",\n          \"Catalan\",\n          \"Javanese\",\n          \"Afrikaans\",\n          \"Czech\",\n          \"Tamil\",\n          \"Croatian\",\n          \"Slovak\",\n          \"Mongolian\",\n          \"Telugu\",\n          \"Lithuanian\",\n          \"Estonian\",\n          \"Bulgarian\",\n          \"Danish\",\n          \"Latvian\",\n          \"Nepali\",\n          \"Burmese\",\n          \"Albanian\",\n          \"Georgian\",\n          \"Malayalam\",\n          \"Swahili\",\n          \"Marathi\",\n          \"Amharic\",\n          \"Kannada\",\n          \"Somali\",\n          \"Tagalog\",\n          \"Macedonian\",\n          \"Kinyarwanda\",\n          \"Norwegian\",\n          \"Nyanja\",\n          \"Slovenian\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"handsOnLearningTypes\": {\n      \"title\": \"Hands-on learning types\",\n      \"type\": \"array\",\n      \"description\": \"Only include products with these hands-on learning formats.\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"Dialogues And Role Plays\",\n          \"Guided Projects\",\n          \"Coding Labs\",\n          \"Cloud Sandboxes\",\n          \"Gen AI Playgrounds\"\n        ],\n        \"enumTitles\": [\n          \"Dialogues and role plays\",\n          \"Guided projects\",\n          \"Coding labs\",\n          \"Cloud sandboxes\",\n          \"Gen AI playgrounds\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"tools\": {\n      \"title\": \"Tools and software\",\n      \"type\": \"array\",\n      \"description\": \"Only include products that teach these tools or software skills.\",\n      \"editor\": \"select\",\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"Amazon Web Services\",\n          \"ChatGPT\",\n          \"Google Gemini\",\n          \"Linux\",\n          \"Power BI\",\n          \"Google Workspace\",\n          \"R (Software)\",\n          \"Anthropic Claude\",\n          \"Jupyter\",\n          \"MySQL\"\n        ],\n        \"enumTitles\": [\n          \"Amazon Web Services\",\n          \"ChatGPT\",\n          \"Google Gemini\",\n          \"Linux\",\n          \"Power BI\",\n          \"Google Workspace\",\n          \"R (Software)\",\n          \"Anthropic Claude\",\n          \"Jupyter\",\n          \"MySQL\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"partners\": {\n      \"title\": \"Partners / universities\",\n      \"type\": \"array\",\n      \"description\": \"Partner or university names, e.g. `IBM`, `Google`, `Stanford Online`, `DeepLearning.AI`. Matched to the live Coursera partner filter; partial names such as `Stanford` are resolved to the closest partner.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"skills\": {\n      \"title\": \"Skills\",\n      \"type\": \"array\",\n      \"description\": \"Skill names, e.g. `Python Programming`, `Machine Learning`. Matched to the live skill filter; partial names are resolved when possible.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"courseraPlusStatus\": {\n      \"title\": \"Coursera Plus\",\n      \"type\": \"string\",\n      \"description\": \"Filter by Coursera Plus inclusion.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"included\",\n        \"notIncluded\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Included in Coursera Plus\",\n        \"Not included in Coursera Plus\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"freeOnly\": {\n      \"title\": \"Free products only\",\n      \"type\": \"boolean\",\n      \"description\": \"Only return products whose Coursera cost label is Free. The older audit/verified filter is no longer exposed by Coursera; access flags are included in every record.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"sortBy\": {\n      \"title\": \"Sort by\",\n      \"type\": \"string\",\n      \"description\": \"Result order for search, browse, byCategory and byPartner modes.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"BEST_MATCH\",\n        \"NEW\"\n      ],\n      \"enumTitles\": [\n        \"Best match\",\n        \"Newest\"\n      ],\n      \"default\": \"BEST_MATCH\",\n      \"prefill\": \"BEST_MATCH\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of records to return (1-1000).\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 50,\n      \"prefill\": 3,\n      \"sectionCaption\": \"Output\",\n      \"sectionDescription\": \"Control the export size and optional detail enrichment.\"\n    },\n    \"includeDetails\": {\n      \"title\": \"Include course detail fields\",\n      \"type\": \"boolean\",\n      \"description\": \"Fetch each product page to add instructors, syllabus/modules, total enrollment, page views, rating breakdown, top reviews, learning objectives, recommended background and membership. Slower: one extra request per record. Lookup modes (bySlug/byUrl/byIds) always return detail fields.\",\n      \"default\": false,\n      \"prefill\": false\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Coursera Course & Specialization Catalog Scraper\n\nCoursera publishes tens of thousands of learning products: individual courses, multi-course\nspecializations, professional certificates, guided projects, degrees and shorter credentials. This\nactor turns that public catalog into structured records you can filter, compare and export. Give it\na keyword, a category, a university, a slug or a URL, and it returns the matching products with\nratings, skills, providers, level, duration, language coverage, access flags and direct links.\n\nOptional detail enrichment adds the parts that only exist on each product page: instructors,\nmodule-by-module syllabus, lecture durations, total enrollment, monthly page views, star\ndistribution, top reviews, learning objectives and recommended background.\n\n## What this actor does\n\n- Keyword search across every Coursera learning product type\n- Category (topic) browse and partner/university browse\n- Slug, URL and product-ID lookups\n- All 10 live product types: courses, specializations, guided projects, projects, professional\n  certificates, degrees, graduate certificates, MasterTrack certificates, university certificates\n  and postgraduate diplomas\n- Filters for level, duration band, cost label, topic, content language, subtitle language,\n  hands-on learning format, tool/software, partner, skill and Coursera Plus inclusion\n- Best-match and newest ordering\n- Optional instructor, syllabus, enrollment, page-view, rating-breakdown and review fields\n- Search rank and page metadata so repeated runs can be compared\n\n## Modes\n\n| Mode | Required input | What it does |\n|---|---|---|\n| `search` | `query` | Keyword search with every filter |\n| `byCategory` | `topics` | Browse one or more subject areas; query is optional |\n| `byPartner` | `partners` | Browse a university or company; query is optional |\n| `bySlug` | `slugs` | Look up products by slug (a full URL also works) |\n| `byUrl` | `startUrls` | Product URLs return one detail record; search or `/courses?query=` URLs become catalog queries |\n| `byIds` | `productIds` | Look up `course~...` and `s12n~...` product IDs |\n| `browse` | none | Top products with filters and no keyword |\n| `searchSpecializations` | `query` | Legacy alias for a search limited to specializations and professional certificates |\n\nLookup modes (`bySlug`, `byUrl`, `byIds`) always return detail fields. Search modes return detail\nfields only when `includeDetails` is true.\n\n## Input\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | dropdown | `search` | One of the eight modes above |\n| `query` | text | empty | Required for `search` and `searchSpecializations`; optional narrowing for `byCategory` and `byPartner` |\n| `startUrls` | URL list | empty | Product, search or `/courses?query=` URLs |\n| `slugs` | text list | empty | Slugs such as `machine-learning`; full URLs accepted |\n| `productIds` | text list | empty | `course~...`, `s12n~...`, or a bare course ID |\n| `productTypes` | multi-select | all | 10 product types |\n| `difficulties` | multi-select | all | Beginner, Intermediate, Advanced, Mixed |\n| `durations` | multi-select | all | Less than 2 hours through 1-4 years |\n| `costs` | multi-select | all | Free, Free Trial, Paid, Preview |\n| `topics` | multi-select | all | 11 Coursera subject areas |\n| `languages` | multi-select | all | 67 content languages |\n| `subtitleLanguages` | multi-select | all | 67 subtitle languages |\n| `handsOnLearningTypes` | multi-select | all | Dialogues, guided projects, coding labs, cloud sandboxes, Gen AI playgrounds |\n| `tools` | multi-select | all | 10 tool/software values |\n| `partners` | text list | empty | Names are matched to the live partner filter; partial names resolve when possible |\n| `skills` | text list | empty | Matched to the live skill filter |\n| `courseraPlusStatus` | dropdown | any | Included or not included in Coursera Plus |\n| `freeOnly` | boolean | false | Adds the Free cost filter |\n| `sortBy` | dropdown | Best match | Best match or Newest |\n| `maxItems` | integer | 50 | 1-1000 |\n| `includeDetails` | boolean | false | Adds one product-page request per record |\n\nEvery filter is applied by Coursera's own catalog search. The actor does not post-filter a fixed\npage, so broad filters are not silently narrowed by a hidden default.\n\n## Examples\n\n### Beginner machine learning courses, full detail\n\n```json\n{\n  \"mode\": \"search\",\n  \"query\": \"machine learning\",\n  \"productTypes\": [\"COURSE\"],\n  \"difficulties\": [\"BEGINNER\"],\n  \"maxItems\": 25,\n  \"includeDetails\": true\n}\n```\n\n### Spanish data-science specializations from a partner\n\n```json\n{\n  \"mode\": \"byPartner\",\n  \"partners\": [\"IBM\"],\n  \"topics\": [\"Data Science\"],\n  \"languages\": [\"Spanish\"],\n  \"productTypes\": [\"SPECIALIZATION\"],\n  \"maxItems\": 20\n}\n```\n\n### Look up a course by its URL\n\n```json\n{\n  \"mode\": \"byUrl\",\n  \"startUrls\": [\n    {\"url\": \"https://www.coursera.org/learn/machine-learning\"}\n  ]\n}\n```\n\n### Look up several products by ID\n\n```json\n{\n  \"mode\": \"byIds\",\n  \"productIds\": [\n    \"course~8UjeMk-mEeit4g4GsxE4dg\",\n    \"s12n~nOOfCDWeEeuiZgo2K4rorQ\"\n  ]\n}\n```\n\n### Browse free courses with subtitles in Spanish\n\n```json\n{\n  \"mode\": \"browse\",\n  \"productTypes\": [\"COURSE\"],\n  \"costs\": [\"Free\"],\n  \"subtitleLanguages\": [\"Spanish\"],\n  \"maxItems\": 30\n}\n```\n\n## Output per product\n\nEvery record carries `recordType`, `productType`, `productTypeLabel`, `productId`, `slug`, `name`,\n`siteName`, `sourceUrl`, `productUrl` and `scrapedAt`. Course records also keep the familiar\n`courseId`, `courseUrl` and `photoUrl` fields; specialization records keep `specializationId`,\n`specializationUrl`, `logoUrl`, `courseIds` and `numCourses`.\n\nList-level fields:\n\n`tagline`, `description`, `partnerName`, `partnerNames`, `partnerIds`, `partnerLogos`, `avgRating`,\n`numRatings`, `reviewCount`, `difficultyLevel`, `duration`, `durationLabel`, `skills`, `tools`,\n`handsOnLearningTypes`, `isCourseFree`, `isCreditEligible`, `isNewContent`,\n`isPartOfCourseraPlus`, `enrollmentType`, `badges`, `fullyTranslatedLanguages`,\n`subtitlesOnlyLanguages`, `primaryLanguageCodes`, `subtitleLanguageCodes`, `workload`,\n`certificates`, `topics`, `subtopics`, `topicIds`, `subtopicIds`, `courseType`, `searchQuery`,\n`searchRank`, `page`, `totalResults`.\n\nDetail fields (`includeDetails` or a lookup mode):\n\n`instructors`, `modules`, `totalDuration`, `totalDurationSeconds`, `totalEnrollmentCount`,\n`learnerCount`, `pageViewsLastMonth`, `contentSatisfactionScore`,\n`contentSatisfactionRatingsCount`, `averageInstructorRating`, `instructorRatingCount`,\n`ratingCountsByStar`, `topReviews`, `learningObjectives`, `recommendedBackground`,\n`specializations` (course membership), `courses` (specialization membership), `numAssignments`,\n`learningHoursPerWeek`, `totalLearningMonths`, `careerOutcomes`, `projectsOverview`,\n`professionalCertificateType`, `headline`, `subheader`, `courseStatus`, `launchedAt`.\n\nA `module` contains its week number, title, description, lecture count, total duration in seconds\nand a `lectures` array with title, type, ISO duration and duration in seconds. A `topReview`\ncontains author, rating, date and text. Empty fields are omitted at every depth; booleans are kept\neven when false.\n\n## Data source and reliability\n\nThe actor reads Coursera's public catalog through the same endpoints the public website uses:\n\n- The catalog search endpoint at `https://www.coursera.org/graphql-gateway?opname=Search` for\n  keyword search, facets, sorting and pagination.\n- Public batch endpoints (`courses.v1`, `onDemandSpecializations.v1`) for description, workload,\n  certificates, languages and subject areas.\n- Public product pages for the optional detail fields.\n\nNo account, cookie, API key or proxy setup is needed. Results are deduplicated by product ID. The\nactor retries transient HTTP errors with exponential backoff and, if a cloud exit is ever blocked,\nfalls back to an Apify datacenter proxy automatically. Runs stop on the requested item count, the\nend of the source or an exhausted result window; there is no wall-clock cut.\n\n## Use cases\n\n- **Curriculum research** - map which universities and companies teach a subject and at what level\n- **Competitive analysis** - compare ratings, enrollment signals, duration and skills across course providers\n- **Learning and development** - build internal training shortlists filtered by topic, language and difficulty\n- **Edtech market intelligence** - track new specializations, professional certificates and guided projects\n- **Academic research** - export a reproducible catalog slice with search rank and page metadata\n\n## FAQ\n\n**Do I need a Coursera account?** No. Every request is cookieless and unauthenticated.\n\n**How many records can one run return?** Up to 1,000. Coursera's own search window is 10,000\nproducts; the actor never needs more than 1,000 for a run and partitions by filters when you need\ndifferent slices of a large topic.\n\n**Why do some records lack a rating or review count?** Coursera does not publish ratings for every\nnew or low-traffic product. The field is omitted rather than filled with zero.\n\n**Why is `enrollmentType` shown as AUDIT or VERIFIED?** Coursera's current public catalog no longer\nexposes the old enrollment-form value. The actor keeps the historic values meaningful by deriving\nthem from `isCourseFree` (free products become AUDIT, others VERIFIED). The authoritative access\nsignals are `isCourseFree`, `isPartOfCourseraPlus` and `isCreditEligible`.\n\n**What does `includeDetails` cost?** One extra product-page request per record. It is the only\nsetting that adds per-record requests; leave it off for fast catalog exports.\n\n**Can I get exact prices or discounts?** No. Coursera does not publish a stable price in the public\ncatalog payload; it depends on region, session and promotions. Free/paid/trial/preview labels and\nCoursera Plus inclusion are available.\n\n**Can I get every review for a course?** The product page exposes a curated set of top reviews\n(typically 12-20). Bulk review export is outside this catalog actor's scope.\n\n**Do degree and certificate pages have the same detail fields?** Degrees and graduate certificates\nuse a different Coursera page template with sparse public metadata. They are returned from the\nsearch catalog with list-level fields; course, project, specialization and professional-certificate\npages have the full detail set.\n\n**Why did a slug or ID return nothing?** Some legacy products are retired or moved. Try the\nproduct URL in `byUrl`, or use a search query to find the current slug. Unsupported ID prefixes are\nreported in the run log.\n\n**A slug exists as both a course and a guided project. Which one is returned?** A bare slug is\nambiguous; `bySlug` follows the first catalog hit. Use `byUrl` with the full product URL when you\nneed a specific product type.\n\n**Is this affiliated with Coursera?** No. This is an independent, third-party actor that reads\npublic catalog data. It is not operated by or affiliated with Coursera, Inc.\n\n## Limitations\n\n- Coursera's search index returns at most 10,000 products per query. The actor caps runs at 1,000\n  records; use filters (product type, topic, level, duration, language, partner) to cover a large\n  topic in several runs.\n- Exact price and discount data are not part of the public catalog payload.\n- Bulk/all reviews are not available from the catalog page; only the page's top reviews are\n  returned.\n- Degree and graduate-certificate detail pages expose a different, sparse schema; those product\n  types are list-level only.\n- One legacy professional certificate was missing from the public batch endpoint during research;\n  the actor falls back to the product page for such IDs and reports a shortfall in the status\n  message if the page is also gone.\n\n## Responsible use\n\nUse the actor for lawful catalog research and export. Respect Coursera's terms, copyright and\nprivacy rules, and do not republish course content. The actor collects public catalog metadata and\ntop review excerpts, not learner records or paid course materials.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "coursera-course-and-specialization-catalog-scraper",
      "title": "Coursera Course & Specialization Catalog Scraper",
      "description": "Search Coursera's course, specialization and credential catalog by keyword, category, partner or URL. Filter by level, duration, cost, language, subtitle, skills and tools; get ratings, skills, syllabus, instructors, enrollment, reviews and direct links.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# Coursera Course & Specialization Catalog Scraper\n\nCoursera publishes tens of thousands of learning products: individual courses, multi-course\nspecializations, professional certificates, guided projects, degrees and shorter credentials. This\nactor turns that public catalog into structured records you can filter, compare and export. Give it\na keyword, a category, a university, a slug or a URL, and it returns the matching products with\nratings, skills, providers, level, duration, language coverage, access flags and direct links.\n\nOptional detail enrichment adds the parts that only exist on each product page: instructors,\nmodule-by-module syllabus, lecture durations, total enrollment, monthly page views, star\ndistribution, top reviews, learning objectives and recommended background.\n\n## What this actor does\n\n- Keyword search across every Coursera learning product type\n- Category (topic) browse and partner/university browse\n- Slug, URL and product-ID lookups\n- All 10 live product types: courses, specializations, guided projects, projects, professional\n  certificates, degrees, graduate certificates, MasterTrack certificates, university certificates\n  and postgraduate diplomas\n- Filters for level, duration band, cost label, topic, content language, subtitle language,\n  hands-on learning format, tool/software, partner, skill and Coursera Plus inclusion\n- Best-match and newest ordering\n- Optional instructor, syllabus, enrollment, page-view, rating-breakdown and review fields\n- Search rank and page metadata so repeated runs can be compared\n\n## Modes\n\n| Mode | Required input | What it does |\n|---|---|---|\n| `search` | `query` | Keyword search with every filter |\n| `byCategory` | `topics` | Browse one or more subject areas; query is optional |\n| `byPartner` | `partners` | Browse a university or company; query is optional |\n| `bySlug` | `slugs` | Look up products by slug (a full URL also works) |\n| `byUrl` | `startUrls` | Product URLs return one detail record; search or `/courses?query=` URLs become catalog queries |\n| `byIds` | `productIds` | Look up `course~...` and `s12n~...` product IDs |\n| `browse` | none | Top products with filters and no keyword |\n| `searchSpecializations` | `query` | Legacy alias for a search limited to specializations and professional certificates |\n\nLookup modes (`bySlug`, `byUrl`, `byIds`) always return detail fields. Search modes return detail\nfields only when `includeDetails` is true.\n\n## Input\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | dropdown | `search` | One of the eight modes above |\n| `query` | text | empty | Required for `search` and `searchSpecializations`; optional narrowing for `byCategory` and `byPartner` |\n| `startUrls` | URL list | empty | Product, search or `/courses?query=` URLs |\n| `slugs` | text list | empty | Slugs such as `machine-learning`; full URLs accepted |\n| `productIds` | text list | empty | `course~...`, `s12n~...`, or a bare course ID |\n| `productTypes` | multi-select | all | 10 product types |\n| `difficulties` | multi-select | all | Beginner, Intermediate, Advanced, Mixed |\n| `durations` | multi-select | all | Less than 2 hours through 1-4 years |\n| `costs` | multi-select | all | Free, Free Trial, Paid, Preview |\n| `topics` | multi-select | all | 11 Coursera subject areas |\n| `languages` | multi-select | all | 67 content languages |\n| `subtitleLanguages` | multi-select | all | 67 subtitle languages |\n| `handsOnLearningTypes` | multi-select | all | Dialogues, guided projects, coding labs, cloud sandboxes, Gen AI playgrounds |\n| `tools` | multi-select | all | 10 tool/software values |\n| `partners` | text list | empty | Names are matched to the live partner filter; partial names resolve when possible |\n| `skills` | text list | empty | Matched to the live skill filter |\n| `courseraPlusStatus` | dropdown | any | Included or not included in Coursera Plus |\n| `freeOnly` | boolean | false | Adds the Free cost filter |\n| `sortBy` | dropdown | Best match | Best match or Newest |\n| `maxItems` | integer | 50 | 1-1000 |\n| `includeDetails` | boolean | false | Adds one product-page request per record |\n\nEvery filter is applied by Coursera's own catalog search. The actor does not post-filter a fixed\npage, so broad filters are not silently narrowed by a hidden default.\n\n## Examples\n\n### Beginner machine learning courses, full detail\n\n```json\n{\n  \"mode\": \"search\",\n  \"query\": \"machine learning\",\n  \"productTypes\": [\"COURSE\"],\n  \"difficulties\": [\"BEGINNER\"],\n  \"maxItems\": 25,\n  \"includeDetails\": true\n}\n```\n\n### Spanish data-science specializations from a partner\n\n```json\n{\n  \"mode\": \"byPartner\",\n  \"partners\": [\"IBM\"],\n  \"topics\": [\"Data Science\"],\n  \"languages\": [\"Spanish\"],\n  \"productTypes\": [\"SPECIALIZATION\"],\n  \"maxItems\": 20\n}\n```\n\n### Look up a course by its URL\n\n```json\n{\n  \"mode\": \"byUrl\",\n  \"startUrls\": [\n    {\"url\": \"https://www.coursera.org/learn/machine-learning\"}\n  ]\n}\n```\n\n### Look up several products by ID\n\n```json\n{\n  \"mode\": \"byIds\",\n  \"productIds\": [\n    \"course~8UjeMk-mEeit4g4GsxE4dg\",\n    \"s12n~nOOfCDWeEeuiZgo2K4rorQ\"\n  ]\n}\n```\n\n### Browse free courses with subtitles in Spanish\n\n```json\n{\n  \"mode\": \"browse\",\n  \"productTypes\": [\"COURSE\"],\n  \"costs\": [\"Free\"],\n  \"subtitleLanguages\": [\"Spanish\"],\n  \"maxItems\": 30\n}\n```\n\n## Output per product\n\nEvery record carries `recordType`, `productType`, `productTypeLabel`, `productId`, `slug`, `name`,\n`siteName`, `sourceUrl`, `productUrl` and `scrapedAt`. Course records also keep the familiar\n`courseId`, `courseUrl` and `photoUrl` fields; specialization records keep `specializationId`,\n`specializationUrl`, `logoUrl`, `courseIds` and `numCourses`.\n\nList-level fields:\n\n`tagline`, `description`, `partnerName`, `partnerNames`, `partnerIds`, `partnerLogos`, `avgRating`,\n`numRatings`, `reviewCount`, `difficultyLevel`, `duration`, `durationLabel`, `skills`, `tools`,\n`handsOnLearningTypes`, `isCourseFree`, `isCreditEligible`, `isNewContent`,\n`isPartOfCourseraPlus`, `enrollmentType`, `badges`, `fullyTranslatedLanguages`,\n`subtitlesOnlyLanguages`, `primaryLanguageCodes`, `subtitleLanguageCodes`, `workload`,\n`certificates`, `topics`, `subtopics`, `topicIds`, `subtopicIds`, `courseType`, `searchQuery`,\n`searchRank`, `page`, `totalResults`.\n\nDetail fields (`includeDetails` or a lookup mode):\n\n`instructors`, `modules`, `totalDuration`, `totalDurationSeconds`, `totalEnrollmentCount`,\n`learnerCount`, `pageViewsLastMonth`, `contentSatisfactionScore`,\n`contentSatisfactionRatingsCount`, `averageInstructorRating`, `instructorRatingCount`,\n`ratingCountsByStar`, `topReviews`, `learningObjectives`, `recommendedBackground`,\n`specializations` (course membership), `courses` (specialization membership), `numAssignments`,\n`learningHoursPerWeek`, `totalLearningMonths`, `careerOutcomes`, `projectsOverview`,\n`professionalCertificateType`, `headline`, `subheader`, `courseStatus`, `launchedAt`.\n\nA `module` contains its week number, title, description, lecture count, total duration in seconds\nand a `lectures` array with title, type, ISO duration and duration in seconds. A `topReview`\ncontains author, rating, date and text. Empty fields are omitted at every depth; booleans are kept\neven when false.\n\n## Data source and reliability\n\nThe actor reads Coursera's public catalog through the same endpoints the public website uses:\n\n- The catalog search endpoint at `https://www.coursera.org/graphql-gateway?opname=Search` for\n  keyword search, facets, sorting and pagination.\n- Public batch endpoints (`courses.v1`, `onDemandSpecializations.v1`) for description, workload,\n  certificates, languages and subject areas.\n- Public product pages for the optional detail fields.\n\nNo account, cookie, API key or proxy setup is needed. Results are deduplicated by product ID. The\nactor retries transient HTTP errors with exponential backoff and, if a cloud exit is ever blocked,\nfalls back to an Apify datacenter proxy automatically. Runs stop on the requested item count, the\nend of the source or an exhausted result window; there is no wall-clock cut.\n\n## Use cases\n\n- **Curriculum research** - map which universities and companies teach a subject and at what level\n- **Competitive analysis** - compare ratings, enrollment signals, duration and skills across course providers\n- **Learning and development** - build internal training shortlists filtered by topic, language and difficulty\n- **Edtech market intelligence** - track new specializations, professional certificates and guided projects\n- **Academic research** - export a reproducible catalog slice with search rank and page metadata\n\n## FAQ\n\n**Do I need a Coursera account?** No. Every request is cookieless and unauthenticated.\n\n**How many records can one run return?** Up to 1,000. Coursera's own search window is 10,000\nproducts; the actor never needs more than 1,000 for a run and partitions by filters when you need\ndifferent slices of a large topic.\n\n**Why do some records lack a rating or review count?** Coursera does not publish ratings for every\nnew or low-traffic product. The field is omitted rather than filled with zero.\n\n**Why is `enrollmentType` shown as AUDIT or VERIFIED?** Coursera's current public catalog no longer\nexposes the old enrollment-form value. The actor keeps the historic values meaningful by deriving\nthem from `isCourseFree` (free products become AUDIT, others VERIFIED). The authoritative access\nsignals are `isCourseFree`, `isPartOfCourseraPlus` and `isCreditEligible`.\n\n**What does `includeDetails` cost?** One extra product-page request per record. It is the only\nsetting that adds per-record requests; leave it off for fast catalog exports.\n\n**Can I get exact prices or discounts?** No. Coursera does not publish a stable price in the public\ncatalog payload; it depends on region, session and promotions. Free/paid/trial/preview labels and\nCoursera Plus inclusion are available.\n\n**Can I get every review for a course?** The product page exposes a curated set of top reviews\n(typically 12-20). Bulk review export is outside this catalog actor's scope.\n\n**Do degree and certificate pages have the same detail fields?** Degrees and graduate certificates\nuse a different Coursera page template with sparse public metadata. They are returned from the\nsearch catalog with list-level fields; course, project, specialization and professional-certificate\npages have the full detail set.\n\n**Why did a slug or ID return nothing?** Some legacy products are retired or moved. Try the\nproduct URL in `byUrl`, or use a search query to find the current slug. Unsupported ID prefixes are\nreported in the run log.\n\n**A slug exists as both a course and a guided project. Which one is returned?** A bare slug is\nambiguous; `bySlug` follows the first catalog hit. Use `byUrl` with the full product URL when you\nneed a specific product type.\n\n**Is this affiliated with Coursera?** No. This is an independent, third-party actor that reads\npublic catalog data. It is not operated by or affiliated with Coursera, Inc.\n\n## Limitations\n\n- Coursera's search index returns at most 10,000 products per query. The actor caps runs at 1,000\n  records; use filters (product type, topic, level, duration, language, partner) to cover a large\n  topic in several runs.\n- Exact price and discount data are not part of the public catalog payload.\n- Bulk/all reviews are not available from the catalog page; only the page's top reviews are\n  returned.\n- Degree and graduate-certificate detail pages expose a different, sparse schema; those product\n  types are list-level only.\n- One legacy professional certificate was missing from the public batch endpoint during research;\n  the actor falls back to the product page for such IDs and reports a shortfall in the status\n  message if the page is also gone.\n\n## Responsible use\n\nUse the actor for lawful catalog research and export. Respect Coursera's terms, copyright and\nprivacy rules, and do not republish course content. The actor collects public catalog metadata and\ntop review excerpts, not learner records or paid course materials.\n",
      "input": {
        "title": "Coursera Course & Specialization Catalog Scraper Input",
        "description": "Search Coursera's public catalog by keyword, category, partner or URL, with filters for product type, level, duration, cost, language, subtitle, skills and tools. Optional detail enrichment adds instructors, syllabus, enrollment, page views, rating breakdown and top reviews.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "What to fetch. `bySlug`, `byUrl` and `byIds` always return detail fields for the looked-up products.",
            "editor": "select",
            "enum": [
              "search",
              "byCategory",
              "byPartner",
              "bySlug",
              "byUrl",
              "byIds",
              "browse",
              "searchSpecializations"
            ],
            "enumTitles": [
              "Search by keyword",
              "Browse a category (topic)",
              "Browse a partner / university",
              "Look up by slug",
              "Look up by URL",
              "Look up by product ID",
              "Browse the catalog without a keyword",
              "Search specializations (legacy)"
            ],
            "default": "search",
            "prefill": "search"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Keyword search (mode=search, searchSpecializations). Optional narrowing keyword for byCategory and byPartner.",
            "editor": "textfield",
            "default": "",
            "prefill": "machine learning"
          },
          "startUrls": {
            "title": "Coursera URLs (mode=byUrl)",
            "type": "array",
            "description": "Course, specialization, professional certificate, guided project, degree or certificate page, or a Coursera search / courses URL. Search URLs are converted into catalog filters.",
            "editor": "requestListSources",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "URL",
                  "type": "string",
                  "description": "Coursera page URL."
                }
              }
            },
            "default": [],
            "prefill": []
          },
          "slugs": {
            "title": "Slugs (mode=bySlug)",
            "type": "array",
            "description": "Course or specialization slugs, e.g. `machine-learning`. A full Coursera URL is also accepted.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "productIds": {
            "title": "Product IDs (mode=byIds)",
            "type": "array",
            "description": "Coursera product IDs such as `course~8UjeMk-mEeit4g4GsxE4dg` or `s12n~nOOfCDWeEeuiZgo2K4rorQ`. Bare course IDs are also accepted.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "productTypes": {
            "title": "Learning product types",
            "type": "array",
            "description": "Limit results to these Coursera product types. Leave empty for every type.",
            "editor": "select",
            "sectionCaption": "Catalog filters",
            "sectionDescription": "All filters are optional. They apply to search, browse, byCategory and byPartner modes (byUrl applies the filters embedded in search URLs).",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "COURSE",
                "SPECIALIZATION",
                "GUIDED_PROJECT",
                "PROJECT",
                "PROFESSIONAL_CERTIFICATE",
                "DEGREE",
                "GRADUATE_CERTIFICATE",
                "MASTERTRACK",
                "UNIVERSITY_CERTIFICATE",
                "POSTGRADUATE_DIPLOMA"
              ],
              "enumTitles": [
                "Course",
                "Specialization",
                "Guided Project",
                "Project",
                "Professional Certificate",
                "Degree",
                "Graduate Certificate",
                "MasterTrack Certificate",
                "University Certificate",
                "Postgraduate Diploma"
              ]
            },
            "default": [],
            "prefill": [
              "COURSE"
            ]
          },
          "difficulties": {
            "title": "Difficulty levels",
            "type": "array",
            "description": "Only include products at these difficulty levels.",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "BEGINNER",
                "INTERMEDIATE",
                "ADVANCED",
                "MIXED"
              ],
              "enumTitles": [
                "Beginner",
                "Intermediate",
                "Advanced",
                "Mixed"
              ]
            },
            "default": [],
            "prefill": []
          },
          "durations": {
            "title": "Durations",
            "type": "array",
            "description": "Only include products in these duration bands.",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "Less Than 2 Hours",
                "1-4 Weeks",
                "1-3 Months",
                "3-6 Months",
                "6-12 Months",
                "1-4 Years"
              ],
              "enumTitles": [
                "Less than 2 hours",
                "1-4 weeks",
                "1-3 months",
                "3-6 months",
                "6-12 months",
                "1-4 years"
              ]
            },
            "default": [],
            "prefill": []
          },
          "costs": {
            "title": "Cost",
            "type": "array",
            "description": "Only include products with these cost labels.",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "Free",
                "Free Trial",
                "Paid",
                "Preview"
              ],
              "enumTitles": [
                "Free",
                "Free trial",
                "Paid",
                "Preview"
              ]
            },
            "default": [],
            "prefill": []
          },
          "topics": {
            "title": "Topics / categories",
            "type": "array",
            "description": "Only include products in these subject areas (mode=byCategory requires at least one).",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "Business",
                "Computer Science",
                "Information Technology",
                "Data Science",
                "Health",
                "Physical Science and Engineering",
                "Social Sciences",
                "Arts and Humanities",
                "Personal Development",
                "Language Learning",
                "Math and Logic"
              ],
              "enumTitles": [
                "Business",
                "Computer Science",
                "Information Technology",
                "Data Science",
                "Health",
                "Physical Science and Engineering",
                "Social Sciences",
                "Arts and Humanities",
                "Personal Development",
                "Language Learning",
                "Math and Logic"
              ]
            },
            "default": [],
            "prefill": []
          },
          "languages": {
            "title": "Content languages",
            "type": "array",
            "description": "Only include products available in these content languages.",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "English",
                "Spanish",
                "French",
                "Arabic",
                "German",
                "Japanese",
                "Korean",
                "Italian",
                "Portuguese",
                "Kazakh",
                "Indonesian",
                "Pushto",
                "Chinese",
                "Russian",
                "Turkish",
                "Hindi",
                "Ukrainian",
                "Thai",
                "Polish",
                "Dutch",
                "Swedish",
                "Greek",
                "Hungarian",
                "Vietnamese",
                "Azerbaijani",
                "Uzbek",
                "Urdu",
                "Bengali",
                "Oriya",
                "Malay",
                "Haitian (Haitian Creole)",
                "Romanian",
                "Persian",
                "Khmer",
                "Finnish",
                "Hebrew",
                "Serbian",
                "Catalan",
                "Javanese",
                "Afrikaans",
                "Czech",
                "Tamil",
                "Croatian",
                "Slovak",
                "Mongolian",
                "Telugu",
                "Lithuanian",
                "Estonian",
                "Bulgarian",
                "Danish",
                "Latvian",
                "Nepali",
                "Burmese",
                "Albanian",
                "Georgian",
                "Malayalam",
                "Swahili",
                "Marathi",
                "Amharic",
                "Kannada",
                "Somali",
                "Tagalog",
                "Macedonian",
                "Kinyarwanda",
                "Norwegian",
                "Nyanja",
                "Slovenian"
              ],
              "enumTitles": [
                "English",
                "Spanish",
                "French",
                "Arabic",
                "German",
                "Japanese",
                "Korean",
                "Italian",
                "Portuguese",
                "Kazakh",
                "Indonesian",
                "Pushto",
                "Chinese",
                "Russian",
                "Turkish",
                "Hindi",
                "Ukrainian",
                "Thai",
                "Polish",
                "Dutch",
                "Swedish",
                "Greek",
                "Hungarian",
                "Vietnamese",
                "Azerbaijani",
                "Uzbek",
                "Urdu",
                "Bengali",
                "Oriya",
                "Malay",
                "Haitian (Haitian Creole)",
                "Romanian",
                "Persian",
                "Khmer",
                "Finnish",
                "Hebrew",
                "Serbian",
                "Catalan",
                "Javanese",
                "Afrikaans",
                "Czech",
                "Tamil",
                "Croatian",
                "Slovak",
                "Mongolian",
                "Telugu",
                "Lithuanian",
                "Estonian",
                "Bulgarian",
                "Danish",
                "Latvian",
                "Nepali",
                "Burmese",
                "Albanian",
                "Georgian",
                "Malayalam",
                "Swahili",
                "Marathi",
                "Amharic",
                "Kannada",
                "Somali",
                "Tagalog",
                "Macedonian",
                "Kinyarwanda",
                "Norwegian",
                "Nyanja",
                "Slovenian"
              ]
            },
            "default": [],
            "prefill": []
          },
          "subtitleLanguages": {
            "title": "Subtitle languages",
            "type": "array",
            "description": "Only include products with subtitles in these languages.",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "English",
                "Spanish",
                "French",
                "Arabic",
                "German",
                "Japanese",
                "Korean",
                "Italian",
                "Portuguese",
                "Kazakh",
                "Indonesian",
                "Pushto",
                "Chinese",
                "Russian",
                "Turkish",
                "Hindi",
                "Ukrainian",
                "Thai",
                "Polish",
                "Dutch",
                "Swedish",
                "Greek",
                "Hungarian",
                "Vietnamese",
                "Azerbaijani",
                "Uzbek",
                "Urdu",
                "Bengali",
                "Oriya",
                "Malay",
                "Haitian (Haitian Creole)",
                "Romanian",
                "Persian",
                "Khmer",
                "Finnish",
                "Hebrew",
                "Serbian",
                "Catalan",
                "Javanese",
                "Afrikaans",
                "Czech",
                "Tamil",
                "Croatian",
                "Slovak",
                "Mongolian",
                "Telugu",
                "Lithuanian",
                "Estonian",
                "Bulgarian",
                "Danish",
                "Latvian",
                "Nepali",
                "Burmese",
                "Albanian",
                "Georgian",
                "Malayalam",
                "Swahili",
                "Marathi",
                "Amharic",
                "Kannada",
                "Somali",
                "Tagalog",
                "Macedonian",
                "Kinyarwanda",
                "Norwegian",
                "Nyanja",
                "Slovenian"
              ],
              "enumTitles": [
                "English",
                "Spanish",
                "French",
                "Arabic",
                "German",
                "Japanese",
                "Korean",
                "Italian",
                "Portuguese",
                "Kazakh",
                "Indonesian",
                "Pushto",
                "Chinese",
                "Russian",
                "Turkish",
                "Hindi",
                "Ukrainian",
                "Thai",
                "Polish",
                "Dutch",
                "Swedish",
                "Greek",
                "Hungarian",
                "Vietnamese",
                "Azerbaijani",
                "Uzbek",
                "Urdu",
                "Bengali",
                "Oriya",
                "Malay",
                "Haitian (Haitian Creole)",
                "Romanian",
                "Persian",
                "Khmer",
                "Finnish",
                "Hebrew",
                "Serbian",
                "Catalan",
                "Javanese",
                "Afrikaans",
                "Czech",
                "Tamil",
                "Croatian",
                "Slovak",
                "Mongolian",
                "Telugu",
                "Lithuanian",
                "Estonian",
                "Bulgarian",
                "Danish",
                "Latvian",
                "Nepali",
                "Burmese",
                "Albanian",
                "Georgian",
                "Malayalam",
                "Swahili",
                "Marathi",
                "Amharic",
                "Kannada",
                "Somali",
                "Tagalog",
                "Macedonian",
                "Kinyarwanda",
                "Norwegian",
                "Nyanja",
                "Slovenian"
              ]
            },
            "default": [],
            "prefill": []
          },
          "handsOnLearningTypes": {
            "title": "Hands-on learning types",
            "type": "array",
            "description": "Only include products with these hands-on learning formats.",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "Dialogues And Role Plays",
                "Guided Projects",
                "Coding Labs",
                "Cloud Sandboxes",
                "Gen AI Playgrounds"
              ],
              "enumTitles": [
                "Dialogues and role plays",
                "Guided projects",
                "Coding labs",
                "Cloud sandboxes",
                "Gen AI playgrounds"
              ]
            },
            "default": [],
            "prefill": []
          },
          "tools": {
            "title": "Tools and software",
            "type": "array",
            "description": "Only include products that teach these tools or software skills.",
            "editor": "select",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "Amazon Web Services",
                "ChatGPT",
                "Google Gemini",
                "Linux",
                "Power BI",
                "Google Workspace",
                "R (Software)",
                "Anthropic Claude",
                "Jupyter",
                "MySQL"
              ],
              "enumTitles": [
                "Amazon Web Services",
                "ChatGPT",
                "Google Gemini",
                "Linux",
                "Power BI",
                "Google Workspace",
                "R (Software)",
                "Anthropic Claude",
                "Jupyter",
                "MySQL"
              ]
            },
            "default": [],
            "prefill": []
          },
          "partners": {
            "title": "Partners / universities",
            "type": "array",
            "description": "Partner or university names, e.g. `IBM`, `Google`, `Stanford Online`, `DeepLearning.AI`. Matched to the live Coursera partner filter; partial names such as `Stanford` are resolved to the closest partner.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "skills": {
            "title": "Skills",
            "type": "array",
            "description": "Skill names, e.g. `Python Programming`, `Machine Learning`. Matched to the live skill filter; partial names are resolved when possible.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "courseraPlusStatus": {
            "title": "Coursera Plus",
            "type": "string",
            "description": "Filter by Coursera Plus inclusion.",
            "editor": "select",
            "enum": [
              "",
              "included",
              "notIncluded"
            ],
            "enumTitles": [
              "Any",
              "Included in Coursera Plus",
              "Not included in Coursera Plus"
            ],
            "default": "",
            "prefill": ""
          },
          "freeOnly": {
            "title": "Free products only",
            "type": "boolean",
            "description": "Only return products whose Coursera cost label is Free. The older audit/verified filter is no longer exposed by Coursera; access flags are included in every record.",
            "default": false,
            "prefill": false
          },
          "sortBy": {
            "title": "Sort by",
            "type": "string",
            "description": "Result order for search, browse, byCategory and byPartner modes.",
            "editor": "select",
            "enum": [
              "BEST_MATCH",
              "NEW"
            ],
            "enumTitles": [
              "Best match",
              "Newest"
            ],
            "default": "BEST_MATCH",
            "prefill": "BEST_MATCH"
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Maximum number of records to return (1-1000).",
            "minimum": 1,
            "maximum": 1000,
            "default": 50,
            "prefill": 3,
            "sectionCaption": "Output",
            "sectionDescription": "Control the export size and optional detail enrichment."
          },
          "includeDetails": {
            "title": "Include course detail fields",
            "type": "boolean",
            "description": "Fetch each product page to add instructors, syllabus/modules, total enrollment, page views, rating breakdown, top reviews, learning objectives, recommended background and membership. Slower: one extra request per record. Lookup modes (bySlug/byUrl/byIds) always return detail fields.",
            "default": false,
            "prefill": false
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Coursera Course & Specialization Catalog Scraper Output",
        "description": "Coursera courses, specializations and credential products with ratings, skills, partners, level, duration, languages, access flags, and optional syllabus, instructors, enrollment, page views and top reviews.",
        "properties": {
          "records": {
            "type": "string",
            "title": "Coursera catalog records",
            "description": "Dataset containing the scraped Coursera courses, specializations and other learning products.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Courses",
              "transformation": {
                "fields": [
                  "recordType",
                  "name",
                  "partnerName",
                  "difficultyLevel",
                  "avgRating",
                  "learnerCount",
                  "courseUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {},
      "defaultMemoryMbytes": 1024
    },
    "buildNumber": "1.1.1",
    "imageDigest": "dcd0e0dc6ae18c4badbee062f6b1942a1778b2802141e64ccd83cac82ca29967",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.015891111111111113
    }
  }
}