Quick start
List generated spreadsheets:Filters
All filters are combined with AND semantics. Parameter formats and defaults are in the artifact.list reference.oauth_client_id and api_key_id are mutually exclusive. Passing both returns 400 invalid_argument. OAuth apps with only create_task are already limited to their own app’s tasks: filtering by api_key_id or by another app’s oauth_client_id returns 403 permission_denied.
When neither credential filter is present, API keys, OAuth apps with manage_all_tasks, and trusted OAuth clients can list all artifacts owned by the user, including outputs from Manus UI tasks. Restricted OAuth apps with only create_task always have an implicit source filter for their own app, even when neither parameter is sent.
Credential-filtered lists may omit older artifacts that lack indexed source metadata. This also applies to the implicit filter for restricted create_task OAuth apps; omitting the filter parameters does not make those artifacts accessible to that app. An unfiltered request with an API key, manage_all_tasks, or a trusted OAuth client can still return these artifacts. Historical source metadata is not backfilled as part of this release.
Artifact categories
The ten specific categories are mutually exclusive and together cover
all for the same indexed data and access scope. Each response item’s type is the category used by the filter; all is only a request value. Classification uses the indexed Library file type and extension, rather than the current filename or platform_type returned with the artifact.
Website, WebDev, and Slides classification takes precedence over extension-based categories: a Slides record with a pdf extension remains slides, and a WebDev record with an unrecognized indexed platform extension belongs to others. The format list does not guarantee that an agent can generate every listed format.
URLs and resources
- Downloadable artifacts return
url. - Website and WebDev artifacts can return a site URL. An unpublished WebDev artifact can have no URL.
- Mobile WebDev artifacts can return an application
logowhen one is available. - Addon artifacts return
resource_uriinstead of exposing an internalmanus-resource://value as a download URL. task_idand credential filters refer to the artifact’s original creation task, not its most recent editing task. Only artifacts with an active creation task owned by the authenticated user are returned; collaboration access alone does not include a task.- Credential IDs come from the creation-time record. Deleting an API key does not erase that ID; its display name may be absent.
sourceis omitted when no API key or OAuth client ID can be attributed to the creation task. This includes UI-created tasks and API-created tasks without recorded credential IDs. An omittedsourcedoes not imply that the task was created in the UI.
slides_format=pptx.
Pagination and ordering
Results are ordered by creation time descending, with stable identifier tie-breakers. Name searches use the same ordering. Pagination has no 10,000-result offset window. Whenhas_more is true, pass next_cursor to the next request with the same authenticated user, credential scope, filters, and limit. A cursor from another query is rejected. Treat cursors as opaque; restart without a cursor when changing the query.
A page may contain fewer than limit artifacts, or even be empty, while has_more is true: deleted, blocked, inaccessible, and duplicate search hits are removed before returning results. Continue until has_more is false. A dependency failure returns an error; retry the same request and cursor rather than advancing.
Within one traversal, an artifact is returned at most once by id and by nonempty resource_uri, even when it has projections in several tasks. Retrying a retained cursor replays that page and rechecks current access; apply the replay as a replacement for that page. If combining separate traversals, deduplicate by resource_uri when present, otherwise by id.
Cursors expire after 5 minutes without use or 15 minutes from the start of the traversal. Only the latest 3 produced pages remain replayable. Each user can retain up to 32 traversals; opening more evicts the least recently used one. An expired, evicted, or older cursor returns 400 invalid_argument; restart without a cursor. A traversal is limited to 2,000 pages and bounded server state; exceeding capacity returns 429 resource_exhausted, not an end-of-list response. Refine the query before restarting.
This is a live list, not a snapshot. New artifacts created after the first page normally appear on a fresh traversal. Changes to an artifact’s sort position or visibility during traversal can change which items are returned.
Manus-managed private CDN URLs in url and cover_image pass through the same re-signing path used by Manus Library whenever this endpoint builds a response. A successful re-sign creates a URL with a 48-hour lifetime. Treat signed URLs as temporary and call artifact.list again instead of storing one as a permanent artifact identifier. Re-signing is best-effort: if the signing service is unavailable, the stored URL is returned unchanged and can already be expired. Website URLs do not use this expiry, and Addon artifacts use resource_uri.