# Udemy Course Scraper API (x402)

> Udemy Course Scraper API (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.06/call, status unknown (last checked 2026-10-02).

Scrapes Udemy course listings from search URLs, returning structured data including titles, ratings, reviews, duration, and optional current pricing.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/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-scraper-api-x402-8e21b25d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_kLjtI8-hXNQLcx7JPdYLa

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-scraper-api-x402-8e21b25d -d '<json body>'
```

Example prompt: Search Udemy for the top 50 courses on 'prompt engineering', include current US prices, and give me a structured list with titles, ratings, number of reviews, and duration.

## When to prefer this

Choose this endpoint when you need structured, machine-readable Udemy course data including ratings, reviews, duration, and live pricing — without building your own scraper or managing Udemy's unofficial API. Especially useful for agents comparing courses, building recommendation engines, or doing market research on e-learning content. The pay-per-call model with no charge for failed/empty runs makes it low-risk for exploratory queries.

## Known failure modes

- Invalid or malformed Udemy search URLs return no results and are not charged
- Udemy blocking or rate-limiting the scraper may result in empty or partial results
- If maxItems is set too low, results may be incomplete
- Network timeouts may cause the call to fail; not charged on failure
- Prices can change between the call and usage — stale pricing is possible

## How this service works

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

## Output

A JSON object containing a count of results and an array of course items, each with fields for course URL, title, rating, courseId, headline, the originating search URL, number of reviews, and duration in seconds. If includePrices is true, each item also includes 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-scraper-api-x402-8e21b25d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
