learndash/list-lessons searches and filters LearnDash lessons. Pass a course_id for one course’s lessons, or omit it to search the whole library.
The whole library includes lessons attached to nothing.
At a glance
| Ability | learndash/list-lessons |
| Toolset | LearnDash — toolset/learndash |
| Group | LearnDash › Lessons, Topics & Quizzes |
| Requires | AcrossAI Pro, plus LearnDash LMS active on the site |
| Capability | manage_options |
| Safety | Read-only — changes nothing |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
That is the useful part. Creating a lesson does not put it in a course, so a site accumulates lessons that exist and are not used — some deliberately staged, some left over from a deleted course, some created and forgotten.
The unattached ones are invisible from any course view, which makes this listing the only way to find them.
Attaching one is learndash/attach-step, which is a separate operation from creating it for exactly this reason.
A course-filtered listing shows what a course contains but not where each lesson sits in the tree; learndash/get-course-structure is the ordered version.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
course_id | integer | No | One course’s lessons. Omit for the whole library. |
search | string | No | Keyword search. |
status | string | No | Post status filter. |
per_page | integer | No | Rows per page. |
What comes back
| Name | Type | What it is |
|---|---|---|
lessons | array | Each lesson with its ID, title, status and course attachment. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Are there any lessons not used in a course?
It resolves to one call:
{
"ability": "learndash/list-lessons",
"parameters": {}
}Worth knowing
- Unattached lessons are invisible from any course view. This finds them.
- Creating a lesson does not attach it.
- For the ordered tree, use the course structure read.
- Read-only.
Related abilities
- LearnDash Attach Step — put one in a course
- LearnDash Get Course Structure — the ordered view
- LearnDash Manage Lesson — create or change one
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category