{"id":"96985287-159b-48b7-b824-c6bc20286f28","entityType":"agent","slug":"clawhub-crawlora-org-facebook-research","name":"facebook-research","canonicalUrl":"https://www.xpersona.co/agent/clawhub-crawlora-org-facebook-research","canonicalPath":"/agent/clawhub-crawlora-org-facebook-research","generatedAt":"2026-10-12T12:01:38.263Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:24:20.658Z","emptyReason":null},"description":"Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 997 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:facebook-research","sourceUrl":"https://clawhub.ai/crawlora-org/facebook-research","homepage":"https://clawhub.ai/crawlora-org/skills/facebook-research","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/crawlora-org/facebook-research","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/crawlora-org/skills/facebook-research","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"facebook-research technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:24:20.658Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:24:20.658Z","emptyReason":null},"stars":null,"forks":null,"downloads":997,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.16","tractionLabel":"997 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:24:20.646Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T20:24:20.658Z","lastCrawledAt":"2026-10-11T20:24:20.646Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T20:24:20.646Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.16","createdAt":"2026-09-17T10:19:22.148Z","changelog":"Security hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.","fileCount":5,"zipByteSize":6508},{"version":"1.0.15","createdAt":"2026-09-14T01:43:30.095Z","changelog":"Sync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d","fileCount":5,"zipByteSize":6938},{"version":"1.0.14","createdAt":"2026-09-10T12:32:23.858Z","changelog":"Validate API keys before curl config","fileCount":5,"zipByteSize":6697},{"version":"1.0.13","createdAt":"2026-09-10T12:14:46.415Z","changelog":"Keep API keys out of process arguments","fileCount":5,"zipByteSize":6662},{"version":"1.0.12","createdAt":"2026-09-10T12:10:13.627Z","changelog":"Reject curl local-file query syntax","fileCount":5,"zipByteSize":6555},{"version":"1.0.11","createdAt":"2026-09-10T11:53:25.637Z","changelog":"Stream helper request bodies through curl stdin","fileCount":5,"zipByteSize":6404},{"version":"1.0.10","createdAt":"2026-09-10T11:38:59.618Z","changelog":"Scope helper routes and remove secret-shaped key examples","fileCount":5,"zipByteSize":6407},{"version":"1.0.9","createdAt":"2026-09-10T06:40:04.691Z","changelog":"Migrate publisher from tonywangcn to crawlora-org for brand consistency with the plugins","fileCount":5,"zipByteSize":5984}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:facebook-research","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:facebook-research` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/crawlora-org/facebook-research before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T12:01:38.260Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-facebook-research/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T20:24:20.658Z","emptyReason":null},"readme":"Skill: facebook-research\n\nOwner: crawlora-org\n\nSummary: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n\nTags: latest:1.0.16\n\nVersion history:\n\nv1.0.16 | 2026-09-17T10:19:22.148Z | user\n\nSecurity hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.\n\nv1.0.15 | 2026-09-14T01:43:30.095Z | user\n\nSync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d\n\nv1.0.14 | 2026-09-10T12:32:23.858Z | user\n\nValidate API keys before curl config\n\nv1.0.13 | 2026-09-10T12:14:46.415Z | user\n\nKeep API keys out of process arguments\n\nv1.0.12 | 2026-09-10T12:10:13.627Z | user\n\nReject curl local-file query syntax\n\nv1.0.11 | 2026-09-10T11:53:25.637Z | user\n\nStream helper request bodies through curl stdin\n\nv1.0.10 | 2026-09-10T11:38:59.618Z | user\n\nScope helper routes and remove secret-shaped key examples\n\nv1.0.9 | 2026-09-10T06:40:04.691Z | user\n\nMigrate publisher from tonywangcn to crawlora-org for brand consistency with the plugins\n\nv1.0.8 | 2026-09-08T04:30:52.759Z | user\n\nRefresh stale REST examples, endpoint references, and Bash helper from crawlora-skills 1.17.1.\n\nv1.0.7 | 2026-09-07T13:24:06.219Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.6 | 2026-09-07T08:11:17.452Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.5 | 2026-09-07T06:35:02.460Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.4 | 2026-08-24T07:11:12.121Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.3 | 2026-08-24T06:24:46.487Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.2 | 2026-08-24T05:07:27.544Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.1 | 2026-08-14T18:25:03.304Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.0 | 2026-08-10T18:52:36.352Z | user\n\nInitial publish\n\nArchive index:\n\nArchive v1.0.16: 5 files, 6508 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (3370b), skill-card.md (2021b), SKILL.md (4082b), _meta.json (137b)\n\nFile v1.0.16:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.16:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1789640362148\n}\n\nFile v1.0.16:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.16:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to research public Facebook Marketplace listings by location, category, or query and to retrieve public Facebook Page profile details without browser automation or a logged-in session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Facebook search terms, page identifiers, and the Crawlora API key are sent to Crawlora.\n\nMitigation: Set CRAWLORA_API_KEY only in the environment, review requests before execution, and avoid sending sensitive identifiers.\n\nRisk: Results may include public business contact details from Facebook Pages.\n\nMitigation: Use returned contact details in line with Facebook terms and applicable privacy expectations.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, JSON]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; requests are limited to documented GET routes for public Facebook Marketplace and Page data.]\n\n## Skill Version(s):\n\n1.0.16 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.15: 5 files, 6938 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (4288b), skill-card.md (2009b), SKILL.md (4082b), _meta.json (137b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1789350210095\n}\n\nFile v1.0.15:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.15:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details via the Crawlora API, returning normalized JSON for location, category, listing, and public Page research.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, researchers, and external users use this skill to retrieve public Facebook Marketplace listings or public Facebook Page profile details through Crawlora instead of scraping Facebook directly.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends Facebook Marketplace or public Page lookup queries to Crawlora and requires a Crawlora API key.\n\nMitigation: Install only when that network use is acceptable, keep CRAWLORA_API_KEY in the environment, and avoid hardcoding or committing the key.\n\nRisk: Returned public contact details could be misused or handled inconsistently with platform terms.\n\nMitigation: Use returned contact details responsibly and respect Facebook's terms and applicable outreach policies.\n\n## Reference(s):\n\n- [Endpoint reference](artifact/reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and uses Crawlora API endpoints for public Facebook Marketplace and Page data.]\n\n## Skill Version(s):\n\n1.0.15 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.14: 5 files, 6697 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (3774b), skill-card.md (1991b), SKILL.md (4082b), _meta.json (137b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1789043543858\n}\n\nFile v1.0.14:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details through the Crawlora API, returning clean JSON.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, analysts, and external users can use this skill to collect public Facebook Marketplace listing data or public Facebook Page profile details through Crawlora instead of scraping Facebook directly.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The helper can send undocumented POST requests to broad Crawlora Facebook API paths using the user's Crawlora API key.\n\nMitigation: Review or restrict the helper to the documented read-only GET endpoints before use if that API access is broader than intended.\n\nRisk: The skill requires a Crawlora API key and sends Facebook-related requests to Crawlora.\n\nMitigation: Provide the key only through CRAWLORA_API_KEY and use an account or key whose permissions and credit exposure are acceptable for the task.\n\n## Reference(s):\n\n- [Endpoint Reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API Base](https://api.crawlora.net/api/v1)\n- [ClawHub Skill Page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands that return raw JSON]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and sends requests to the Crawlora API.]\n\n## Skill Version(s):\n\n1.0.14 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.13: 5 files, 6662 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (3517b), skill-card.md (2181b), SKILL.md (4082b), _meta.json (137b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1789042486415\n}\n\nFile v1.0.13:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.13:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and public Facebook Page details through the Crawlora API and returns normalized JSON for marketplace research and page profile lookups.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and researchers use this skill to search public Facebook Marketplace listings by location, query, category, and filters, or to enrich public Facebook Pages with profile and contact details.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Authenticated Crawlora requests could consume credits or reach broader Facebook API behavior than the documented read-only endpoints if an agent supplies unexpected paths, methods, or POST bodies.\n\nMitigation: Review requested Crawlora paths, methods, and bodies before execution; use the documented Facebook endpoints for normal operation and monitor account credit usage.\n\nRisk: A real Crawlora API key is required for use.\n\nMitigation: Keep the key in CRAWLORA_API_KEY only, avoid hardcoding or committing it, and remove it from the environment when the skill is not in use.\n\n## Reference(s):\n\n- [facebook-research endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [json, shell commands, guidance]\n\n**Output Format:** [JSON responses with optional Markdown and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; returns public Facebook Marketplace and Page data available through Crawlora, with Marketplace results limited to the first server-rendered page.]\n\n## Skill Version(s):\n\n1.0.13 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.12: 5 files, 6555 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (3192b), skill-card.md (2196b), SKILL.md (4143b), _meta.json (137b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/facebook/marketplace/search?location=chicago-il&query=bike\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1789042213627\n}\n\nFile v1.0.12:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.12:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, researchers, and external agents use this skill to collect normalized JSON for public Facebook Marketplace listings and public Facebook Page profile details through Crawlora instead of browser automation or direct scraping.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The security review says the helper can currently call broader Facebook API paths than the documented read-only endpoints.\n\nMitigation: Review requested paths before execution and use a low-quota or narrowly scoped Crawlora API key when available.\n\nRisk: Queries and public Facebook research targets are sent to Crawlora.\n\nMitigation: Use the skill only for public Facebook data you are comfortable sending to Crawlora, and avoid private or sensitive content.\n\nRisk: The helper requires a Crawlora API key.\n\nMitigation: Provide the key only through CRAWLORA_API_KEY and do not hardcode, query-param, or commit it.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Configuration, Guidance]\n\n**Output Format:** [JSON responses with Markdown usage guidance and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; Marketplace search returns only the first page of public results and can take up to roughly a minute.]\n\n## Skill Version(s):\n\n1.0.12 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.11: 5 files, 6404 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (2892b), skill-card.md (2168b), SKILL.md (4143b), _meta.json (137b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/facebook/marketplace/search?location=chicago-il&query=bike\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1789041205637\n}\n\nFile v1.0.11:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and public Facebook Page details through the Crawlora API, returning normalized JSON for location, category, listing, and Page-profile research.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to retrieve public Facebook Marketplace listings for local research and public Facebook Page details for lead enrichment or contact checks without browser automation or logged-in scraping.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The helper can use the user's Crawlora API key for Facebook API calls broader than the documented read-only purpose.\n\nMitigation: Review before installing, and tighten the helper to the two documented GET endpoints before automated or untrusted workflows.\n\nRisk: The skill sends Facebook Marketplace and Page lookup requests to Crawlora using a user-provided API key.\n\nMitigation: Use the skill only when that data sharing is acceptable, and keep the key in CRAWLORA_API_KEY rather than hardcoding, committing, or passing it in query parameters.\n\n## Reference(s):\n\n- [Endpoint Reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API Base](https://api.crawlora.net/api/v1)\n- [ClawHub Skill Page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Configuration, Guidance]\n\n**Output Format:** [JSON API responses with Markdown usage guidance and shell command snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; Marketplace search returns only the first public server-rendered results page.]\n\n## Skill Version(s):\n\n1.0.11 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.10: 5 files, 6407 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (2844b), skill-card.md (2261b), SKILL.md (4143b), _meta.json (137b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/facebook/marketplace/search?location=chicago-il&query=bike\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1789040339618\n}\n\nFile v1.0.10:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, analysts, and market researchers use this skill to query public Facebook Marketplace listings and public Facebook Page profile details through Crawlora instead of scraping Facebook directly.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Authenticated requests send the Crawlora API key and Facebook research queries to Crawlora.\n\nMitigation: Use a scoped Crawlora API key where available, keep it in CRAWLORA_API_KEY, and avoid using the skill for sensitive or private queries.\n\nRisk: The helper can make authenticated POST requests and call undocumented /facebook/ routes beyond the two endpoints described by the skill.\n\nMitigation: Review requested paths and methods before execution and restrict usage to the documented marketplace search and page lookup endpoints.\n\nRisk: Marketplace results are limited to public, first-page server-rendered results and may be slow.\n\nMitigation: Treat outputs as partial public-data snapshots and allow up to roughly a minute for slower marketplace searches.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON API results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and returns public Facebook Marketplace or Page data from Crawlora.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.9: 5 files, 5984 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (2005b), skill-card.md (2180b), SKILL.md (4117b), _meta.json (136b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- `export CRAWLORA_API_KEY=sk_your_key_here`\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/facebook/marketplace/search?location=chicago-il&query=bike\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1789022404691\n}\n\nFile v1.0.9:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details via the Crawlora API, returning clean JSON for market research and public Page enrichment.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, developers, and market researchers use this skill to fetch public Facebook Marketplace listings or public Facebook Page details through Crawlora rather than direct scraping.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The bundled helper can call arbitrary Crawlora API endpoints, which is broader than a narrow Facebook-only lookup workflow.\n\nMitigation: Review requested API paths before execution and use this skill only when a broad Crawlora API helper is acceptable.\n\nRisk: Query or body inputs could expose secrets, tokens, cookies, or sensitive personal data to the Crawlora API.\n\nMitigation: Do not pass secrets or sensitive personal data as query or body input, and prefer a scoped Crawlora API key when available.\n\nRisk: API use can consume Crawlora credits.\n\nMitigation: Monitor API credit usage and apply account or key limits where available.\n\n## Reference(s):\n\n- [facebook-research endpoint reference](reference/endpoints.md)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n- [Crawlora](https://crawlora.net)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands; Crawlora API responses are JSON.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and returns only public Facebook Marketplace and Page data exposed by the Crawlora API.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.8: 5 files, 5883 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (1870b), skill-card.md (2072b), SKILL.md (4117b), _meta.json (136b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- `export CRAWLORA_API_KEY=sk_your_key_here`\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/facebook/marketplace/search?location=chicago-il&query=bike\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1788841852759\n}\n\nFile v1.0.8:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details via the Crawlora API, returning normalized JSON instead of requiring direct Facebook scraping.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[tonywangcn](https://clawhub.ai/user/tonywangcn)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, analysts, and operators use this skill to retrieve public Facebook Marketplace listing data for a location or category and public Facebook Page profile details for market research or lead enrichment.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The helper can send the Crawlora API key to a non-Crawlora destination if CRAWLORA_API_BASE is changed.\n\nMitigation: Use the default Crawlora API base for normal use, and set CRAWLORA_API_BASE only in controlled tests with a non-production key.\n\nRisk: The bundled helper is broader than the documented Facebook-only purpose.\n\nMitigation: Limit agent use to the documented GET /facebook/marketplace/search and GET /facebook/{page} endpoints unless the command is explicitly reviewed.\n\n## Reference(s):\n\n- [Facebook endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n- [ClawHub skill page](https://clawhub.ai/tonywangcn/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [API Calls, Shell commands, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; Marketplace results are limited to the first public page returned by the upstream service.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.7: 5 files, 5971 bytes\n\nFiles: reference/endpoints.md (2810b), scripts/crawlora.sh (1796b), skill-card.md (2434b), SKILL.md (4117b), _meta.json (136b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- `export CRAWLORA_API_KEY=sk_your_key_here`\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/facebook/marketplace/search?location=chicago-il&query=bike\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public phone/email/website\n  from the About tab before outreach.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public Marketplace listings and public Page info; no\n  login, no private content. Respect Facebook's terms.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Marketplace search is single-page only**: Facebook's own further\n  pagination requires a logged-in session and is out of scope — only the\n  first page of server-rendered results is returned.\n- **`property_rentals` category is always filtered** — it has its own\n  listing page and ignores the `min_price`/`max_price`/`sort_by`/etc. filters\n  the same way the plain browse feed does.\n- **Marketplace search can be slow** — up to roughly a minute in the slowest\n  case, since it retries past an intermittent upstream condition; priced\n  accordingly.\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1788787446219\n}\n\nFile v1.0.7:reference/endpoints.md\n\n# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nSearches Facebook Marketplace listings and public Facebook Page details via the Crawlora API and returns normalized JSON for location/category Marketplace research or public Page profile lookups.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[tonywangcn](https://clawhub.ai/user/tonywangcn)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, analysts, and agents use this skill to research public Facebook Marketplace listings or public Facebook Page details through Crawlora. It supports local price checks, browse-feed review, and public business lead enrichment without using browser automation or a logged-in Facebook session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The bundled helper can call arbitrary Crawlora API paths and HTTP methods beyond the documented Facebook endpoints.\n\nMitigation: Review commands before execution and restrict use to the documented GET /facebook/marketplace/search and GET /facebook/{page} endpoints.\n\nRisk: The skill requires a Crawlora API key and network access.\n\nMitigation: Provide the key only through CRAWLORA_API_KEY, do not commit it, and avoid running the helper with untrusted environment variables.\n\nRisk: The helper allows overriding the Crawlora API base URL through CRAWLORA_API_BASE.\n\nMitigation: Use the default Crawlora origin or validate the origin before running the helper.\n\n## Reference(s):\n\n- [facebook-research on ClawHub](https://clawhub.ai/tonywangcn/skills/facebook-research)\n- [facebook-research endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and network access to Crawlora; Marketplace results are limited to the first page returned by Facebook server-rendered results.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: facebook-research Owner: crawlora-org Summary: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly. Tags: latest:1.0.16 Version history: v1.0.","codeSnippets":[],"executableExamples":[{"language":"sh","snippet":"# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'"},{"language":"sh","snippet":"# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'"},{"language":"sh","snippet":"# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'"},{"language":"sh","snippet":"# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'"},{"language":"sh","snippet":"# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'"},{"language":"sh","snippet":"curl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: facebook-research\ndescription: Searches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON. Use when the user wants Marketplace listing data for a location/category or a public Page's profile info — instead of scraping Facebook directly.\n---\n\n# Facebook research\n\nSearch Facebook Marketplace and look up public Facebook Page details — all\nas normalized JSON from the Crawlora API, no browser automation or logged-in\nsession required.\n\n## When to use this skill\n\n- \"Find Marketplace listings for <item> near <location>.\"\n- \"What's on the Marketplace browse feed for <location>/<category>?\"\n- \"Get <Facebook Page>'s follower count / category / contact info.\"\n- \"Does this Facebook Page list a phone number or website?\"\n- Local-market price research or lead-gen sweeps of a Page's public About tab.\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **Marketplace search / browse** — `GET /facebook/marketplace/search` with a\n   required `location` (Marketplace vanity slug) plus an optional `query` or\n   `category`; omit both `query` and `category` to get the location's browse\n   feed instead of a search. `min_price`, `max_price`, `sort_by`,\n   `days_since_listed`, and `condition` only take effect alongside a `query`\n   or `category`.\n2. **Page lookup** — `GET /facebook/{page}` where `page` is a vanity name,\n   handle, `profile.php` id, or full Facebook URL; returns name, follower/like\n   counts, intro, category, business hours/price range, review count, and any\n   public contact details on the Page's About tab.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Marketplace search / browse:\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il query=\"dining table\" | jq '.'\nscripts/crawlora.sh /facebook/marketplace/search location=chicago-il category=vehicles min_price=5000 | jq '.'\n\n# Page lookup:\nscripts/crawlora.sh /facebook/nike | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for both Facebook\nendpoints this skill uses.\n\n## Examples\n\n- **Local resale price check:** `/facebook/marketplace/search` with\n  `location` + `query` for an item, compare listed prices/conditions across\n  the first page of results.\n- **Business lead enrichment:** `/facebook/{page}` for a prospect's Facebook\n  Page to pull follower count, category, and any public ph"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"facebook-research\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1789640362148\n}"},{"path":"reference/endpoints.md","content":"# facebook-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**2 endpoints across 1 platform group(s).**\n\n## Facebook (2)\n\n### `facebook_marketplace_search`\n\n- **HTTP:** `GET /facebook/marketplace/search`\n- **What:** Search Facebook Marketplace. Fetches Facebook Marketplace search or browse results for a location: listing id, title, price, city/state, and a thumbnail image per result. Only the first page Facebook's own server-rendered results page returns is available — Facebook's own further pagination requires a logged-in session and is out of scope. Omit both query and category to get the location's browse feed instead of running a search. minPrice, maxPrice, sortBy, daysSinceListed, and condition only take effect alongside a query or category (Facebook itself ignores them on the plain browse feed), except for the property_rentals category, which has its own always-filtered listing page. This endpoint can take noticeably longer than other search endpoints (up to roughly a minute in the slowest case) as it retries to get past an intermittent upstream condition; priced accordingly.\n- **Params:** `category` (string, optional) — Marketplace category; `condition` (string, optional) — Comma-separated listing conditions; requires query or category; `days_since_listed` (integer, optional) — Restrict to listings posted within this many days; requires query or category; `location` (string, **required**) — Facebook Marketplace location vanity slug; `max_price` (integer, optional) — Maximum price in whole currency units; requires query or category; `min_price` (integer, optional) — Minimum price in whole currency units; requires query or category; `query` (string, optional) — Free-text search terms; omit (with category) for the location's browse feed; `sort_by` (string, optional) — Result order; requires query or category\n\n### `facebook_page`\n\n- **HTTP:** `GET /facebook/{page}`\n- **What:** Get Facebook page details. Fetches public data about a Facebook Page given its page ID, vanity name, or full page URL: name, follower/like counts, intro, category, business hours/price range, review count, and any public contact details (email, phone, address, website, WhatsApp number) exposed on the Page's About tab.\n- **Params:** `page` (string, **required**) — Facebook Page reference: vanity name, handle, profile.php id, or full Facebook URL"},{"path":"skill-card.md","content":"## Description:\n\nSearches Facebook Marketplace listings and looks up public Facebook Page details (name, follower/like counts, category, contact info) via the Crawlora API, returning clean JSON.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to research public Facebook Marketplace listings by location, category, or query and to retrieve public Facebook Page profile details without browser automation or a logged-in session.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Facebook search terms, page identifiers, and the Crawlora API key are sent to Crawlora.\n\nMitigation: Set CRAWLORA_API_KEY only in the environment, review requests before execution, and avoid sending sensitive identifiers.\n\nRisk: Results may include public business contact details from Facebook Pages.\n\nMitigation: Use returned contact details in line with Facebook terms and applicable privacy expectations.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/facebook-research)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, JSON]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; requests are limited to documented GET routes for public Facebook Marketplace and Page data.]\n\n## Skill Version(s):\n\n1.0.16 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1496,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T20:24:20.658Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T20:24:20.658Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T12:01:38.263Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}