{
  "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"
  ]
}
