Udemy automation · runs monthly
Create Udemy instructor coupons every month
In the first days of every month you open each course's Promotions page, because last month's custom price coupon has run out and Udemy will not let you set up next month's in advance.
Cotlet does it in your own Udemy account with list_courses, list_coupons and create_coupon, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Official options
Can Udemy do this on its own?
Udemy's Instructor API has no coupon endpoints (reference checked 12 Oct 2026). Coupons are made on the course Promotions page or with the Bulk coupon creation tool under Tools, which takes a CSV file and needs at least one published paid course with manage permission. The bulk tool also schedules only inside the current calendar month, so the CSV has to be rebuilt every month from its course information download. Nothing in Udemy replaces an expired coupon on its own.
By hand
How you do it in Udemy today
- Open the course in your Udemy instructor account and click Promotions on the left to see the referral link and the coupon table.
- Click Create new coupon and choose Current best price, Custom price, Free: Open or Free: Targeted; for Custom price, pick a price from the range Udemy displays.
- Set the start date and time, which Udemy reads in U.S. Pacific Time and limits to the current calendar month, then type a custom code of 6 to 20 uppercase letters, numbers, periods, dashes or underscores.
- Click Review coupon, then Create coupon, and copy the link from Share coupon into your newsletter, social post or promotional email.
- Repeat for every course. A Udemy coupon cannot be edited or deleted after creation, so a wrong price or date still uses up one of the course's three coupons for the month.
With an agent
How to create Udemy instructor coupons every month
Prompt
On the 1st of each month, create a custom price coupon at $12.99 for each of my paid Udemy courses, starting 9:00 Pacific, and give me the links with expiry dates. Skip courses that still have an active coupon. - 01
Start from what is left this month
Before creating anything, the agent calls list_coupons for each paid course from list_courses. A course with no coupons left is skipped and reported. A course whose current coupon still runs for more than a week is left alone, so the monthly cap is not spent twice.
- 02
Match the coupon type to the goal
A sale price for your own audience becomes custom_price, which lasts 31 days. A short push becomes best_price, which ends 5 days after activation. Free coupons are made only when you name them, because Udemy allows one Free: Open and one Free: Targeted coupon per course per month, and Free: Open stops at 10 students.
- 03
Check price and code before the call
The price comes from your prompt, never from a guess. If Udemy rejects it as outside the course range, the agent stops for that course and asks, instead of trying lower prices. Codes are uppercased and checked for length and characters; a code already used on that course gets a month suffix such as PYTHON-NOV.
- 04
Create with your OK
Each create_coupon call waits for your OK by default, since a coupon is permanent. The start time is written in Pacific Time, and a start date in next month is refused before the call because Udemy accepts only the current month.
- 05
Hand back links with their terms
The report gives every link with its expiry and redemption limit, ready to paste. Udemy requires a shared coupon to say when it expires and how many people can redeem it.
What you get back
Example data
October 2026 coupons, start 1 Oct 9:00 PT:
Python for Beginners: PYTHON-OCT, custom price $12.99, expires 1 Nov, 2 coupons left this month.
https://www.udemy.com/course/python-for-yourname/?couponCode=PYTHON-OCT
Excel Pivot Tables: EXCEL-OCT, custom price $12.99, expires 1 Nov.
SQL Basics: skipped, coupon SQLSEPT is active until 12 Oct.
React in Practice: $12.99 is below the range Udemy shows for this course. Tell me a new price. Other ways to ask
- Create a 5-day best price coupon for every paid course, starting Friday at 8:00 Pacific, for my Black Friday email.
- Make one Free: Targeted coupon for my new Docker course so my beta group of students can enroll this month.
- How many coupons does each of my courses have left this month, and which active ones expire within 5 days?
Before you automate it
What Udemy allows, and what to know first
- Udemy pays the instructor 97% of net revenue when a student enrolls through the instructor's own coupon or referral link.
- An expired Udemy coupon turns into a referral link, so a student who buys within 24 hours of clicking it is still credited to you, but without the coupon price.
- Switching a Udemy coupon off with the Status toggle on the Promotions page does not give the slot back; the course still counts three coupons for that month.
- A custom Udemy coupon code can be used only once per course, so a code like LAUNCH cannot return next month on the same course.
- For instructors in the Udemy Deals Program, the custom price range follows Udemy's own discount prices, and a coupon cannot be created if its price would exceed the course list price.
create_coupon asks for your OK by default. To run it monthly without you, switch confirmation off for that tool in your dashboard.
Sources: Udemy Help: Promote your course with coupons and referral links · Udemy Help: Coupons and course referral links, rules and guidelines · Udemy Help: Create instructor coupons with the bulk coupons option
REST
Call create_coupon from a script
curl
curl https://cotlet.dev/api/v1/udemy/create_coupon \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"course_id":"4821736","type":"custom_price","code":"OCTOBER1299","price":"12.99","starts_at":"2026-10-12T09:00:00-07:00"}' Example response
{
"coupon_id": "9917342",
"course_id": "4821736",
"code": "OCTOBER1299",
"type": "custom_price",
"price": "12.99",
"currency": "USD",
"starts_at": "2026-10-12T09:00:00-07:00",
"expires_at": "2026-11-12T09:00:00-08:00",
"url": "https://www.udemy.com/course/python-for-yourname/?couponCode=OCTOBER1299",
"coupons_left_this_month": 2
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is udemy_create_coupon. Example data.
Schedule it in n8n, Make, Zapier or cronTools
Udemy tools this automation uses
| Tool | Parameters |
|---|---|
| list_courses | status |
| list_coupons | course_id, active_only |
| create_coupon | course_id, type, code, price, starts_at |
Frequently asked questions
Can the agent schedule next month's coupons today?
No. Udemy accepts a coupon start date only inside the current calendar month, in U.S. Pacific Time, so the agent creates them once the new month has started. That is why this job runs monthly.
Give your agent access to Udemy.
Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Udemy.