- name
- facebook_cli
- icon
- title
- description
- Use when the user provides a Facebook URL or asks to read personal posts, comments, reactions, friends, timelines, profiles, stories, feeds, groups, events, or saved items, or to discover public events happening near a place, nearby, or in a local area on a date, or to create, edit, publish, or delete their own Marketplace listings. To find, browse, or buy Marketplace listings, use shopping instead.
- metadata
- { "includeInPrompt": true }
Facebook CLI
Pasted links first
If the user pasted a Facebook Marketplace item link or a share link, never
open it with the browser: the browser cannot pass the Facebook login wall.
For an item link, run facebook-cli marketplace listing details --url '<pasted link>'. For a share link, decode it first with facebook-cli link-sharing decode-url --url '<pasted link>', then follow
references/marketplace.md Step 0 for the decoded URL.
Quick Reference
facebook-cli
├── post
│ ├── read (--post-id <id> | --url <url>) # Read by numeric ID/PFBID or canonical post/photo/video URL
│ ├── comments
│ │ └── read --post-id <id> [--limit N] [--after <cursor>] # Read comments (paginated: data[] + paging.cursors.after; post link at summary.post_url)
│ └── reactions
│ └── read --post-id <id> # Reaction summary only: summary.total_count + summary.reaction_counts (no individual reactor list)
├── link-sharing
│ └── decode-url --url <url> # Resolve a share link; returns original_url
├── me # Your Facebook name + profile ID
│ └── friends [--name] [--city] [--hometown] [--work] [--education] [--filter-mode AND|OR] [--json-query <json>] [--birthday-within-days [N]] [--limit N] [--after <cursor>] # Paginated: data[] + paging.cursors.after
├── marketplace
│ ├── search --query "..." [--out <file>] [options] # Search listings; pass the --out file to shopping.resolve_results, do not read it
│ ├── my-listings [--status active|pending|sold|draft] [--limit N] [--after <cursor>] # Your own listings (active + inactive), paginated
│ ├── listing details (--listing-id <id> | --url '<item link>') [--out <file>] # Item details
│ ├── listing create --title "..." --price N --photo /path [options] # Create; goes LIVE only with photos+condition+category+location (location = --latitude & --longitude; no --location flag), else DRAFT
│ ├── listing edit --listing-id <id> --photo /path [options] # Edit a listing (photos uploaded automatically)
│ ├── listing delete --listing-id <id> # WRITE — permanently delete your listing; prompts for approval
│ ├── listing publish --listing-id <id> # WRITE — take a DRAFT live; needs photos+condition+category+location (location = --latitude & --longitude); prompts for approval
│ └── seller-info --listing-id <id> # Seller ratings/info
├── groups
│ ├── details --group-id <id-or-vanity> # Fetch name, About, visibility, history, tags, ordered rules, and member count
│ ├── search [--keywords "..."] # Search/list your groups; --role any = all public groups
│ └── posts --group-id <id> # Browse posts in a group; --query filters by text
├── events
│ ├── search [--scope connected|discover] [--keywords "..."] [--location "..."] [--latitude N --longitude=-N] [--radius-in-miles N] [--category ...] [--start-date ...] [--end-date ...] [--limit N] [--after <cursor>] # Paginated: data[] + paging.cursors.after; coordinates beat --location, which is only city-accurate
│ └── details --event-id <id> # Read one event; ID from search `id` or `permalink_url`
├── saved
│ ├── list [--type post|video|link|product|reel|event|page] [--collection-id <id>] [--limit N] [--after <opaque>]
│ ├── add --savable-id <FBID> [--type ...] [--collection-id <id>] # WRITE — auto-allowed
│ ├── remove --savable-id <FBID> [--type ...] [--collection-id <id>] # WRITE — auto-allowed
│ └── collections
│ ├── list
│ └── create --name "..." # WRITE — auto-allowed
├── story
│ └── feed [--limit <n>] # Fetch your story feed (story tray)
├── feed
│ ├── newsfeed [--limit <n>] [--after <cursor>] # Ranked algorithmic newsfeed (organic stories)
│ └── friends [--limit <n>] [--after <cursor>] # Ranked friends-only feed
├── timeline
│ └── fetch --profile-id <id> [--limit N] [--after <cursor>] # Fetch timeline posts; use next_cursor to page (check author_id vs owner_id)
└── profile
└── info --profile-id <id> # Look up profile info