# Udemy Course Search Scraper

> Udemy Course Search Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.06/call, status unknown (last checked 2026-10-02).

Scrapes and returns structured data for Udemy courses matching one or more search URLs, including titles, ratings, reviews, duration, and optional pricing.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/udemy?utm_source=zero.xyz
- Price: $0.06/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/udemy-course-search-scraper-1badb36e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WoQbI08tkVXEOLKjCDSyV

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability udemy-course-search-scraper-1badb36e -d '<json body>'
```

Example prompt: Search Udemy for 'Python for beginners' and give me the top 20 courses with their ratings, number of reviews, and current US prices.

## When to prefer this

Use this endpoint when you need structured, machine-readable Udemy course data (titles, ratings, prices, review counts, durations) from one or more search queries without building your own scraper. Ideal for course comparison, market research, or curriculum discovery tasks where real-time Udemy search data is required. Only pay when results are returned.

## Known failure modes

- Invalid or malformed Udemy search URL returns empty results
- Search query with no matching courses returns an empty items array with count 0
- Network or scraping failure may return an error; no charge is incurred on failed or empty runs
- Rate limiting or Udemy anti-bot measures may cause partial or empty results
- Prices may be stale if Udemy updates them between the scrape request and response

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object with a count of matched courses and an array of course items, each containing the course URL, title, rating, course ID, headline, originating search URL, number of reviews, duration in seconds, and optionally the current US price and currency.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Maximum number of unique courses across all search URLs. Set 0 for every available page."
  },
  "searchUrls": {
   "type": "array",
   "description": "Udemy course search URLs with a q parameter. Multiple URLs are merged and duplicate courses are removed."
  },
  "includePrices": {
   "type": "boolean",
   "default": true,
   "description": "Fetch each course’s current US price and currency. This adds one request per course; prices can change."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "title": null,
    "rating": null,
    "courseId": null,
    "headline": null,
    "searchUrl": null,
    "numReviews": null,
    "durationSeconds": null
   }
  ],
  "product": "udemy"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/udemy-course-search-scraper-1badb36e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
