# List portfolio domains List domains in the authenticated user's portfolio with filtering, sorting, and pagination. By default, only ICANN (DNS) domains are returned. Returns 50 domains per page by default. If hasMore is true in the pagination response, increment the page parameter to fetch additional results. Endpoint: POST /mcp/v1/actions/ud_portfolio_list Version: 1.0.0 Security: bearerAuth ## Request fields (application/json): - `page` (number) Page number, 1-indexed (default: 1) Example: 1 - `pageSize` (number) Number of domains per page, 1-100 (default: 50) Example: 50 - `searchTerm` (string) Optional search term to filter domains by name - `status` (string) Filter by listing status: "all" (default), "for-sale", or "unlisted" Enum: "all", "for-sale", "unlisted" - `registryType` (string) Filter by registry type: "dns" (ICANN/Web2 domains, default) or "web3" (blockchain domains only) Enum: "dns", "web3" - `expiringWithinDays` (number) Filter domains expiring within the specified number of days (1-365) Example: 30 - `expired` (boolean) Filter for domains that have already expired - `minLength` (number) Filter domains with label length >= this value - `maxLength` (number) Filter domains with label length <= this value - `autoRenewal` (string) Filter by auto-renewal status Enum: "true", "false" - `tagFilters` (array) Filter domains by tag names (e.g., ["personal", "business"]) - `orderBy` (string) Sort by: "name", "length", "purchasedAt", "expiresAt", "listingPrice", "offers", "leads", or "watchlistCount" Enum: "name", "length", "purchasedAt", "expiresAt", "listingPrice", "offers", "leads", "watchlistCount" - `orderDirection` (string) Sort direction: "asc" (ascending, default) or "desc" (descending) Enum: "asc", "desc" ## Response 200 fields (application/json): - `domains` (array) - `domains.name` (string) Full domain name (e.g., "example.com") - `domains.extension` (string) TLD (e.g., "com") - `domains.label` (string) Domain label without TLD - `domains.sld` (string,null) Second-level domain - `domains.punycode` (boolean) Whether domain uses punycode - `domains.purchasedAt` (string,null) Purchase date (ISO string) - `domains.expiresAt` (string,null) Expiration date for DNS domains (ISO string) - `domains.transferStatus` (string) Domain transfer status: • "none" - No active transfer • "pending" - Transfer in progress - `domains.isExternallyOwned` (boolean) Whether domain is externally owned - `domains.tags` (array) User-defined tags - `domains.reverse` (boolean) Whether this is set as reverse resolution - `domains.offersCount` (number) Number of active offers on this domain - `domains.leadsCount` (number) Number of buyer inquiries/messages about this domain - `domains.watchlistCount` (number) Number of users watching this domain - `domains.listing` (object,null) Listing details if domain is for sale - `domains.listing.id` (number) Listing ID - `domains.listing.price` (number) Listing price in cents - `domains.listing.status` (string) Listing status: • "open" - Live on marketplace, ready for purchase (user-custodied domains) • "open-not-signed" - Live on marketplace, ready for purchase (UD-custodied domains, no user action needed) • "open-on-request" - Accepting offers only, no fixed price • "draft" - Not yet published • "waiting-for-approval" - Pending wallet signature from owner • "pending-admin-approval" - Under review (high-value listings) • "pending" - Sale in progress • "canceled" - Listing was canceled Note: Both "open" and "open-not-signed" mean the listing is active and purchasable. - `domains.listing.createdAt` (string) ISO date string - `domains.listing.updatedAt` (string) ISO date string - `domains.listing.views` (number) Number of page views - `domains.autoRenewal` (object,null) Auto-renewal subscription details if enabled - `domains.autoRenewal.status` (string) Auto-renewal subscription status: • "active" - Subscription active, will auto-renew • "pending" - Payment collected, waiting for domain registration • "update_required" - Payment method needs updating (card expired/declined) • "expired" - Subscription expired, domain renewal overdue • "cancelled" - Subscription cancelled, will not auto-renew - `domains.autoRenewal.expiresAt` (string,null) Subscription expiration date (ISO string) - `pagination` (object) - `pagination.page` (number) Current page number - `pagination.pageSize` (number) Items per page - `pagination.totalPages` (number) Total number of pages - `pagination.total` (number) Total number of domains - `pagination.hasMore` (boolean) Whether more pages exist - `pagination.nextPage` (number,null) Next page number if more results exist, null otherwise - `truncated` (boolean) Whether results were truncated due to size limits - `truncationMessage` (string) ## Response 401 fields