learndash/list-courses searches and filters the LearnDash course catalogue and returns a compact summary per course: ID, title, slug, status, author and permalink.
It is the entry point to everything else in this suite, because almost every other ability takes a course ID.
At a glance
| Ability | learndash/list-courses |
| Toolset | LearnDash — toolset/learndash |
| Group | LearnDash › Courses |
| 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
Compact is deliberate. A course carries a large settings object and a step tree, and returning either for every row would make a catalogue listing expensive for no benefit.
learndash/get-course returns one course’s full settings; learndash/get-course-structure returns its lesson, topic and quiz tree. Both are per-course calls because both are large.
The status filter matters more on a LearnDash site than on most. Draft courses are normal — a course under construction is a draft for weeks — and a listing that omitted them would describe a smaller catalogue than exists.
The author filter is useful on sites where instructors own their own courses, which is a common arrangement and one where “which courses does this person own” is a real question.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
search | string | No | Keyword search. |
status | string | No | Post status filter. |
author | integer | No | Only courses owned by this user. |
orderby | string | No | Sort key. |
per_page | integer | No | Rows per page. |
page | integer | No | Page number. |
What comes back
| Name | Type | What it is |
|---|---|---|
courses | array | Each course with its ID, title, slug, status, author and permalink. |
total | integer | How many matched. |
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:
What courses does this site have?
It resolves to one call:
{
"ability": "learndash/list-courses",
"parameters": {}
}Worth knowing
- Compact by design — settings and structure are per-course calls.
- Draft courses are normal on a LearnDash site.
- The author filter answers ownership questions on instructor-led sites.
- Read-only.
Related abilities
- LearnDash Get Course — one course in full
- LearnDash Get Course Structure — its steps
- LearnDash Manage Course — create or change one
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category