{"id":"f3c2c43d-b55c-4105-b70d-96fafc383572","entityType":"agent","slug":"clawhub-crawlora-org-business-review-trust-research","name":"business-review-trust-research","canonicalUrl":"https://www.xpersona.co/agent/clawhub-crawlora-org-business-review-trust-research","canonicalPath":"/agent/clawhub-crawlora-org-business-review-trust-research","generatedAt":"2026-10-11T21:01:24.768Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T16:02:47.659Z","emptyReason":null},"description":"Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:business-review-trust-research","sourceUrl":"https://clawhub.ai/crawlora-org/business-review-trust-research","homepage":"https://clawhub.ai/crawlora-org/skills/business-review-trust-research","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/crawlora-org/business-review-trust-research","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/crawlora-org/skills/business-review-trust-research","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"business-review-trust-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-11T16:02:47.659Z","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-11T16:02:47.659Z","emptyReason":null},"stars":null,"forks":null,"downloads":1032,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.18","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T16:02:47.642Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T16:02:47.659Z","lastCrawledAt":"2026-10-11T16:02:47.642Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T16:02:47.643Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.18","createdAt":"2026-10-06T01:48:04.439Z","changelog":"Sync skill instructions, references, and helper from GitHub a91c30113b1827d719267576bbd2936c99a28029","fileCount":5,"zipByteSize":12202},{"version":"1.0.17","createdAt":"2026-09-17T10:19:36.045Z","changelog":"Security hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.","fileCount":5,"zipByteSize":12417},{"version":"1.0.16","createdAt":"2026-09-14T01:34:29.608Z","changelog":"Sync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d","fileCount":5,"zipByteSize":12742},{"version":"1.0.15","createdAt":"2026-09-10T12:30:33.687Z","changelog":"Validate API keys before curl config","fileCount":5,"zipByteSize":12564},{"version":"1.0.14","createdAt":"2026-09-10T12:14:15.760Z","changelog":"Keep API keys out of process arguments","fileCount":5,"zipByteSize":12436},{"version":"1.0.13","createdAt":"2026-09-10T12:05:10.969Z","changelog":"Reject curl local-file query syntax","fileCount":5,"zipByteSize":12271},{"version":"1.0.12","createdAt":"2026-09-10T11:52:55.190Z","changelog":"Stream helper request bodies through curl stdin","fileCount":5,"zipByteSize":12110},{"version":"1.0.11","createdAt":"2026-09-10T11:34:24.675Z","changelog":"Scope helper routes and remove secret-shaped key examples","fileCount":5,"zipByteSize":12192}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:business-review-trust-research","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:business-review-trust-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/business-review-trust-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-business-review-trust-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-research/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-research/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-research/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-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-11T21:01:24.762Z"}},"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-business-review-trust-research/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-business-review-trust-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-11T16:02:47.659Z","emptyReason":null},"readme":"Skill: business-review-trust-research\n\nOwner: crawlora-org\n\nSummary: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.\n\nTags: latest:1.0.18\n\nVersion history:\n\nv1.0.18 | 2026-10-06T01:48:04.439Z | user\n\nSync skill instructions, references, and helper from GitHub a91c30113b1827d719267576bbd2936c99a28029\n\nv1.0.17 | 2026-09-17T10:19:36.045Z | user\n\nSecurity hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.\n\nv1.0.16 | 2026-09-14T01:34:29.608Z | user\n\nSync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d\n\nv1.0.15 | 2026-09-10T12:30:33.687Z | user\n\nValidate API keys before curl config\n\nv1.0.14 | 2026-09-10T12:14:15.760Z | user\n\nKeep API keys out of process arguments\n\nv1.0.13 | 2026-09-10T12:05:10.969Z | user\n\nReject curl local-file query syntax\n\nv1.0.12 | 2026-09-10T11:52:55.190Z | user\n\nStream helper request bodies through curl stdin\n\nv1.0.11 | 2026-09-10T11:34:24.675Z | user\n\nScope helper routes and remove secret-shaped key examples\n\nv1.0.10 | 2026-09-10T06:30:57.224Z | user\n\nMigrate publisher from tonywangcn to crawlora-org for brand consistency with the plugins\n\nv1.0.9 | 2026-09-08T04:28:58.847Z | user\n\nRefresh stale REST examples, endpoint references, and Bash helper from crawlora-skills 1.17.1.\n\nv1.0.8 | 2026-09-07T13:29:23.580Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.7 | 2026-09-07T08:14:29.259Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.6 | 2026-09-07T06:38:15.415Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.5 | 2026-08-24T07:15:35.779Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.4 | 2026-08-24T06:27:55.067Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.3 | 2026-08-24T05:10:04.627Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.2 | 2026-08-14T18:27:26.193Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.1 | 2026-08-10T18:24:59.095Z | user\n\nSet categories\n\nv1.0.0 | 2026-08-10T17:59:47.974Z | auto\n\n- Initial release: research business and software reputation using the Crawlora API, returning normalized JSON.\n- Supports Product Hunt (launches, makers, alternatives), Trustpilot (business reviews), TrustMRR (revenue-verified startups), and Capterra (software reviews/alternatives).\n- Enables vendor due diligence, launch retrospectives, startup revenue checks, and product review aggregation.\n- No scraping needed; uses official Crawlora API endpoints only.\n- Includes setup steps for acquiring an API key and instructions for API usage.\n\nArchive index:\n\nArchive v1.0.18: 5 files, 12202 bytes\n\nFiles: reference/endpoints.md (23115b), scripts/crawlora.sh (5115b), skill-card.md (1671b), SKILL.md (6815b), _meta.json (150b)\n\nFile v1.0.18:SKILL.md\n\n---\nname: business-review-trust-research\ndescription: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.\n---\n\n# Business & software review research\n\nLook up product launches, business reputation, verified startup revenue,\nsoftware reviews, and crowdfunding campaigns across six platforms as\nnormalized JSON from the Crawlora API — no scraping review-site pages.\n\n## When to use this skill\n\n- \"What did this product launch as on Product Hunt? Who made it?\"\n- \"What are people saying about <company> on Trustpilot?\"\n- \"How much revenue does this startup actually make?\" (TrustMRR — payment-provider-verified)\n- \"What are the reviews / alternatives for this software?\" (Capterra)\n- \"Is this business BBB accredited? What's its rating, and any complaints or scam reports against it?\" (BBB)\n- \"How's this Kickstarter campaign doing? What updates has the creator posted?\"\n- Vendor due-diligence before buying or partnering.\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. **Product Hunt** — `/producthunt/search` (`query`) to find a product\n   `id`; `/producthunt/product/{id}` for detail (+ `/about`, `/makers`,\n   `/launches`, `/reviews`, `/alternatives`, `/customers`).\n   `/producthunt/leaderboard` and `/producthunt/category/{slug}/products`\n   cover browsing/trending.\n2. **Trustpilot** — `/trustpilot/business-units/search` (`q`) to find a\n   business `slug`; `/trustpilot/business/{slug}` for the profile (+\n   `/reviews`, `/related`). `/trustpilot/categories` / `/categories/search`\n   browse by industry.\n3. **TrustMRR** — `/trustmrr/startups` to browse, or `/trustmrr/startup/{slug}`\n   for one company's payment-provider-verified revenue profile (see also\n   the `crawlora-datasets` skill's `trustmrr` dataset for bulk/aggregate\n   queries). `/trustmrr/leaderboard` ranks by MRR; `/trustmrr/categories`\n   browses by category.\n4. **Capterra** — `/capterra/search` (`q`) to find a `product_id`, then\n   `/capterra/product` for detail and `/capterra/product/reviews` for user reviews.\n5. **BBB (Better Business Bureau)** — `/bbb/search` (`q`) to find a business\n   profile URL, then `/bbb/business` for the profile (rating, accreditation)\n   plus `/bbb/business/reviews`, `/bbb/business/complaints`, and\n   `/bbb/business/more-info` for rating reasons and service area.\n   `/bbb/category` browses by industry; `/bbb/scamtracker/search` and\n   `/bbb/scamtracker/{id}` cover consumer-reported scam listings, with\n   `/bbb/scamtracker/state-stats` for state/province aggregates.\n6. **Kickstarter** — `/kickstarter/discover` (`term` free-text and/or\n   `category_id`, plus `state`/`sort`/`staff_pick_only`) to browse or\n   search campaigns, then `/kickstarter/project` (`creator`+`slug`, both\n   the corresponding path segments of the campaign URL) for the funding\n   snapshot (goal, pledged, percent funded, backers, status).\n   `/kickstarter/updates` and `/kickstarter/comments` (same `creator`+`slug`)\n   cover the creator's update feed and the campaign's comment thread.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | 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 every Product\nHunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter endpoint this\nskill uses.\n\n## Examples\n\n- **Vendor due diligence:** `/trustpilot/business/{slug}` (reputation) +\n  `/capterra/product` + `/capterra/product/reviews` (feature-level\n  feedback) before signing a software contract.\n- **Launch retrospective:** `/producthunt/product/{id}` + `/launches` +\n  `/makers` to see how a product performed and who built it.\n- **Bootstrapped-revenue research:** `/trustmrr/startup/{slug}` for one\n  company's verified MRR trend, or `/trustmrr/leaderboard` for the top\n  earners in a category.\n- **Local-business trust check:** `/bbb/search` + `/bbb/business` (rating,\n  accreditation) + `/bbb/business/complaints` before hiring a contractor\n  or vendor; cross-check `/bbb/scamtracker/search` for reported scams.\n- **Campaign due diligence:** `/kickstarter/project` (funding snapshot) +\n  `/kickstarter/updates` (has the creator been communicating?) before\n  backing a campaign.\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 listing/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Trustpilot's `slug` is usually the business's domain** (e.g.\n  `acmecorp.com`), not a display name — resolve via\n  `/trustpilot/business-units/search` if unsure.\n- **Kickstarter's `creator`+`slug` are the two path segments of a project\n  URL** (`kickstarter.com/projects/{creator}/{slug}`) — copy them directly\n  from a campaign link or a `/kickstarter/discover` result rather than\n  guessing.\n- Reviews/lists are paginated — pass `page` to walk beyond the first page.\n\nFile v1.0.18:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"business-review-trust-research\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1791251284439\n}\n\nFile v1.0.18:reference/endpoints.md\n\n# business-review-trust-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**41 endpoints across 6 platform group(s).**\n\n## ProductHunt (11)\n\n### `producthunt_about`\n\n- **HTTP:** `GET /producthunt/product/{id}/about`\n- **What:** Retrieve Product Hunt product about page. Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_alternatives`\n\n- **HTTP:** `GET /producthunt/product/{id}/alternatives`\n- **What:** Retrieve Product Hunt product alternatives. Returns paginated alternatives, tags, and related discussions for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `first` (integer, optional) — Page size; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Sort order; `tags` (string, optional) — Comma-separated tag slugs\n\n### `producthunt_category`\n\n- **HTTP:** `GET /producthunt/category/{slug}`\n- **What:** Retrieve Product Hunt category details. Returns the category page payload for a Product Hunt category slug.\n- **Params:** `slug` (string, **required**) — Product Hunt category slug\n\n### `producthunt_category_products`\n\n- **HTTP:** `GET /producthunt/category/{slug}/products`\n- **What:** Retrieve Product Hunt category products. Returns the products in a Product Hunt category (now backed by Product Hunt topics), cursor-paginated. Pass the `cursor` from a previous response's `end_cursor` to page; `page_size` controls the batch size. `page`, `featured_only`, `order` and `tags` are accepted for compatibility but no longer affect the result.\n- **Params:** `cursor` (string, optional) — Pagination cursor from a previous response's end_cursor; `featured_only` (boolean, optional) — Accepted for compatibility; no longer affects results; `order` (string, optional) — Accepted for compatibility; no longer affects results; `page` (integer, optional) — Accepted for compatibility; use cursor to paginate; `page_size` (integer, optional) — Page size (number of products); `slug` (string, **required**) — Product Hunt category slug; `tags` (string, optional) — Accepted for compatibility; no longer affects results\n\n### `producthunt_customers`\n\n- **HTTP:** `GET /producthunt/product/{id}/customers`\n- **What:** Retrieve Product Hunt product customers. Returns paginated customer products for a Product Hunt product using Product Hunt's ProductCustomersPage GraphQL operation.\n- **Params:** `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt customers order; `page` (integer, optional) — Page number; `page_size` (integer, optional) — Results per page\n\n### `producthunt_launches`\n\n- **HTTP:** `GET /producthunt/product/{id}/launches`\n- **What:** Retrieve Product Hunt product launches. Returns paginated launch posts for a Product Hunt product using Product Hunt's ProductPageLaunches GraphQL operation.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt launch order\n\n### `producthunt_leaderboard`\n\n- **HTTP:** `GET /producthunt/leaderboard`\n- **What:** Retrieve Product Hunt leaderboard. Fetches Product Hunt leaderboard data for daily, weekly, monthly, or yearly scopes via Product Hunt GraphQL.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `date` (string, optional) — Anchor date in YYYY-MM-DD format. Used to derive missing year/month/day/week values.; `day` (integer, optional) — Daily day override; `featured` (boolean, optional) — Featured products only; `month` (integer, optional) — Daily/monthly month override; `order` (string, optional) — Ranking order override. Defaults to scope rank enum.; `scope` (string, optional) — Leaderboard scope: daily, weekly, monthly, yearly; `week` (integer, optional) — Weekly ISO week override; `year` (integer, optional) — Leaderboard year override\n\n### `producthunt_makers`\n\n- **HTTP:** `GET /producthunt/product/{id}/makers`\n- **What:** Retrieve Product Hunt product makers. Returns maker items for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_product`\n\n- **HTTP:** `GET /producthunt/product/{id}`\n- **What:** Retrieve Product Hunt product details. Returns the core Product Hunt product details. The path takes an exact Product Hunt slug; if you only know the product name, look the slug up first with `/producthunt/search` (live) or `/datasets/producthunt-products/search` (indexed). Unknown slugs return 404, and that 404 is cached for one hour.\n- **Params:** `id` (string, **required**) — Product Hunt slug or numeric ID\n\n### `producthunt_reviews`\n\n- **HTTP:** `GET /producthunt/product/{id}/reviews`\n- **What:** Retrieve Product Hunt product detailed reviews. Returns detailed review items for a Product Hunt product.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_search`\n\n- **HTTP:** `GET /producthunt/search`\n- **What:** Search for products, users, or launches on Product Hunt. Performs a full-text Product Hunt search and returns matching products, users, or launches.\n- **Params:** `featured` (boolean, optional) — Launch search only: featured launches only; `page` (integer, optional) — Page number (1-based); `query` (string, **required**) — Search keywords; `topics` (string, optional) — Launch search only: comma-separated topic slugs; `type` (string, optional) — Result type: **product** (default), **user**, or **launch**\n\n## TrustMRR (7)\n\n### `trustmrr_acquire`\n\n- **HTTP:** `GET /trustmrr/acquire`\n- **What:** Get TrustMRR acquisition listings. Returns the for-sale startups rendered on the public TrustMRR /acquire marketplace page, with deal metrics (asking price, revenue, multiple, growth). Verified revenue figures come from supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_categories`\n\n- **HTTP:** `GET /trustmrr/categories`\n- **What:** Get TrustMRR categories. Returns the TrustMRR startup category directory (slug, label, description, and keywords for each category).\n- **Params:** _none_\n\n### `trustmrr_category`\n\n- **HTTP:** `GET /trustmrr/category/{slug}`\n- **What:** Get TrustMRR category detail. Returns a single TrustMRR category page and the startups listed under it, with verified revenue and MRR figures.\n- **Params:** `slug` (string, **required**) — TrustMRR category slug\n\n### `trustmrr_leaderboard`\n\n- **HTTP:** `GET /trustmrr/leaderboard`\n- **What:** Get TrustMRR revenue leaderboard. Returns the top 100 startups ranked by the selected metric from the public TrustMRR leaderboard. Revenue and MRR figures are verified through supported payment providers.\n- **Params:** `metric` (string, optional) — Leaderboard metric to rank by (default mrr)\n\n### `trustmrr_marketplace`\n\n- **HTTP:** `GET /trustmrr/marketplace`\n- **What:** Get TrustMRR marketplace snapshot. Returns the public TrustMRR marketplace snapshot: the 25 most recently listed startups for sale and the current 25 best deals ranked by TrustMRR's recency-aware deal score. Revenue figures are verified through supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_startup`\n\n- **HTTP:** `GET /trustmrr/startup/{slug}`\n- **What:** Get TrustMRR startup detail. Returns the full verified profile for a single TrustMRR startup by slug: revenue and MRR, growth, asking price and marketplace status, tech stack, marketing channels, and TrustMRR's AI-generated business summary.\n- **Params:** `slug` (string, **required**) — TrustMRR startup slug\n\n### `trustmrr_startups`\n\n- **HTTP:** `GET /trustmrr/startups`\n- **What:** List all TrustMRR startups. Returns a paginated list of every startup in the TrustMRR directory, discovered from the site's public sitemap. Each entry is a slug you can pass to /trustmrr/startup/{slug} for the full verified profile — together these two endpoints let you enumerate and scrape the entire directory without the authenticated marketplace API.\n- **Params:** `page` (integer, optional) — 1-based page number (default 1); `page_size` (integer, optional) — Items per page (default 100, max 1000)\n\n## Trustpilot (7)\n\n### `trustpilot_business`\n\n- **HTTP:** `GET /trustpilot/business/{slug}`\n- **What:** Get Trustpilot business profile. Returns a summary Trustpilot business profile parsed from the public business page.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_related`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/related`\n- **What:** Get Trustpilot related businesses. Returns related company cards from Trustpilot's public business page rails.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_reviews`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/reviews`\n- **What:** Get Trustpilot business reviews. Returns paginated Trustpilot business reviews parsed from the public review page.\n- **Params:** `date_from` (string, optional) — Date range start in YYYY-MM-DD; currently rejected by upstream; `date_to` (string, optional) — Date range end in YYYY-MM-DD; currently rejected by upstream; `language` (string, optional) — Review language code used by Trustpilot; `page` (integer, optional) — 1-based page number; defaults to 1; `q` (string, optional) — Text search within reviews; `replied` (boolean, optional) — Filter to reviews with business replies; `slug` (string, **required**) — Trustpilot business slug; `stars` (integer, optional) — Filter by star rating from 1 to 5; `verified` (boolean, optional) — Filter to verified reviews\n\n### `trustpilot_business_search`\n\n- **HTTP:** `GET /trustpilot/business-units/search`\n- **What:** Search Trustpilot business units. Returns normalized business-unit search results from Trustpilot's JSON business-unit search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `page` (integer, optional) — 1-based page number; defaults to 1; `page_size` (integer, optional) — Results per page; defaults to 20, maximum 100; `q` (string, **required**) — Search query\n\n### `trustpilot_categories`\n\n- **HTTP:** `GET /trustpilot/categories`\n- **What:** Get Trustpilot categories. Returns the Trustpilot public category index grouped by top-level category.\n- **Params:** _none_\n\n### `trustpilot_category`\n\n- **HTTP:** `GET /trustpilot/category/{slug}`\n- **What:** Get Trustpilot category detail. Returns category metadata, company cards, and side rails from Trustpilot's public category page.\n- **Params:** `page` (integer, optional) — 1-based page number; defaults to 1; `slug` (string, **required**) — Trustpilot category slug\n\n### `trustpilot_category_search`\n\n- **HTTP:** `GET /trustpilot/categories/search`\n- **What:** Search Trustpilot categories. Returns normalized category search results from Trustpilot's JSON category search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `locale` (string, optional) — Locale in ll-CC format; defaults to en-US; `q` (string, **required**) — Search query; `size` (integer, optional) — Maximum number of categories; defaults to 20\n\n## Capterra (3)\n\n### `capterra_product`\n\n- **HTTP:** `GET /capterra/product`\n- **What:** Get a Capterra product. Returns a normalized Capterra product profile: name, description, category, and aggregate rating. Credential-free public Capterra data, rendered from the product page through proxied browser renderers.\n- **Params:** `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_reviews`\n\n- **HTTP:** `GET /capterra/product/reviews`\n- **What:** Get Capterra product reviews. Returns a page of normalized Capterra reviews (author, headline, rating) plus the product's aggregate rating. Credential-free public Capterra data, rendered from the reviews page through proxied browser renderers.\n- **Params:** `page` (integer, optional) — Page number (default 1); `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_search`\n\n- **HTTP:** `GET /capterra/search`\n- **What:** Search Capterra products. Returns Capterra search-result products (id, name, url, description, rating). Credential-free public Capterra data, rendered from the search page through proxied browser renderers. Note: Capterra renders a fallback product list even for queries with no genuine match, rather than a distinct empty-results page, so callers should treat low-relevance results as an upstream characteristic, not a bug.\n- **Params:** `q` (string, **required**) — Search query\n\n## BBB (9)\n\n### `bbb_business`\n\n- **HTTP:** `GET /bbb/business`\n- **What:** Get a Better Business Bureau business profile. Returns a normalized bbb.org business profile: BBB rating letter grade and reasons, accreditation status and since-date, years in business, BBB file/incorporation dates, entity type, contact info, business categories, social media, and a short latest-reviews preview. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_complaints`\n\n- **HTTP:** `GET /bbb/business/complaints`\n- **What:** Get a Better Business Bureau business's complaint history. Returns a business's BBB complaint history: total complaint count, complaints closed in the last 12 months, and per-complaint detail (date, type, status, narrative text, and any business response / customer answer thread). A business with no filed complaints returns total_complaints 0 and an empty complaints list -- this is a normal result, not an error. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_more_info`\n\n- **HTTP:** `GET /bbb/business/more-info`\n- **What:** Get a Better Business Bureau business's full rating reasons and service area. Returns a business's full per-factor \"Reasons for Rating\" list and full service-area list, from the separate BBB business profile /more-info sub-page. The bbb-business endpoint's own rating_reasons field is read from the main profile page and typically holds only one generic boilerplate bullet regardless of actual rating; this endpoint fetches the richer, business-specific list instead. Service area is business-conditional -- some businesses render no service-area section at all, in which case service_areas is empty. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_reviews`\n\n- **HTTP:** `GET /bbb/business/reviews`\n- **What:** Get a Better Business Bureau business's customer reviews. Returns a business's full customer-review list (author, star rating, date, text, and any business response thread), paginated 10 per page, plus the average star rating and total review count. Credential-free public Better Business Bureau data. Unlike the other bbb-business-* endpoints, this one is fetched with browser impersonation rather than plain direct HTTP -- see the family's maintenance note for why.\n- **Params:** `page` (integer, optional) — Result page (10 per page), default 1; `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_category`\n\n- **HTTP:** `GET /bbb/category`\n- **What:** Browse a Better Business Bureau category. Browses bbb.org businesses by category and location directly, without a free-text search query. Returns the same normalized business-result shape as bbb-search. Credential-free public Better Business Bureau data.\n- **Params:** `page` (integer, optional) — Result page, default 1; `url` (string, **required**) — BBB category browse URL, from a bbb-search result's related_categories\n\n### `bbb_scamtracker_detail`\n\n- **HTTP:** `GET /bbb/scamtracker/{id}`\n- **What:** Get a Better Business Bureau Scam Tracker report. Returns one normalized BBB Scam Tracker consumer scam report: description, dollars lost, targeted person's location, scammer location/email/phone/URL (when known), scam type, business name used, and date reported. Credential-free public Better Business Bureau data.\n- **Params:** `id` (string, **required**) — BBB Scam Tracker report id, from a bbb-scamtracker-search result's id or url\n\n### `bbb_scamtracker_search`\n\n- **HTTP:** `GET /bbb/scamtracker/search`\n- **What:** Search Better Business Bureau Scam Tracker reports. Searches bbb.org Scam Tracker's consumer-reported-scam database by free-text query, scam category, targeted-victim state/province, reported-scammer state/province, report-date range, and/or dollar-loss range, paginated 10 results/page. Omit every filter to browse the most-recent-first feed. Credential-free public Better Business Bureau data. This is a separate BBB dataset from the bbb-search/bbb-business/bbb-business-complaints business-rating family -- consumer-reported scam incidents, not business ratings.\n- **Params:** `date_from` (string, optional) — Optional report-date range start (YYYY-MM-DD), inclusive. Must be set together with date_to; `date_to` (string, optional) — Optional report-date range end (YYYY-MM-DD), inclusive. Must be set together with date_from; `max_dollars_lost` (integer, optional) — Optional maximum reported dollar loss. Must be set together with min_dollars_lost; `min_dollars_lost` (integer, optional) — Optional minimum reported dollar loss. Must be set together with max_dollars_lost; `page` (integer, optional) — Result page (10 per page), default 1; `query` (string, optional) — Free-text search (phone number, website, email, business name, scam ID, description). Omit to browse the most-recent feed; `scam_type` (string, optional) — Scam category filter; `scammer_state` (string, optional) — Optional 2-letter reported-scammer state/province code (US state or Canadian province) -- where the scammer is reported to be, not the victim; `state` (string, optional) — Optional 2-letter targeted-victim state/province code (US state or Canadian province)\n\n### `bbb_scamtracker_state_stats`\n\n- **HTTP:** `GET /bbb/scamtracker/state-stats`\n- **What:** Get Better Business Bureau Scam Tracker state/province aggregate stats. Returns aggregate scam-report stats per US state and Canadian province for a given time window: report counts, dollar losses, per-capita rates, year-over-year change, and top scam-type breakdown. This calls the same JSON API the BBB Scam Tracker heatmap dashboard's own frontend uses -- not an HTML scrape. Credential-free public Better Business Bureau data.\n- **Params:** `period` (string, optional) — Aggregation window, default 90\n\n### `bbb_search`\n\n- **HTTP:** `GET /bbb/search`\n- **What:** Search Better Business Bureau businesses. Searches bbb.org for businesses by name or category near a location. Returns each business's BBB rating letter grade, accreditation status, categories, service areas, contact info, and profile URL. Credential-free public Better Business Bureau data.\n- **Params:** `location` (string, **required**) — City and state (e.g. 'Austin, TX') or a ZIP code; `page` (integer, optional) — Result page, default 1; `query` (string, **required**) — Business name or category/service keyword\n\n## Kickstarter (4)\n\n### `kickstarter_comments`\n\n- **HTTP:** `GET /kickstarter/comments`\n- **What:** Get a Kickstarter campaign's comments. Returns the first page of one Kickstarter campaign's comments feed (Kickstarter's own server-rendered initial batch, typically 40-60 comments; total_count reports the feed's real total). Each comment includes the author, whether the author is the creator (a reply), the posted timestamp, and the comment text. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_discover`\n\n- **HTTP:** `GET /kickstarter/discover`\n- **What:** Browse or search Kickstarter's Discover surface. Returns one page of Kickstarter's own Discover results -- browse by category id and/or a free-text search term, sorted by magic/popularity/newest/end_date/most_funded, optionally filtered by campaign state and/or restricted to staff picks. Each result includes the campaign's funding snapshot (goal, pledged, percent funded, backers), category, location, creator, and cover photo.\n- **Params:** `category_id` (integer, optional) — Kickstarter's own numeric category id (top-level or sub-category), e.g. 16 for Technology; `page` (integer, optional) — 1-based page number; `sort` (string, optional) — Result order; `staff_pick_only` (boolean, optional) — Restrict results to Kickstarter's own \\; `state` (array, optional) — Repeatable campaign state filter; `term` (string, optional) — Free-text search query\n\n### `kickstarter_project`\n\n- **HTTP:** `GET /kickstarter/project`\n- **What:** Get a Kickstarter campaign's detail. Returns one Kickstarter campaign's detail: funding snapshot (goal, pledged, percent funded, backers, state, dates), category, creator, cover photo, story text, risks & challenges, update/comment/FAQ counts, and reward/pledge tiers. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi. Reward tiers are best-effort -- see the endpoint's documentation for when they may be omitted.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_updates`\n\n- **HTTP:** `GET /kickstarter/updates`\n- **What:** Get a Kickstarter campaign's updates feed. Returns one Kickstarter campaign's full updates feed: for each update, its number, title, author, whether the author is the creator, publish date, body text, and comment count. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\nFile v1.0.18:skill-card.md\n\n## Description:\n\nResearches software products, business reputation, startup revenue, and crowdfunding campaigns through Crawlora's public-data API.\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\nResearchers, procurement teams, and other users assessing vendors or products use this skill to compare public reviews, business profiles, revenue listings, product launches, and campaign updates before making decisions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Business names, product names, campaign identifiers, and search queries are sent to Crawlora.\n\nMitigation: Do not submit secrets, credentials, private customer data, or confidential investigation details in searches.\n\n## Reference(s):\n\n- [Endpoint reference](artifact/reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill listing](https://clawhub.ai/crawlora-org/skills/business-review-trust-research)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance, Shell commands]\n\n**Output Format:** [Markdown research summaries and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Public-source results may be paginated; a Crawlora API key is required.]\n\n## Skill Version(s):\n\n1.0.18 (source: ClawHub 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.17: 5 files, 12417 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (5115b), skill-card.md (2388b), SKILL.md (6815b), _meta.json (150b)\n\nFile v1.0.17:SKILL.md\n\n---\nname: business-review-trust-research\ndescription: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.\n---\n\n# Business & software review research\n\nLook up product launches, business reputation, verified startup revenue,\nsoftware reviews, and crowdfunding campaigns across six platforms as\nnormalized JSON from the Crawlora API — no scraping review-site pages.\n\n## When to use this skill\n\n- \"What did this product launch as on Product Hunt? Who made it?\"\n- \"What are people saying about <company> on Trustpilot?\"\n- \"How much revenue does this startup actually make?\" (TrustMRR — payment-provider-verified)\n- \"What are the reviews / alternatives for this software?\" (Capterra)\n- \"Is this business BBB accredited? What's its rating, and any complaints or scam reports against it?\" (BBB)\n- \"How's this Kickstarter campaign doing? What updates has the creator posted?\"\n- Vendor due-diligence before buying or partnering.\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. **Product Hunt** — `/producthunt/search` (`query`) to find a product\n   `id`; `/producthunt/product/{id}` for detail (+ `/about`, `/makers`,\n   `/launches`, `/reviews`, `/alternatives`, `/customers`).\n   `/producthunt/leaderboard` and `/producthunt/category/{slug}/products`\n   cover browsing/trending.\n2. **Trustpilot** — `/trustpilot/business-units/search` (`q`) to find a\n   business `slug`; `/trustpilot/business/{slug}` for the profile (+\n   `/reviews`, `/related`). `/trustpilot/categories` / `/categories/search`\n   browse by industry.\n3. **TrustMRR** — `/trustmrr/startups` to browse, or `/trustmrr/startup/{slug}`\n   for one company's payment-provider-verified revenue profile (see also\n   the `crawlora-datasets` skill's `trustmrr` dataset for bulk/aggregate\n   queries). `/trustmrr/leaderboard` ranks by MRR; `/trustmrr/categories`\n   browses by category.\n4. **Capterra** — `/capterra/search` (`q`) to find a `product_id`, then\n   `/capterra/product` for detail and `/capterra/product/reviews` for user reviews.\n5. **BBB (Better Business Bureau)** — `/bbb/search` (`q`) to find a business\n   profile URL, then `/bbb/business` for the profile (rating, accreditation)\n   plus `/bbb/business/reviews`, `/bbb/business/complaints`, and\n   `/bbb/business/more-info` for rating reasons and service area.\n   `/bbb/category` browses by industry; `/bbb/scamtracker/search` and\n   `/bbb/scamtracker/{id}` cover consumer-reported scam listings, with\n   `/bbb/scamtracker/state-stats` for state/province aggregates.\n6. **Kickstarter** — `/kickstarter/discover` (`term` free-text and/or\n   `category_id`, plus `state`/`sort`/`staff_pick_only`) to browse or\n   search campaigns, then `/kickstarter/project` (`creator`+`slug`, both\n   the corresponding path segments of the campaign URL) for the funding\n   snapshot (goal, pledged, percent funded, backers, status).\n   `/kickstarter/updates` and `/kickstarter/comments` (same `creator`+`slug`)\n   cover the creator's update feed and the campaign's comment thread.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | 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 every Product\nHunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter endpoint this\nskill uses.\n\n## Examples\n\n- **Vendor due diligence:** `/trustpilot/business/{slug}` (reputation) +\n  `/capterra/product` + `/capterra/product/reviews` (feature-level\n  feedback) before signing a software contract.\n- **Launch retrospective:** `/producthunt/product/{id}` + `/launches` +\n  `/makers` to see how a product performed and who built it.\n- **Bootstrapped-revenue research:** `/trustmrr/startup/{slug}` for one\n  company's verified MRR trend, or `/trustmrr/leaderboard` for the top\n  earners in a category.\n- **Local-business trust check:** `/bbb/search` + `/bbb/business` (rating,\n  accreditation) + `/bbb/business/complaints` before hiring a contractor\n  or vendor; cross-check `/bbb/scamtracker/search` for reported scams.\n- **Campaign due diligence:** `/kickstarter/project` (funding snapshot) +\n  `/kickstarter/updates` (has the creator been communicating?) before\n  backing a campaign.\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 listing/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Trustpilot's `slug` is usually the business's domain** (e.g.\n  `acmecorp.com`), not a display name — resolve via\n  `/trustpilot/business-units/search` if unsure.\n- **Kickstarter's `creator`+`slug` are the two path segments of a project\n  URL** (`kickstarter.com/projects/{creator}/{slug}`) — copy them directly\n  from a campaign link or a `/kickstarter/discover` result rather than\n  guessing.\n- Reviews/lists are paginated — pass `page` to walk beyond the first page.\n\nFile v1.0.17:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"business-review-trust-research\",\n  \"version\": \"1.0.17\",\n  \"publishedAt\": 1789640376045\n}\n\nFile v1.0.17:reference/endpoints.md\n\n# business-review-trust-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**41 endpoints across 6 platform group(s).**\n\n## ProductHunt (11)\n\n### `producthunt_about`\n\n- **HTTP:** `GET /producthunt/product/{id}/about`\n- **What:** Retrieve Product Hunt product about page. Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_alternatives`\n\n- **HTTP:** `GET /producthunt/product/{id}/alternatives`\n- **What:** Retrieve Product Hunt product alternatives. Returns paginated alternatives, tags, and related discussions for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `first` (integer, optional) — Page size; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Sort order; `tags` (string, optional) — Comma-separated tag slugs\n\n### `producthunt_category`\n\n- **HTTP:** `GET /producthunt/category/{slug}`\n- **What:** Retrieve Product Hunt category details. Returns the category page payload for a Product Hunt category slug.\n- **Params:** `slug` (string, **required**) — Product Hunt category slug\n\n### `producthunt_category_products`\n\n- **HTTP:** `GET /producthunt/category/{slug}/products`\n- **What:** Retrieve Product Hunt category products. Returns the products in a Product Hunt category (now backed by Product Hunt topics), cursor-paginated. Pass the `cursor` from a previous response's `end_cursor` to page; `page_size` controls the batch size. `page`, `featured_only`, `order` and `tags` are accepted for compatibility but no longer affect the result.\n- **Params:** `cursor` (string, optional) — Pagination cursor from a previous response's end_cursor; `featured_only` (boolean, optional) — Accepted for compatibility; no longer affects results; `order` (string, optional) — Accepted for compatibility; no longer affects results; `page` (integer, optional) — Accepted for compatibility; use cursor to paginate; `page_size` (integer, optional) — Page size (number of products); `slug` (string, **required**) — Product Hunt category slug; `tags` (string, optional) — Accepted for compatibility; no longer affects results\n\n### `producthunt_customers`\n\n- **HTTP:** `GET /producthunt/product/{id}/customers`\n- **What:** Retrieve Product Hunt product customers. Returns paginated customer products for a Product Hunt product using Product Hunt's ProductCustomersPage GraphQL operation.\n- **Params:** `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt customers order; `page` (integer, optional) — Page number; `page_size` (integer, optional) — Results per page\n\n### `producthunt_launches`\n\n- **HTTP:** `GET /producthunt/product/{id}/launches`\n- **What:** Retrieve Product Hunt product launches. Returns paginated launch posts for a Product Hunt product using Product Hunt's ProductPageLaunches GraphQL operation.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt launch order\n\n### `producthunt_leaderboard`\n\n- **HTTP:** `GET /producthunt/leaderboard`\n- **What:** Retrieve Product Hunt leaderboard. Fetches Product Hunt leaderboard data for daily, weekly, monthly, or yearly scopes via Product Hunt GraphQL.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `date` (string, optional) — Anchor date in YYYY-MM-DD format. Used to derive missing year/month/day/week values.; `day` (integer, optional) — Daily day override; `featured` (boolean, optional) — Featured products only; `month` (integer, optional) — Daily/monthly month override; `order` (string, optional) — Ranking order override. Defaults to scope rank enum.; `scope` (string, optional) — Leaderboard scope: daily, weekly, monthly, yearly; `week` (integer, optional) — Weekly ISO week override; `year` (integer, optional) — Leaderboard year override\n\n### `producthunt_makers`\n\n- **HTTP:** `GET /producthunt/product/{id}/makers`\n- **What:** Retrieve Product Hunt product makers. Returns maker items for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_product`\n\n- **HTTP:** `GET /producthunt/product/{id}`\n- **What:** Retrieve Product Hunt product details. Returns the core Product Hunt product details.\n- **Params:** `id` (string, **required**) — Product Hunt slug or numeric ID\n\n### `producthunt_reviews`\n\n- **HTTP:** `GET /producthunt/product/{id}/reviews`\n- **What:** Retrieve Product Hunt product detailed reviews. Returns detailed review items for a Product Hunt product.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_search`\n\n- **HTTP:** `GET /producthunt/search`\n- **What:** Search for products, users, or launches on Product Hunt. Performs a full-text Product Hunt search and returns matching products, users, or launches.\n- **Params:** `featured` (boolean, optional) — Launch search only: featured launches only; `page` (integer, optional) — Page number (1-based); `query` (string, **required**) — Search keywords; `topics` (string, optional) — Launch search only: comma-separated topic slugs; `type` (string, optional) — Result type: **product** (default), **user**, or **launch**\n\n## TrustMRR (7)\n\n### `trustmrr_acquire`\n\n- **HTTP:** `GET /trustmrr/acquire`\n- **What:** Get TrustMRR acquisition listings. Returns the for-sale startups rendered on the public TrustMRR /acquire marketplace page, with deal metrics (asking price, revenue, multiple, growth). Verified revenue figures come from supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_categories`\n\n- **HTTP:** `GET /trustmrr/categories`\n- **What:** Get TrustMRR categories. Returns the TrustMRR startup category directory (slug, label, description, and keywords for each category).\n- **Params:** _none_\n\n### `trustmrr_category`\n\n- **HTTP:** `GET /trustmrr/category/{slug}`\n- **What:** Get TrustMRR category detail. Returns a single TrustMRR category page and the startups listed under it, with verified revenue and MRR figures.\n- **Params:** `slug` (string, **required**) — TrustMRR category slug\n\n### `trustmrr_leaderboard`\n\n- **HTTP:** `GET /trustmrr/leaderboard`\n- **What:** Get TrustMRR revenue leaderboard. Returns the top 100 startups ranked by the selected metric from the public TrustMRR leaderboard. Revenue and MRR figures are verified through supported payment providers.\n- **Params:** `metric` (string, optional) — Leaderboard metric to rank by (default mrr)\n\n### `trustmrr_marketplace`\n\n- **HTTP:** `GET /trustmrr/marketplace`\n- **What:** Get TrustMRR marketplace snapshot. Returns the public TrustMRR marketplace snapshot: the 25 most recently listed startups for sale and the current 25 best deals ranked by TrustMRR's recency-aware deal score. Revenue figures are verified through supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_startup`\n\n- **HTTP:** `GET /trustmrr/startup/{slug}`\n- **What:** Get TrustMRR startup detail. Returns the full verified profile for a single TrustMRR startup by slug: revenue and MRR, growth, asking price and marketplace status, tech stack, marketing channels, and TrustMRR's AI-generated business summary.\n- **Params:** `slug` (string, **required**) — TrustMRR startup slug\n\n### `trustmrr_startups`\n\n- **HTTP:** `GET /trustmrr/startups`\n- **What:** List all TrustMRR startups. Returns a paginated list of every startup in the TrustMRR directory, discovered from the site's public sitemap. Each entry is a slug you can pass to /trustmrr/startup/{slug} for the full verified profile — together these two endpoints let you enumerate and scrape the entire directory without the authenticated marketplace API.\n- **Params:** `page` (integer, optional) — 1-based page number (default 1); `page_size` (integer, optional) — Items per page (default 100, max 1000)\n\n## Trustpilot (7)\n\n### `trustpilot_business`\n\n- **HTTP:** `GET /trustpilot/business/{slug}`\n- **What:** Get Trustpilot business profile. Returns a summary Trustpilot business profile parsed from the public business page.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_related`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/related`\n- **What:** Get Trustpilot related businesses. Returns related company cards from Trustpilot's public business page rails.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_reviews`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/reviews`\n- **What:** Get Trustpilot business reviews. Returns paginated Trustpilot business reviews parsed from the public review page.\n- **Params:** `date_from` (string, optional) — Date range start in YYYY-MM-DD; currently rejected by upstream; `date_to` (string, optional) — Date range end in YYYY-MM-DD; currently rejected by upstream; `language` (string, optional) — Review language code used by Trustpilot; `page` (integer, optional) — 1-based page number; defaults to 1; `q` (string, optional) — Text search within reviews; `replied` (boolean, optional) — Filter to reviews with business replies; `slug` (string, **required**) — Trustpilot business slug; `stars` (integer, optional) — Filter by star rating from 1 to 5; `verified` (boolean, optional) — Filter to verified reviews\n\n### `trustpilot_business_search`\n\n- **HTTP:** `GET /trustpilot/business-units/search`\n- **What:** Search Trustpilot business units. Returns normalized business-unit search results from Trustpilot's JSON business-unit search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `page` (integer, optional) — 1-based page number; defaults to 1; `page_size` (integer, optional) — Results per page; defaults to 20, maximum 100; `q` (string, **required**) — Search query\n\n### `trustpilot_categories`\n\n- **HTTP:** `GET /trustpilot/categories`\n- **What:** Get Trustpilot categories. Returns the Trustpilot public category index grouped by top-level category.\n- **Params:** _none_\n\n### `trustpilot_category`\n\n- **HTTP:** `GET /trustpilot/category/{slug}`\n- **What:** Get Trustpilot category detail. Returns category metadata, company cards, and side rails from Trustpilot's public category page.\n- **Params:** `page` (integer, optional) — 1-based page number; defaults to 1; `slug` (string, **required**) — Trustpilot category slug\n\n### `trustpilot_category_search`\n\n- **HTTP:** `GET /trustpilot/categories/search`\n- **What:** Search Trustpilot categories. Returns normalized category search results from Trustpilot's JSON category search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `locale` (string, optional) — Locale in ll-CC format; defaults to en-US; `q` (string, **required**) — Search query; `size` (integer, optional) — Maximum number of categories; defaults to 20\n\n## Capterra (3)\n\n### `capterra_product`\n\n- **HTTP:** `GET /capterra/product`\n- **What:** Get a Capterra product. Returns a normalized Capterra product profile: name, description, category, and aggregate rating. Credential-free public Capterra data, rendered from the product page through proxied browser renderers.\n- **Params:** `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_reviews`\n\n- **HTTP:** `GET /capterra/product/reviews`\n- **What:** Get Capterra product reviews. Returns a page of normalized Capterra reviews (author, headline, rating) plus the product's aggregate rating. Credential-free public Capterra data, rendered from the reviews page through proxied browser renderers.\n- **Params:** `page` (integer, optional) — Page number (default 1); `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_search`\n\n- **HTTP:** `GET /capterra/search`\n- **What:** Search Capterra products. Returns Capterra search-result products (id, name, url, description, rating). Credential-free public Capterra data, rendered from the search page through proxied browser renderers. Note: Capterra renders a fallback product list even for queries with no genuine match, rather than a distinct empty-results page, so callers should treat low-relevance results as an upstream characteristic, not a bug.\n- **Params:** `q` (string, **required**) — Search query\n\n## BBB (9)\n\n### `bbb_business`\n\n- **HTTP:** `GET /bbb/business`\n- **What:** Get a Better Business Bureau business profile. Returns a normalized bbb.org business profile: BBB rating letter grade and reasons, accreditation status and since-date, years in business, BBB file/incorporation dates, entity type, contact info, business categories, social media, and a short latest-reviews preview. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_complaints`\n\n- **HTTP:** `GET /bbb/business/complaints`\n- **What:** Get a Better Business Bureau business's complaint history. Returns a business's BBB complaint history: total complaint count, complaints closed in the last 12 months, and per-complaint detail (date, type, status, narrative text, and any business response / customer answer thread). A business with no filed complaints returns total_complaints 0 and an empty complaints list -- this is a normal result, not an error. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_more_info`\n\n- **HTTP:** `GET /bbb/business/more-info`\n- **What:** Get a Better Business Bureau business's full rating reasons and service area. Returns a business's full per-factor \"Reasons for Rating\" list and full service-area list, from the separate BBB business profile /more-info sub-page. The bbb-business endpoint's own rating_reasons field is read from the main profile page and typically holds only one generic boilerplate bullet regardless of actual rating; this endpoint fetches the richer, business-specific list instead. Service area is business-conditional -- some businesses render no service-area section at all, in which case service_areas is empty. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_reviews`\n\n- **HTTP:** `GET /bbb/business/reviews`\n- **What:** Get a Better Business Bureau business's customer reviews. Returns a business's full customer-review list (author, star rating, date, text, and any business response thread), paginated 10 per page, plus the average star rating and total review count. Credential-free public Better Business Bureau data. Unlike the other bbb-business-* endpoints, this one is fetched with browser impersonation rather than plain direct HTTP -- see the family's maintenance note for why.\n- **Params:** `page` (integer, optional) — Result page (10 per page), default 1; `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_category`\n\n- **HTTP:** `GET /bbb/category`\n- **What:** Browse a Better Business Bureau category. Browses bbb.org businesses by category and location directly, without a free-text search query. Returns the same normalized business-result shape as bbb-search. Credential-free public Better Business Bureau data.\n- **Params:** `page` (integer, optional) — Result page, default 1; `url` (string, **required**) — BBB category browse URL, from a bbb-search result's related_categories\n\n### `bbb_scamtracker_detail`\n\n- **HTTP:** `GET /bbb/scamtracker/{id}`\n- **What:** Get a Better Business Bureau Scam Tracker report. Returns one normalized BBB Scam Tracker consumer scam report: description, dollars lost, targeted person's location, scammer location/email/phone/URL (when known), scam type, business name used, and date reported. Credential-free public Better Business Bureau data.\n- **Params:** `id` (string, **required**) — BBB Scam Tracker report id, from a bbb-scamtracker-search result's id or url\n\n### `bbb_scamtracker_search`\n\n- **HTTP:** `GET /bbb/scamtracker/search`\n- **What:** Search Better Business Bureau Scam Tracker reports. Searches bbb.org Scam Tracker's consumer-reported-scam database by free-text query, scam category, targeted-victim state/province, reported-scammer state/province, report-date range, and/or dollar-loss range, paginated 10 results/page. Omit every filter to browse the most-recent-first feed. Credential-free public Better Business Bureau data. This is a separate BBB dataset from the bbb-search/bbb-business/bbb-business-complaints business-rating family -- consumer-reported scam incidents, not business ratings.\n- **Params:** `date_from` (string, optional) — Optional report-date range start (YYYY-MM-DD), inclusive. Must be set together with date_to; `date_to` (string, optional) — Optional report-date range end (YYYY-MM-DD), inclusive. Must be set together with date_from; `max_dollars_lost` (integer, optional) — Optional maximum reported dollar loss. Must be set together with min_dollars_lost; `min_dollars_lost` (integer, optional) — Optional minimum reported dollar loss. Must be set together with max_dollars_lost; `page` (integer, optional) — Result page (10 per page), default 1; `query` (string, optional) — Free-text search (phone number, website, email, business name, scam ID, description). Omit to browse the most-recent feed; `scam_type` (string, optional) — Scam category filter; `scammer_state` (string, optional) — Optional 2-letter reported-scammer state/province code (US state or Canadian province) -- where the scammer is reported to be, not the victim; `state` (string, optional) — Optional 2-letter targeted-victim state/province code (US state or Canadian province)\n\n### `bbb_scamtracker_state_stats`\n\n- **HTTP:** `GET /bbb/scamtracker/state-stats`\n- **What:** Get Better Business Bureau Scam Tracker state/province aggregate stats. Returns aggregate scam-report stats per US state and Canadian province for a given time window: report counts, dollar losses, per-capita rates, year-over-year change, and top scam-type breakdown. This calls the same JSON API the BBB Scam Tracker heatmap dashboard's own frontend uses -- not an HTML scrape. Credential-free public Better Business Bureau data.\n- **Params:** `period` (string, optional) — Aggregation window, default 90\n\n### `bbb_search`\n\n- **HTTP:** `GET /bbb/search`\n- **What:** Search Better Business Bureau businesses. Searches bbb.org for businesses by name or category near a location. Returns each business's BBB rating letter grade, accreditation status, categories, service areas, contact info, and profile URL. Credential-free public Better Business Bureau data.\n- **Params:** `location` (string, **required**) — City and state (e.g. 'Austin, TX') or a ZIP code; `page` (integer, optional) — Result page, default 1; `query` (string, **required**) — Business name or category/service keyword\n\n## Kickstarter (4)\n\n### `kickstarter_comments`\n\n- **HTTP:** `GET /kickstarter/comments`\n- **What:** Get a Kickstarter campaign's comments. Returns the first page of one Kickstarter campaign's comments feed (Kickstarter's own server-rendered initial batch, typically 40-60 comments; total_count reports the feed's real total). Each comment includes the author, whether the author is the creator (a reply), the posted timestamp, and the comment text. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_discover`\n\n- **HTTP:** `GET /kickstarter/discover`\n- **What:** Browse or search Kickstarter's Discover surface. Returns one page of Kickstarter's own Discover results -- browse by category id and/or a free-text search term, sorted by magic/popularity/newest/end_date/most_funded, optionally filtered by campaign state and/or restricted to staff picks. Each result includes the campaign's funding snapshot (goal, pledged, percent funded, backers), category, location, creator, and cover photo.\n- **Params:** `category_id` (integer, optional) — Kickstarter's own numeric category id (top-level or sub-category), e.g. 16 for Technology; `page` (integer, optional) — 1-based page number; `sort` (string, optional) — Result order; `staff_pick_only` (boolean, optional) — Restrict results to Kickstarter's own \\; `state` (array, optional) — Repeatable campaign state filter; `term` (string, optional) — Free-text search query\n\n### `kickstarter_project`\n\n- **HTTP:** `GET /kickstarter/project`\n- **What:** Get a Kickstarter campaign's detail. Returns one Kickstarter campaign's detail: funding snapshot (goal, pledged, percent funded, backers, state, dates), category, creator, cover photo, story text, risks & challenges, update/comment/FAQ counts, and reward/pledge tiers. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi. Reward tiers are best-effort -- see the endpoint's documentation for when they may be omitted.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_updates`\n\n- **HTTP:** `GET /kickstarter/updates`\n- **What:** Get a Kickstarter campaign's updates feed. Returns one Kickstarter campaign's full updates feed: for each update, its number, title, author, whether the author is the creator, publish date, body text, and comment count. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\nFile v1.0.17:skill-card.md\n\n## Description:\n\nResearches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API, covering Product Hunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter, and returns 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 research agents use this skill for product, vendor, local-business, startup-revenue, software-review, and crowdfunding due diligence across public review and listing sources.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends Crawlora API keys and business, product, vendor, or campaign search queries to a third-party API.\n\nMitigation: Use only approved Crawlora API credentials, keep the key in CRAWLORA_API_KEY, and avoid confidential company names or vendor information unless that third-party API use is acceptable.\n\nRisk: Bulk paging or review collection can create rate-limit or terms-of-use concerns.\n\nMitigation: Limit pagination to the user need, respect Crawlora and upstream platform terms, and avoid broad collection where a focused lookup is sufficient.\n\nRisk: Business ratings, reviews, complaints, revenue, and campaign data may be incomplete, stale, or source-biased.\n\nMitigation: Treat API results as research inputs and cross-check material decisions against primary business, platform, or contractual sources.\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/business-review-trust-research)\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 sends public business, product, review, and campaign queries to the Crawlora API.]\n\n## Skill Version(s):\n\n1.0.17 (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.16: 5 files, 12742 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (6020b), skill-card.md (2098b), SKILL.md (6815b), _meta.json (150b)\n\nFile v1.0.16:SKILL.md\n\n---\nname: business-review-trust-research\ndescription: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.\n---\n\n# Business & software review research\n\nLook up product launches, business reputation, verified startup revenue,\nsoftware reviews, and crowdfunding campaigns across six platforms as\nnormalized JSON from the Crawlora API — no scraping review-site pages.\n\n## When to use this skill\n\n- \"What did this product launch as on Product Hunt? Who made it?\"\n- \"What are people saying about <company> on Trustpilot?\"\n- \"How much revenue does this startup actually make?\" (TrustMRR — payment-provider-verified)\n- \"What are the reviews / alternatives for this software?\" (Capterra)\n- \"Is this business BBB accredited? What's its rating, and any complaints or scam reports against it?\" (BBB)\n- \"How's this Kickstarter campaign doing? What updates has the creator posted?\"\n- Vendor due-diligence before buying or partnering.\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. **Product Hunt** — `/producthunt/search` (`query`) to find a product\n   `id`; `/producthunt/product/{id}` for detail (+ `/about`, `/makers`,\n   `/launches`, `/reviews`, `/alternatives`, `/customers`).\n   `/producthunt/leaderboard` and `/producthunt/category/{slug}/products`\n   cover browsing/trending.\n2. **Trustpilot** — `/trustpilot/business-units/search` (`q`) to find a\n   business `slug`; `/trustpilot/business/{slug}` for the profile (+\n   `/reviews`, `/related`). `/trustpilot/categories` / `/categories/search`\n   browse by industry.\n3. **TrustMRR** — `/trustmrr/startups` to browse, or `/trustmrr/startup/{slug}`\n   for one company's payment-provider-verified revenue profile (see also\n   the `crawlora-datasets` skill's `trustmrr` dataset for bulk/aggregate\n   queries). `/trustmrr/leaderboard` ranks by MRR; `/trustmrr/categories`\n   browses by category.\n4. **Capterra** — `/capterra/search` (`q`) to find a `product_id`, then\n   `/capterra/product` for detail and `/capterra/product/reviews` for user reviews.\n5. **BBB (Better Business Bureau)** — `/bbb/search` (`q`) to find a business\n   profile URL, then `/bbb/business` for the profile (rating, accreditation)\n   plus `/bbb/business/reviews`, `/bbb/business/complaints`, and\n   `/bbb/business/more-info` for rating reasons and service area.\n   `/bbb/category` browses by industry; `/bbb/scamtracker/search` and\n   `/bbb/scamtracker/{id}` cover consumer-reported scam listings, with\n   `/bbb/scamtracker/state-stats` for state/province aggregates.\n6. **Kickstarter** — `/kickstarter/discover` (`term` free-text and/or\n   `category_id`, plus `state`/`sort`/`staff_pick_only`) to browse or\n   search campaigns, then `/kickstarter/project` (`creator`+`slug`, both\n   the corresponding path segments of the campaign URL) for the funding\n   snapshot (goal, pledged, percent funded, backers, status).\n   `/kickstarter/updates` and `/kickstarter/comments` (same `creator`+`slug`)\n   cover the creator's update feed and the campaign's comment thread.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | 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 every Product\nHunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter endpoint this\nskill uses.\n\n## Examples\n\n- **Vendor due diligence:** `/trustpilot/business/{slug}` (reputation) +\n  `/capterra/product` + `/capterra/product/reviews` (feature-level\n  feedback) before signing a software contract.\n- **Launch retrospective:** `/producthunt/product/{id}` + `/launches` +\n  `/makers` to see how a product performed and who built it.\n- **Bootstrapped-revenue research:** `/trustmrr/startup/{slug}` for one\n  company's verified MRR trend, or `/trustmrr/leaderboard` for the top\n  earners in a category.\n- **Local-business trust check:** `/bbb/search` + `/bbb/business` (rating,\n  accreditation) + `/bbb/business/complaints` before hiring a contractor\n  or vendor; cross-check `/bbb/scamtracker/search` for reported scams.\n- **Campaign due diligence:** `/kickstarter/project` (funding snapshot) +\n  `/kickstarter/updates` (has the creator been communicating?) before\n  backing a campaign.\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 listing/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Trustpilot's `slug` is usually the business's domain** (e.g.\n  `acmecorp.com`), not a display name — resolve via\n  `/trustpilot/business-units/search` if unsure.\n- **Kickstarter's `creator`+`slug` are the two path segments of a project\n  URL** (`kickstarter.com/projects/{creator}/{slug}`) — copy them directly\n  from a campaign link or a `/kickstarter/discover` result rather than\n  guessing.\n- Reviews/lists are paginated — pass `page` to walk beyond the first page.\n\nFile v1.0.16:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"business-review-trust-research\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1789349669608\n}\n\nFile v1.0.16:reference/endpoints.md\n\n# business-review-trust-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**41 endpoints across 6 platform group(s).**\n\n## ProductHunt (11)\n\n### `producthunt_about`\n\n- **HTTP:** `GET /producthunt/product/{id}/about`\n- **What:** Retrieve Product Hunt product about page. Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_alternatives`\n\n- **HTTP:** `GET /producthunt/product/{id}/alternatives`\n- **What:** Retrieve Product Hunt product alternatives. Returns paginated alternatives, tags, and related discussions for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `first` (integer, optional) — Page size; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Sort order; `tags` (string, optional) — Comma-separated tag slugs\n\n### `producthunt_category`\n\n- **HTTP:** `GET /producthunt/category/{slug}`\n- **What:** Retrieve Product Hunt category details. Returns the category page payload for a Product Hunt category slug.\n- **Params:** `slug` (string, **required**) — Product Hunt category slug\n\n### `producthunt_category_products`\n\n- **HTTP:** `GET /producthunt/category/{slug}/products`\n- **What:** Retrieve Product Hunt category products. Returns the products in a Product Hunt category (now backed by Product Hunt topics), cursor-paginated. Pass the `cursor` from a previous response's `end_cursor` to page; `page_size` controls the batch size. `page`, `featured_only`, `order` and `tags` are accepted for compatibility but no longer affect the result.\n- **Params:** `cursor` (string, optional) — Pagination cursor from a previous response's end_cursor; `featured_only` (boolean, optional) — Accepted for compatibility; no longer affects results; `order` (string, optional) — Accepted for compatibility; no longer affects results; `page` (integer, optional) — Accepted for compatibility; use cursor to paginate; `page_size` (integer, optional) — Page size (number of products); `slug` (string, **required**) — Product Hunt category slug; `tags` (string, optional) — Accepted for compatibility; no longer affects results\n\n### `producthunt_customers`\n\n- **HTTP:** `GET /producthunt/product/{id}/customers`\n- **What:** Retrieve Product Hunt product customers. Returns paginated customer products for a Product Hunt product using Product Hunt's ProductCustomersPage GraphQL operation.\n- **Params:** `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt customers order; `page` (integer, optional) — Page number; `page_size` (integer, optional) — Results per page\n\n### `producthunt_launches`\n\n- **HTTP:** `GET /producthunt/product/{id}/launches`\n- **What:** Retrieve Product Hunt product launches. Returns paginated launch posts for a Product Hunt product using Product Hunt's ProductPageLaunches GraphQL operation.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt launch order\n\n### `producthunt_leaderboard`\n\n- **HTTP:** `GET /producthunt/leaderboard`\n- **What:** Retrieve Product Hunt leaderboard. Fetches Product Hunt leaderboard data for daily, weekly, monthly, or yearly scopes via Product Hunt GraphQL.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `date` (string, optional) — Anchor date in YYYY-MM-DD format. Used to derive missing year/month/day/week values.; `day` (integer, optional) — Daily day override; `featured` (boolean, optional) — Featured products only; `month` (integer, optional) — Daily/monthly month override; `order` (string, optional) — Ranking order override. Defaults to scope rank enum.; `scope` (string, optional) — Leaderboard scope: daily, weekly, monthly, yearly; `week` (integer, optional) — Weekly ISO week override; `year` (integer, optional) — Leaderboard year override\n\n### `producthunt_makers`\n\n- **HTTP:** `GET /producthunt/product/{id}/makers`\n- **What:** Retrieve Product Hunt product makers. Returns maker items for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_product`\n\n- **HTTP:** `GET /producthunt/product/{id}`\n- **What:** Retrieve Product Hunt product details. Returns the core Product Hunt product details.\n- **Params:** `id` (string, **required**) — Product Hunt slug or numeric ID\n\n### `producthunt_reviews`\n\n- **HTTP:** `GET /producthunt/product/{id}/reviews`\n- **What:** Retrieve Product Hunt product detailed reviews. Returns detailed review items for a Product Hunt product.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_search`\n\n- **HTTP:** `GET /producthunt/search`\n- **What:** Search for products, users, or launches on Product Hunt. Performs a full-text Product Hunt search and returns matching products, users, or launches.\n- **Params:** `featured` (boolean, optional) — Launch search only: featured launches only; `page` (integer, optional) — Page number (1-based); `query` (string, **required**) — Search keywords; `topics` (string, optional) — Launch search only: comma-separated topic slugs; `type` (string, optional) — Result type: **product** (default), **user**, or **launch**\n\n## TrustMRR (7)\n\n### `trustmrr_acquire`\n\n- **HTTP:** `GET /trustmrr/acquire`\n- **What:** Get TrustMRR acquisition listings. Returns the for-sale startups rendered on the public TrustMRR /acquire marketplace page, with deal metrics (asking price, revenue, multiple, growth). Verified revenue figures come from supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_categories`\n\n- **HTTP:** `GET /trustmrr/categories`\n- **What:** Get TrustMRR categories. Returns the TrustMRR startup category directory (slug, label, description, and keywords for each category).\n- **Params:** _none_\n\n### `trustmrr_category`\n\n- **HTTP:** `GET /trustmrr/category/{slug}`\n- **What:** Get TrustMRR category detail. Returns a single TrustMRR category page and the startups listed under it, with verified revenue and MRR figures.\n- **Params:** `slug` (string, **required**) — TrustMRR category slug\n\n### `trustmrr_leaderboard`\n\n- **HTTP:** `GET /trustmrr/leaderboard`\n- **What:** Get TrustMRR revenue leaderboard. Returns the top 100 startups ranked by the selected metric from the public TrustMRR leaderboard. Revenue and MRR figures are verified through supported payment providers.\n- **Params:** `metric` (string, optional) — Leaderboard metric to rank by (default mrr)\n\n### `trustmrr_marketplace`\n\n- **HTTP:** `GET /trustmrr/marketplace`\n- **What:** Get TrustMRR marketplace snapshot. Returns the public TrustMRR marketplace snapshot: the 25 most recently listed startups for sale and the current 25 best deals ranked by TrustMRR's recency-aware deal score. Revenue figures are verified through supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_startup`\n\n- **HTTP:** `GET /trustmrr/startup/{slug}`\n- **What:** Get TrustMRR startup detail. Returns the full verified profile for a single TrustMRR startup by slug: revenue and MRR, growth, asking price and marketplace status, tech stack, marketing channels, and TrustMRR's AI-generated business summary.\n- **Params:** `slug` (string, **required**) — TrustMRR startup slug\n\n### `trustmrr_startups`\n\n- **HTTP:** `GET /trustmrr/startups`\n- **What:** List all TrustMRR startups. Returns a paginated list of every startup in the TrustMRR directory, discovered from the site's public sitemap. Each entry is a slug you can pass to /trustmrr/startup/{slug} for the full verified profile — together these two endpoints let you enumerate and scrape the entire directory without the authenticated marketplace API.\n- **Params:** `page` (integer, optional) — 1-based page number (default 1); `page_size` (integer, optional) — Items per page (default 100, max 1000)\n\n## Trustpilot (7)\n\n### `trustpilot_business`\n\n- **HTTP:** `GET /trustpilot/business/{slug}`\n- **What:** Get Trustpilot business profile. Returns a summary Trustpilot business profile parsed from the public business page.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_related`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/related`\n- **What:** Get Trustpilot related businesses. Returns related company cards from Trustpilot's public business page rails.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_reviews`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/reviews`\n- **What:** Get Trustpilot business reviews. Returns paginated Trustpilot business reviews parsed from the public review page.\n- **Params:** `date_from` (string, optional) — Date range start in YYYY-MM-DD; currently rejected by upstream; `date_to` (string, optional) — Date range end in YYYY-MM-DD; currently rejected by upstream; `language` (string, optional) — Review language code used by Trustpilot; `page` (integer, optional) — 1-based page number; defaults to 1; `q` (string, optional) — Text search within reviews; `replied` (boolean, optional) — Filter to reviews with business replies; `slug` (string, **required**) — Trustpilot business slug; `stars` (integer, optional) — Filter by star rating from 1 to 5; `verified` (boolean, optional) — Filter to verified reviews\n\n### `trustpilot_business_search`\n\n- **HTTP:** `GET /trustpilot/business-units/search`\n- **What:** Search Trustpilot business units. Returns normalized business-unit search results from Trustpilot's JSON business-unit search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `page` (integer, optional) — 1-based page number; defaults to 1; `page_size` (integer, optional) — Results per page; defaults to 20, maximum 100; `q` (string, **required**) — Search query\n\n### `trustpilot_categories`\n\n- **HTTP:** `GET /trustpilot/categories`\n- **What:** Get Trustpilot categories. Returns the Trustpilot public category index grouped by top-level category.\n- **Params:** _none_\n\n### `trustpilot_category`\n\n- **HTTP:** `GET /trustpilot/category/{slug}`\n- **What:** Get Trustpilot category detail. Returns category metadata, company cards, and side rails from Trustpilot's public category page.\n- **Params:** `page` (integer, optional) — 1-based page number; defaults to 1; `slug` (string, **required**) — Trustpilot category slug\n\n### `trustpilot_category_search`\n\n- **HTTP:** `GET /trustpilot/categories/search`\n- **What:** Search Trustpilot categories. Returns normalized category search results from Trustpilot's JSON category search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `locale` (string, optional) — Locale in ll-CC format; defaults to en-US; `q` (string, **required**) — Search query; `size` (integer, optional) — Maximum number of categories; defaults to 20\n\n## Capterra (3)\n\n### `capterra_product`\n\n- **HTTP:** `GET /capterra/product`\n- **What:** Get a Capterra product. Returns a normalized Capterra product profile: name, description, category, and aggregate rating. Credential-free public Capterra data, rendered from the product page through proxied browser renderers.\n- **Params:** `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_reviews`\n\n- **HTTP:** `GET /capterra/product/reviews`\n- **What:** Get Capterra product reviews. Returns a page of normalized Capterra reviews (author, headline, rating) plus the product's aggregate rating. Credential-free public Capterra data, rendered from the reviews page through proxied browser renderers.\n- **Params:** `page` (integer, optional) — Page number (default 1); `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_search`\n\n- **HTTP:** `GET /capterra/search`\n- **What:** Search Capterra products. Returns Capterra search-result products (id, name, url, description, rating). Credential-free public Capterra data, rendered from the search page through proxied browser renderers. Note: Capterra renders a fallback product list even for queries with no genuine match, rather than a distinct empty-results page, so callers should treat low-relevance results as an upstream characteristic, not a bug.\n- **Params:** `q` (string, **required**) — Search query\n\n## BBB (9)\n\n### `bbb_business`\n\n- **HTTP:** `GET /bbb/business`\n- **What:** Get a Better Business Bureau business profile. Returns a normalized bbb.org business profile: BBB rating letter grade and reasons, accreditation status and since-date, years in business, BBB file/incorporation dates, entity type, contact info, business categories, social media, and a short latest-reviews preview. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_complaints`\n\n- **HTTP:** `GET /bbb/business/complaints`\n- **What:** Get a Better Business Bureau business's complaint history. Returns a business's BBB complaint history: total complaint count, complaints closed in the last 12 months, and per-complaint detail (date, type, status, narrative text, and any business response / customer answer thread). A business with no filed complaints returns total_complaints 0 and an empty complaints list -- this is a normal result, not an error. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_more_info`\n\n- **HTTP:** `GET /bbb/business/more-info`\n- **What:** Get a Better Business Bureau business's full rating reasons and service area. Returns a business's full per-factor \"Reasons for Rating\" list and full service-area list, from the separate BBB business profile /more-info sub-page. The bbb-business endpoint's own rating_reasons field is read from the main profile page and typically holds only one generic boilerplate bullet regardless of actual rating; this endpoint fetches the richer, business-specific list instead. Service area is business-conditional -- some businesses render no service-area section at all, in which case service_areas is empty. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_reviews`\n\n- **HTTP:** `GET /bbb/business/reviews`\n- **What:** Get a Better Business Bureau business's customer reviews. Returns a business's full customer-review list (author, star rating, date, text, and any business response thread), paginated 10 per page, plus the average star rating and total review count. Credential-free public Better Business Bureau data. Unlike the other bbb-business-* endpoints, this one is fetched with browser impersonation rather than plain direct HTTP -- see the family's maintenance note for why.\n- **Params:** `page` (integer, optional) — Result page (10 per page), default 1; `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_category`\n\n- **HTTP:** `GET /bbb/category`\n- **What:** Browse a Better Business Bureau category. Browses bbb.org businesses by category and location directly, without a free-text search query. Returns the same normalized business-result shape as bbb-search. Credential-free public Better Business Bureau data.\n- **Params:** `page` (integer, optional) — Result page, default 1; `url` (string, **required**) — BBB category browse URL, from a bbb-search result's related_categories\n\n### `bbb_scamtracker_detail`\n\n- **HTTP:** `GET /bbb/scamtracker/{id}`\n- **What:** Get a Better Business Bureau Scam Tracker report. Returns one normalized BBB Scam Tracker consumer scam report: description, dollars lost, targeted person's location, scammer location/email/phone/URL (when known), scam type, business name used, and date reported. Credential-free public Better Business Bureau data.\n- **Params:** `id` (string, **required**) — BBB Scam Tracker report id, from a bbb-scamtracker-search result's id or url\n\n### `bbb_scamtracker_search`\n\n- **HTTP:** `GET /bbb/scamtracker/search`\n- **What:** Search Better Business Bureau Scam Tracker reports. Searches bbb.org Scam Tracker's consumer-reported-scam database by free-text query, scam category, targeted-victim state/province, reported-scammer state/province, report-date range, and/or dollar-loss range, paginated 10 results/page. Omit every filter to browse the most-recent-first feed. Credential-free public Better Business Bureau data. This is a separate BBB dataset from the bbb-search/bbb-business/bbb-business-complaints business-rating family -- consumer-reported scam incidents, not business ratings.\n- **Params:** `date_from` (string, optional) — Optional report-date range start (YYYY-MM-DD), inclusive. Must be set together with date_to; `date_to` (string, optional) — Optional report-date range end (YYYY-MM-DD), inclusive. Must be set together with date_from; `max_dollars_lost` (integer, optional) — Optional maximum reported dollar loss. Must be set together with min_dollars_lost; `min_dollars_lost` (integer, optional) — Optional minimum reported dollar loss. Must be set together with max_dollars_lost; `page` (integer, optional) — Result page (10 per page), default 1; `query` (string, optional) — Free-text search (phone number, website, email, business name, scam ID, description). Omit to browse the most-recent feed; `scam_type` (string, optional) — Scam category filter; `scammer_state` (string, optional) — Optional 2-letter reported-scammer state/province code (US state or Canadian province) -- where the scammer is reported to be, not the victim; `state` (string, optional) — Optional 2-letter targeted-victim state/province code (US state or Canadian province)\n\n### `bbb_scamtracker_state_stats`\n\n- **HTTP:** `GET /bbb/scamtracker/state-stats`\n- **What:** Get Better Business Bureau Scam Tracker state/province aggregate stats. Returns aggregate scam-report stats per US state and Canadian province for a given time window: report counts, dollar losses, per-capita rates, year-over-year change, and top scam-type breakdown. This calls the same JSON API the BBB Scam Tracker heatmap dashboard's own frontend uses -- not an HTML scrape. Credential-free public Better Business Bureau data.\n- **Params:** `period` (string, optional) — Aggregation window, default 90\n\n### `bbb_search`\n\n- **HTTP:** `GET /bbb/search`\n- **What:** Search Better Business Bureau businesses. Searches bbb.org for businesses by name or category near a location. Returns each business's BBB rating letter grade, accreditation status, categories, service areas, contact info, and profile URL. Credential-free public Better Business Bureau data.\n- **Params:** `location` (string, **required**) — City and state (e.g. 'Austin, TX') or a ZIP code; `page` (integer, optional) — Result page, default 1; `query` (string, **required**) — Business name or category/service keyword\n\n## Kickstarter (4)\n\n### `kickstarter_comments`\n\n- **HTTP:** `GET /kickstarter/comments`\n- **What:** Get a Kickstarter campaign's comments. Returns the first page of one Kickstarter campaign's comments feed (Kickstarter's own server-rendered initial batch, typically 40-60 comments; total_count reports the feed's real total). Each comment includes the author, whether the author is the creator (a reply), the posted timestamp, and the comment text. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_discover`\n\n- **HTTP:** `GET /kickstarter/discover`\n- **What:** Browse or search Kickstarter's Discover surface. Returns one page of Kickstarter's own Discover results -- browse by category id and/or a free-text search term, sorted by magic/popularity/newest/end_date/most_funded, optionally filtered by campaign state and/or restricted to staff picks. Each result includes the campaign's funding snapshot (goal, pledged, percent funded, backers), category, location, creator, and cover photo.\n- **Params:** `category_id` (integer, optional) — Kickstarter's own numeric category id (top-level or sub-category), e.g. 16 for Technology; `page` (integer, optional) — 1-based page number; `sort` (string, optional) — Result order; `staff_pick_only` (boolean, optional) — Restrict results to Kickstarter's own \\; `state` (array, optional) — Repeatable campaign state filter; `term` (string, optional) — Free-text search query\n\n### `kickstarter_project`\n\n- **HTTP:** `GET /kickstarter/project`\n- **What:** Get a Kickstarter campaign's detail. Returns one Kickstarter campaign's detail: funding snapshot (goal, pledged, percent funded, backers, state, dates), category, creator, cover photo, story text, risks & challenges, update/comment/FAQ counts, and reward/pledge tiers. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi. Reward tiers are best-effort -- see the endpoint's documentation for when they may be omitted.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_updates`\n\n- **HTTP:** `GET /kickstarter/updates`\n- **What:** Get a Kickstarter campaign's updates feed. Returns one Kickstarter campaign's full updates feed: for each update, its number, title, author, whether the author is the creator, publish date, body text, and comment count. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\nFile v1.0.16:skill-card.md\n\n## Description:\n\nResearches software and SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API, returning normalized JSON from Product Hunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter sources.\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, buyers, and analysts use this skill to run due diligence on software products, companies, local businesses, startups, and crowdfunding campaigns. It helps compare launch history, reviews, reputation signals, verified revenue, BBB complaints, scam reports, and campaign updates before buying, partnering, hiring, or backing.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends lookup queries and request bodies to Crawlora's service.\n\nMitigation: Use it only for business, product, campaign, and public-review research that is intended to be shared with Crawlora.\n\nRisk: A Crawlora API key is required for use.\n\nMitigation: Store the key in CRAWLORA_API_KEY, do not hardcode it, and do not place secrets or private customer data in queries unless that sharing is intended.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, 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 returns public business, product, review, revenue, scam-report, and campaign data from documented Crawlora endpoints.]\n\n## Skill Version(s):\n\n1.0.16 (source: ClawHub 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.15: 5 files, 12564 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (4990b), skill-card.md (2308b), SKILL.md (6815b), _meta.json (150b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: business-review-trust-research\ndescription: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.\n---\n\n# Business & software review research\n\nLook up product launches, business reputation, verified startup revenue,\nsoftware reviews, and crowdfunding campaigns across six platforms as\nnormalized JSON from the Crawlora API — no scraping review-site pages.\n\n## When to use this skill\n\n- \"What did this product launch as on Product Hunt? Who made it?\"\n- \"What are people saying about <company> on Trustpilot?\"\n- \"How much revenue does this startup actually make?\" (TrustMRR — payment-provider-verified)\n- \"What are the reviews / alternatives for this software?\" (Capterra)\n- \"Is this business BBB accredited? What's its rating, and any complaints or scam reports against it?\" (BBB)\n- \"How's this Kickstarter campaign doing? What updates has the creator posted?\"\n- Vendor due-diligence before buying or partnering.\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. **Product Hunt** — `/producthunt/search` (`query`) to find a product\n   `id`; `/producthunt/product/{id}` for detail (+ `/about`, `/makers`,\n   `/launches`, `/reviews`, `/alternatives`, `/customers`).\n   `/producthunt/leaderboard` and `/producthunt/category/{slug}/products`\n   cover browsing/trending.\n2. **Trustpilot** — `/trustpilot/business-units/search` (`q`) to find a\n   business `slug`; `/trustpilot/business/{slug}` for the profile (+\n   `/reviews`, `/related`). `/trustpilot/categories` / `/categories/search`\n   browse by industry.\n3. **TrustMRR** — `/trustmrr/startups` to browse, or `/trustmrr/startup/{slug}`\n   for one company's payment-provider-verified revenue profile (see also\n   the `crawlora-datasets` skill's `trustmrr` dataset for bulk/aggregate\n   queries). `/trustmrr/leaderboard` ranks by MRR; `/trustmrr/categories`\n   browses by category.\n4. **Capterra** — `/capterra/search` (`q`) to find a `product_id`, then\n   `/capterra/product` for detail and `/capterra/product/reviews` for user reviews.\n5. **BBB (Better Business Bureau)** — `/bbb/search` (`q`) to find a business\n   profile URL, then `/bbb/business` for the profile (rating, accreditation)\n   plus `/bbb/business/reviews`, `/bbb/business/complaints`, and\n   `/bbb/business/more-info` for rating reasons and service area.\n   `/bbb/category` browses by industry; `/bbb/scamtracker/search` and\n   `/bbb/scamtracker/{id}` cover consumer-reported scam listings, with\n   `/bbb/scamtracker/state-stats` for state/province aggregates.\n6. **Kickstarter** — `/kickstarter/discover` (`term` free-text and/or\n   `category_id`, plus `state`/`sort`/`staff_pick_only`) to browse or\n   search campaigns, then `/kickstarter/project` (`creator`+`slug`, both\n   the corresponding path segments of the campaign URL) for the funding\n   snapshot (goal, pledged, percent funded, backers, status).\n   `/kickstarter/updates` and `/kickstarter/comments` (same `creator`+`slug`)\n   cover the creator's update feed and the campaign's comment thread.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | 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 every Product\nHunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter endpoint this\nskill uses.\n\n## Examples\n\n- **Vendor due diligence:** `/trustpilot/business/{slug}` (reputation) +\n  `/capterra/product` + `/capterra/product/reviews` (feature-level\n  feedback) before signing a software contract.\n- **Launch retrospective:** `/producthunt/product/{id}` + `/launches` +\n  `/makers` to see how a product performed and who built it.\n- **Bootstrapped-revenue research:** `/trustmrr/startup/{slug}` for one\n  company's verified MRR trend, or `/trustmrr/leaderboard` for the top\n  earners in a category.\n- **Local-business trust check:** `/bbb/search` + `/bbb/business` (rating,\n  accreditation) + `/bbb/business/complaints` before hiring a contractor\n  or vendor; cross-check `/bbb/scamtracker/search` for reported scams.\n- **Campaign due diligence:** `/kickstarter/project` (funding snapshot) +\n  `/kickstarter/updates` (has the creator been communicating?) before\n  backing a campaign.\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 listing/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Trustpilot's `slug` is usually the business's domain** (e.g.\n  `acmecorp.com`), not a display name — resolve via\n  `/trustpilot/business-units/search` if unsure.\n- **Kickstarter's `creator`+`slug` are the two path segments of a project\n  URL** (`kickstarter.com/projects/{creator}/{slug}`) — copy them directly\n  from a campaign link or a `/kickstarter/discover` result rather than\n  guessing.\n- Reviews/lists are paginated — pass `page` to walk beyond the first page.\n\nFile v1.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"business-review-trust-research\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1789043433687\n}\n\nFile v1.0.15:reference/endpoints.md\n\n# business-review-trust-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**41 endpoints across 6 platform group(s).**\n\n## ProductHunt (11)\n\n### `producthunt_about`\n\n- **HTTP:** `GET /producthunt/product/{id}/about`\n- **What:** Retrieve Product Hunt product about page. Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_alternatives`\n\n- **HTTP:** `GET /producthunt/product/{id}/alternatives`\n- **What:** Retrieve Product Hunt product alternatives. Returns paginated alternatives, tags, and related discussions for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `first` (integer, optional) — Page size; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Sort order; `tags` (string, optional) — Comma-separated tag slugs\n\n### `producthunt_category`\n\n- **HTTP:** `GET /producthunt/category/{slug}`\n- **What:** Retrieve Product Hunt category details. Returns the category page payload for a Product Hunt category slug.\n- **Params:** `slug` (string, **required**) — Product Hunt category slug\n\n### `producthunt_category_products`\n\n- **HTTP:** `GET /producthunt/category/{slug}/products`\n- **What:** Retrieve Product Hunt category products. Returns the products in a Product Hunt category (now backed by Product Hunt topics), cursor-paginated. Pass the `cursor` from a previous response's `end_cursor` to page; `page_size` controls the batch size. `page`, `featured_only`, `order` and `tags` are accepted for compatibility but no longer affect the result.\n- **Params:** `cursor` (string, optional) — Pagination cursor from a previous response's end_cursor; `featured_only` (boolean, optional) — Accepted for compatibility; no longer affects results; `order` (string, optional) — Accepted for compatibility; no longer affects results; `page` (integer, optional) — Accepted for compatibility; use cursor to paginate; `page_size` (integer, optional) — Page size (number of products); `slug` (string, **required**) — Product Hunt category slug; `tags` (string, optional) — Accepted for compatibility; no longer affects results\n\n### `producthunt_customers`\n\n- **HTTP:** `GET /producthunt/product/{id}/customers`\n- **What:** Retrieve Product Hunt product customers. Returns paginated customer products for a Product Hunt product using Product Hunt's ProductCustomersPage GraphQL operation.\n- **Params:** `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt customers order; `page` (integer, optional) — Page number; `page_size` (integer, optional) — Results per page\n\n### `producthunt_launches`\n\n- **HTTP:** `GET /producthunt/product/{id}/launches`\n- **What:** Retrieve Product Hunt product launches. Returns paginated launch posts for a Product Hunt product using Product Hunt's ProductPageLaunches GraphQL operation.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt launch order\n\n### `producthunt_leaderboard`\n\n- **HTTP:** `GET /producthunt/leaderboard`\n- **What:** Retrieve Product Hunt leaderboard. Fetches Product Hunt leaderboard data for daily, weekly, monthly, or yearly scopes via Product Hunt GraphQL.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `date` (string, optional) — Anchor date in YYYY-MM-DD format. Used to derive missing year/month/day/week values.; `day` (integer, optional) — Daily day override; `featured` (boolean, optional) — Featured products only; `month` (integer, optional) — Daily/monthly month override; `order` (string, optional) — Ranking order override. Defaults to scope rank enum.; `scope` (string, optional) — Leaderboard scope: daily, weekly, monthly, yearly; `week` (integer, optional) — Weekly ISO week override; `year` (integer, optional) — Leaderboard year override\n\n### `producthunt_makers`\n\n- **HTTP:** `GET /producthunt/product/{id}/makers`\n- **What:** Retrieve Product Hunt product makers. Returns maker items for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_product`\n\n- **HTTP:** `GET /producthunt/product/{id}`\n- **What:** Retrieve Product Hunt product details. Returns the core Product Hunt product details.\n- **Params:** `id` (string, **required**) — Product Hunt slug or numeric ID\n\n### `producthunt_reviews`\n\n- **HTTP:** `GET /producthunt/product/{id}/reviews`\n- **What:** Retrieve Product Hunt product detailed reviews. Returns detailed review items for a Product Hunt product.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_search`\n\n- **HTTP:** `GET /producthunt/search`\n- **What:** Search for products, users, or launches on Product Hunt. Performs a full-text Product Hunt search and returns matching products, users, or launches.\n- **Params:** `featured` (boolean, optional) — Launch search only: featured launches only; `page` (integer, optional) — Page number (1-based); `query` (string, **required**) — Search keywords; `topics` (string, optional) — Launch search only: comma-separated topic slugs; `type` (string, optional) — Result type: **product** (default), **user**, or **launch**\n\n## TrustMRR (7)\n\n### `trustmrr_acquire`\n\n- **HTTP:** `GET /trustmrr/acquire`\n- **What:** Get TrustMRR acquisition listings. Returns the for-sale startups rendered on the public TrustMRR /acquire marketplace page, with deal metrics (asking price, revenue, multiple, growth). Verified revenue figures come from supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_categories`\n\n- **HTTP:** `GET /trustmrr/categories`\n- **What:** Get TrustMRR categories. Returns the TrustMRR startup category directory (slug, label, description, and keywords for each category).\n- **Params:** _none_\n\n### `trustmrr_category`\n\n- **HTTP:** `GET /trustmrr/category/{slug}`\n- **What:** Get TrustMRR category detail. Returns a single TrustMRR category page and the startups listed under it, with verified revenue and MRR figures.\n- **Params:** `slug` (string, **required**) — TrustMRR category slug\n\n### `trustmrr_leaderboard`\n\n- **HTTP:** `GET /trustmrr/leaderboard`\n- **What:** Get TrustMRR revenue leaderboard. Returns the top 100 startups ranked by the selected metric from the public TrustMRR leaderboard. Revenue and MRR figures are verified through supported payment providers.\n- **Params:** `metric` (string, optional) — Leaderboard metric to rank by (default mrr)\n\n### `trustmrr_marketplace`\n\n- **HTTP:** `GET /trustmrr/marketplace`\n- **What:** Get TrustMRR marketplace snapshot. Returns the public TrustMRR marketplace snapshot: the 25 most recently listed startups for sale and the current 25 best deals ranked by TrustMRR's recency-aware deal score. Revenue figures are verified through supported payment providers.\n- **Params:** _none_\n\n### `trustmrr_startup`\n\n- **HTTP:** `GET /trustmrr/startup/{slug}`\n- **What:** Get TrustMRR startup detail. Returns the full verified profile for a single TrustMRR startup by slug: revenue and MRR, growth, asking price and marketplace status, tech stack, marketing channels, and TrustMRR's AI-generated business summary.\n- **Params:** `slug` (string, **required**) — TrustMRR startup slug\n\n### `trustmrr_startups`\n\n- **HTTP:** `GET /trustmrr/startups`\n- **What:** List all TrustMRR startups. Returns a paginated list of every startup in the TrustMRR directory, discovered from the site's public sitemap. Each entry is a slug you can pass to /trustmrr/startup/{slug} for the full verified profile — together these two endpoints let you enumerate and scrape the entire directory without the authenticated marketplace API.\n- **Params:** `page` (integer, optional) — 1-based page number (default 1); `page_size` (integer, optional) — Items per page (default 100, max 1000)\n\n## Trustpilot (7)\n\n### `trustpilot_business`\n\n- **HTTP:** `GET /trustpilot/business/{slug}`\n- **What:** Get Trustpilot business profile. Returns a summary Trustpilot business profile parsed from the public business page.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_related`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/related`\n- **What:** Get Trustpilot related businesses. Returns related company cards from Trustpilot's public business page rails.\n- **Params:** `slug` (string, **required**) — Trustpilot business slug\n\n### `trustpilot_business_reviews`\n\n- **HTTP:** `GET /trustpilot/business/{slug}/reviews`\n- **What:** Get Trustpilot business reviews. Returns paginated Trustpilot business reviews parsed from the public review page.\n- **Params:** `date_from` (string, optional) — Date range start in YYYY-MM-DD; currently rejected by upstream; `date_to` (string, optional) — Date range end in YYYY-MM-DD; currently rejected by upstream; `language` (string, optional) — Review language code used by Trustpilot; `page` (integer, optional) — 1-based page number; defaults to 1; `q` (string, optional) — Text search within reviews; `replied` (boolean, optional) — Filter to reviews with business replies; `slug` (string, **required**) — Trustpilot business slug; `stars` (integer, optional) — Filter by star rating from 1 to 5; `verified` (boolean, optional) — Filter to verified reviews\n\n### `trustpilot_business_search`\n\n- **HTTP:** `GET /trustpilot/business-units/search`\n- **What:** Search Trustpilot business units. Returns normalized business-unit search results from Trustpilot's JSON business-unit search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `page` (integer, optional) — 1-based page number; defaults to 1; `page_size` (integer, optional) — Results per page; defaults to 20, maximum 100; `q` (string, **required**) — Search query\n\n### `trustpilot_categories`\n\n- **HTTP:** `GET /trustpilot/categories`\n- **What:** Get Trustpilot categories. Returns the Trustpilot public category index grouped by top-level category.\n- **Params:** _none_\n\n### `trustpilot_category`\n\n- **HTTP:** `GET /trustpilot/category/{slug}`\n- **What:** Get Trustpilot category detail. Returns category metadata, company cards, and side rails from Trustpilot's public category page.\n- **Params:** `page` (integer, optional) — 1-based page number; defaults to 1; `slug` (string, **required**) — Trustpilot category slug\n\n### `trustpilot_category_search`\n\n- **HTTP:** `GET /trustpilot/categories/search`\n- **What:** Search Trustpilot categories. Returns normalized category search results from Trustpilot's JSON category search API.\n- **Params:** `country` (string, optional) — Two-letter country code; defaults to US; `locale` (string, optional) — Locale in ll-CC format; defaults to en-US; `q` (string, **required**) — Search query; `size` (integer, optional) — Maximum number of categories; defaults to 20\n\n## Capterra (3)\n\n### `capterra_product`\n\n- **HTTP:** `GET /capterra/product`\n- **What:** Get a Capterra product. Returns a normalized Capterra product profile: name, description, category, and aggregate rating. Credential-free public Capterra data, rendered from the product page through proxied browser renderers.\n- **Params:** `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_reviews`\n\n- **HTTP:** `GET /capterra/product/reviews`\n- **What:** Get Capterra product reviews. Returns a page of normalized Capterra reviews (author, headline, rating) plus the product's aggregate rating. Credential-free public Capterra data, rendered from the reviews page through proxied browser renderers.\n- **Params:** `page` (integer, optional) — Page number (default 1); `product_id` (string, **required**) — Capterra product id (the numeric id in a /p/{id}/{slug}/ URL)\n\n### `capterra_search`\n\n- **HTTP:** `GET /capterra/search`\n- **What:** Search Capterra products. Returns Capterra search-result products (id, name, url, description, rating). Credential-free public Capterra data, rendered from the search page through proxied browser renderers. Note: Capterra renders a fallback product list even for queries with no genuine match, rather than a distinct empty-results page, so callers should treat low-relevance results as an upstream characteristic, not a bug.\n- **Params:** `q` (string, **required**) — Search query\n\n## BBB (9)\n\n### `bbb_business`\n\n- **HTTP:** `GET /bbb/business`\n- **What:** Get a Better Business Bureau business profile. Returns a normalized bbb.org business profile: BBB rating letter grade and reasons, accreditation status and since-date, years in business, BBB file/incorporation dates, entity type, contact info, business categories, social media, and a short latest-reviews preview. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_complaints`\n\n- **HTTP:** `GET /bbb/business/complaints`\n- **What:** Get a Better Business Bureau business's complaint history. Returns a business's BBB complaint history: total complaint count, complaints closed in the last 12 months, and per-complaint detail (date, type, status, narrative text, and any business response / customer answer thread). A business with no filed complaints returns total_complaints 0 and an empty complaints list -- this is a normal result, not an error. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_more_info`\n\n- **HTTP:** `GET /bbb/business/more-info`\n- **What:** Get a Better Business Bureau business's full rating reasons and service area. Returns a business's full per-factor \"Reasons for Rating\" list and full service-area list, from the separate BBB business profile /more-info sub-page. The bbb-business endpoint's own rating_reasons field is read from the main profile page and typically holds only one generic boilerplate bullet regardless of actual rating; this endpoint fetches the richer, business-specific list instead. Service area is business-conditional -- some businesses render no service-area section at all, in which case service_areas is empty. Credential-free public Better Business Bureau data.\n- **Params:** `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_business_reviews`\n\n- **HTTP:** `GET /bbb/business/reviews`\n- **What:** Get a Better Business Bureau business's customer reviews. Returns a business's full customer-review list (author, star rating, date, text, and any business response thread), paginated 10 per page, plus the average star rating and total review count. Credential-free public Better Business Bureau data. Unlike the other bbb-business-* endpoints, this one is fetched with browser impersonation rather than plain direct HTTP -- see the family's maintenance note for why.\n- **Params:** `page` (integer, optional) — Result page (10 per page), default 1; `url` (string, **required**) — BBB business profile URL, from a bbb-search result's url or hq_profile_url\n\n### `bbb_category`\n\n- **HTTP:** `GET /bbb/category`\n- **What:** Browse a Better Business Bureau category. Browses bbb.org businesses by category and location directly, without a free-text search query. Returns the same normalized business-result shape as bbb-search. Credential-free public Better Business Bureau data.\n- **Params:** `page` (integer, optional) — Result page, default 1; `url` (string, **required**) — BBB category browse URL, from a bbb-search result's related_categories\n\n### `bbb_scamtracker_detail`\n\n- **HTTP:** `GET /bbb/scamtracker/{id}`\n- **What:** Get a Better Business Bureau Scam Tracker report. Returns one normalized BBB Scam Tracker consumer scam report: description, dollars lost, targeted person's location, scammer location/email/phone/URL (when known), scam type, business name used, and date reported. Credential-free public Better Business Bureau data.\n- **Params:** `id` (string, **required**) — BBB Scam Tracker report id, from a bbb-scamtracker-search result's id or url\n\n### `bbb_scamtracker_search`\n\n- **HTTP:** `GET /bbb/scamtracker/search`\n- **What:** Search Better Business Bureau Scam Tracker reports. Searches bbb.org Scam Tracker's consumer-reported-scam database by free-text query, scam category, targeted-victim state/province, reported-scammer state/province, report-date range, and/or dollar-loss range, paginated 10 results/page. Omit every filter to browse the most-recent-first feed. Credential-free public Better Business Bureau data. This is a separate BBB dataset from the bbb-search/bbb-business/bbb-business-complaints business-rating family -- consumer-reported scam incidents, not business ratings.\n- **Params:** `date_from` (string, optional) — Optional report-date range start (YYYY-MM-DD), inclusive. Must be set together with date_to; `date_to` (string, optional) — Optional report-date range end (YYYY-MM-DD), inclusive. Must be set together with date_from; `max_dollars_lost` (integer, optional) — Optional maximum reported dollar loss. Must be set together with min_dollars_lost; `min_dollars_lost` (integer, optional) — Optional minimum reported dollar loss. Must be set together with max_dollars_lost; `page` (integer, optional) — Result page (10 per page), default 1; `query` (string, optional) — Free-text search (phone number, website, email, business name, scam ID, description). Omit to browse the most-recent feed; `scam_type` (string, optional) — Scam category filter; `scammer_state` (string, optional) — Optional 2-letter reported-scammer state/province code (US state or Canadian province) -- where the scammer is reported to be, not the victim; `state` (string, optional) — Optional 2-letter targeted-victim state/province code (US state or Canadian province)\n\n### `bbb_scamtracker_state_stats`\n\n- **HTTP:** `GET /bbb/scamtracker/state-stats`\n- **What:** Get Better Business Bureau Scam Tracker state/province aggregate stats. Returns aggregate scam-report stats per US state and Canadian province for a given time window: report counts, dollar losses, per-capita rates, year-over-year change, and top scam-type breakdown. This calls the same JSON API the BBB Scam Tracker heatmap dashboard's own frontend uses -- not an HTML scrape. Credential-free public Better Business Bureau data.\n- **Params:** `period` (string, optional) — Aggregation window, default 90\n\n### `bbb_search`\n\n- **HTTP:** `GET /bbb/search`\n- **What:** Search Better Business Bureau businesses. Searches bbb.org for businesses by name or category near a location. Returns each business's BBB rating letter grade, accreditation status, categories, service areas, contact info, and profile URL. Credential-free public Better Business Bureau data.\n- **Params:** `location` (string, **required**) — City and state (e.g. 'Austin, TX') or a ZIP code; `page` (integer, optional) — Result page, default 1; `query` (string, **required**) — Business name or category/service keyword\n\n## Kickstarter (4)\n\n### `kickstarter_comments`\n\n- **HTTP:** `GET /kickstarter/comments`\n- **What:** Get a Kickstarter campaign's comments. Returns the first page of one Kickstarter campaign's comments feed (Kickstarter's own server-rendered initial batch, typically 40-60 comments; total_count reports the feed's real total). Each comment includes the author, whether the author is the creator (a reply), the posted timestamp, and the comment text. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_discover`\n\n- **HTTP:** `GET /kickstarter/discover`\n- **What:** Browse or search Kickstarter's Discover surface. Returns one page of Kickstarter's own Discover results -- browse by category id and/or a free-text search term, sorted by magic/popularity/newest/end_date/most_funded, optionally filtered by campaign state and/or restricted to staff picks. Each result includes the campaign's funding snapshot (goal, pledged, percent funded, backers), category, location, creator, and cover photo.\n- **Params:** `category_id` (integer, optional) — Kickstarter's own numeric category id (top-level or sub-category), e.g. 16 for Technology; `page` (integer, optional) — 1-based page number; `sort` (string, optional) — Result order; `staff_pick_only` (boolean, optional) — Restrict results to Kickstarter's own \\; `state` (array, optional) — Repeatable campaign state filter; `term` (string, optional) — Free-text search query\n\n### `kickstarter_project`\n\n- **HTTP:** `GET /kickstarter/project`\n- **What:** Get a Kickstarter campaign's detail. Returns one Kickstarter campaign's detail: funding snapshot (goal, pledged, percent funded, backers, state, dates), category, creator, cover photo, story text, risks & challenges, update/comment/FAQ counts, and reward/pledge tiers. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi. Reward tiers are best-effort -- see the endpoint's documentation for when they may be omitted.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\n### `kickstarter_updates`\n\n- **HTTP:** `GET /kickstarter/updates`\n- **What:** Get a Kickstarter campaign's updates feed. Returns one Kickstarter campaign's full updates feed: for each update, its number, title, author, whether the author is the creator, publish date, body text, and comment count. creator and slug are the two path segments of the project URL, e.g. lookingglass and musubi for kickstarter.com/projects/lookingglass/musubi.\n- **Params:** `creator` (string, **required**) — Creator path segment of the project URL; `slug` (string, **required**) — Project slug path segment of the project URL\n\nFile v1.0.15:skill-card.md\n\n## Description:\n\nResearches software and SaaS products, business reputation, and crowdfunding campaigns through the Crawlora API, covering Product Hunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter and 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 business users use this skill for vendor due diligence, product launch research, software review checks, verified revenue lookup, business reputation review, and crowdfunding campaign assessment.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The authenticated API helper may allow broader Crawlora route or method use than the documented endpoint catalog describes.\n\nMitigation: Review the helper before installing in sensitive environments and restrict use to documented business-review endpoints.\n\nRisk: Queries and request data are sent to Crawlora.\n\nMitigation: Use the skill only with inputs you are comfortable sending to Crawlora and avoid submitting confidential business information unless your account and data handling requirements allow it.\n\nRisk: The helper uses an API key for authenticated requests.\n\nMitigation: Provide the key through CRAWLORA_API_KEY only, rotate it if exposed, and avoid sharing command output or logs that may reveal account usage.\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/business-review-trust-research)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, 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:** [Outputs depend on Crawlora API responses and the requested source platform.]\n\n## Skill Version(s):\n\n1.0.15 (source: 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, 12436 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (4733b), skill-card.md (2238b), SKILL.md (6815b), _meta.json (150b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: business-review-trust-research\ndescription: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.\n---\n\n# Business & software review research\n\nLook up product launches, business reputation, verified startup revenue,\nsoftware reviews, and crowdfunding campaigns across six platforms as\nnormalized JSON from the Crawlora API — no scraping review-site pages.\n\n## When to use this skill\n\n- \"What did this product launch as on Product Hunt? Who made it?\"\n- \"What are people saying about <company> on Trustpilot?\"\n- \"How much revenue does this startup actually make?\" (TrustMRR — payment-provider-verified)\n- \"What are the reviews / alternatives for this software?\" (Capterra)\n- \"Is this business BBB accredited? What's its rating, and any complaints or scam reports against it?\" (BBB)\n- \"How's this Kickstarter campaign doing? What updates has the creator posted?\"\n- Vendor due-diligence before buying or partnering.\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. **Product Hunt** — `/producthunt/search` (`query`) to find a product\n   `id`; `/producthunt/product/{id}` for detail (+ `/about`, `/makers`,\n   `/launches`, `/reviews`, `/alternatives`, `/customers`).\n   `/producthunt/leaderboard` and `/producthunt/category/{slug}/products`\n   cover browsing/trending.\n2. **Trustpilot** — `/trustpilot/business-units/search` (`q`) to find a\n   business `slug`; `/trustpilot/business/{slug}` for the profile (+\n   `/reviews`, `/related`). `/trustpilot/categories` / `/categories/search`\n   browse by industry.\n3. **TrustMRR** — `/trustmrr/startups` to browse, or `/trustmrr/startup/{slug}`\n   for one company's payment-provider-verified revenue profile (see also\n   the `crawlora-datasets` skill's `trustmrr` dataset for bulk/aggregate\n   queries). `/trustmrr/leaderboard` ranks by MRR; `/trustmrr/categories`\n   browses by category.\n4. **Capterra** — `/capterra/search` (`q`) to find a `product_id`, then\n   `/capterra/product` for detail and `/capterra/product/reviews` for user reviews.\n5. **BBB (Better Business Bureau)** — `/bbb/search` (`q`) to find a business\n   profile URL, then `/bbb/business` for the profile (rating, accreditation)\n   plus `/bbb/business/reviews`, `/bbb/business/complaints`, and\n   `/bbb/business/more-info` for rating reasons and service area.\n   `/bbb/category` browses by industry; `/bbb/scamtracker/search` and\n   `/bbb/scamtracker/{id}` cover consumer-reported scam listings, with\n   `/bbb/scamtracker/state-stats` for state/province aggregates.\n6. **Kickstarter** — `/kickstarter/discover` (`term` free-text and/or\n   `category_id`, plus `state`/`sort`/`staff_pick_only`) to browse or\n   search campaigns, then `/kickstarter/project` (`creator`+`slug`, both\n   the corresponding path segments of the campaign URL) for the funding\n   snapshot (goal, pledged, percent funded, backers, status).\n   `/kickstarter/updates` and `/kickstarter/comments` (same `creator`+`slug`)\n   cover the creator's update feed and the campaign's comment thread.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | 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 every Product\nHunt, Trustpilot, TrustMRR, Capterra, BBB, and Kickstarter endpoint this\nskill uses.\n\n## Examples\n\n- **Vendor due diligence:** `/trustpilot/business/{slug}` (reputation) +\n  `/capterra/product` + `/capterra/product/reviews` (feature-level\n  feedback) before signing a software contract.\n- **Launch retrospective:** `/producthunt/product/{id}` + `/launches` +\n  `/makers` to see how a product performed and who built it.\n- **Bootstrapped-revenue research:** `/trustmrr/startup/{slug}` for one\n  company's verified MRR trend, or `/trustmrr/leaderboard` for the top\n  earners in a category.\n- **Local-business trust check:** `/bbb/search` + `/bbb/business` (rating,\n  accreditation) + `/bbb/business/complaints` before hiring a contractor\n  or vendor; cross-check `/bbb/scamtracker/search` for reported scams.\n- **Campaign due diligence:** `/kickstarter/project` (funding snapshot) +\n  `/kickstarter/updates` (has the creator been communicating?) before\n  backing a campaign.\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 listing/review pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **Trustpilot's `slug` is usually the business's domain** (e.g.\n  `acmecorp.com`), not a display name — resolve via\n  `/trustpilot/business-units/search` if unsure.\n- **Kickstarter's `creator`+`slug` are the two path segments of a project\n  URL** (`kickstarter.com/projects/{creator}/{slug}`) — copy them directly\n  from a campaign link or a `/kickstarter/discover` result rather than\n  guessing.\n- Reviews/lists are paginated — pass `page` to walk beyond the first page.\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"business-review-trust-research\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1789042455760\n}\n\nFile v1.0.14:reference/endpoints.md\n\n# business-review-trust-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**41 endpoints across 6 platform group(s).**\n\n## ProductHunt (11)\n\n### `producthunt_about`\n\n- **HTTP:** `GET /producthunt/product/{id}/about`\n- **What:** Retrieve Product Hunt product about page. Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_alternatives`\n\n- **HTTP:** `GET /producthunt/product/{id}/alternatives`\n- **What:** Retrieve Product Hunt product alternatives. Returns paginated alternatives, tags, and related discussions for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `first` (integer, optional) — Page size; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Sort order; `tags` (string, optional) — Comma-separated tag slugs\n\n### `producthunt_category`\n\n- **HTTP:** `GET /producthunt/category/{slug}`\n- **What:** Retrieve Product Hunt category details. Returns the category page payload for a Product Hunt category slug.\n- **Params:** `slug` (string, **required**) — Product Hunt category slug\n\n### `producthunt_category_products`\n\n- **HTTP:** `GET /producthunt/category/{slug}/products`\n- **What:** Retrieve Product Hunt category products. Returns the products in a Product Hunt category (now backed by Product Hunt topics), cursor-paginated. Pass the `cursor` from a previous response's `end_cursor` to page; `page_size` controls the batch size. `page`, `featured_only`, `order` and `tags` are accepted for compatibility but no longer affect the result.\n- **Params:** `cursor` (string, optional) — Pagination cursor from a previous response's end_cursor; `featured_only` (boolean, optional) — Accepted for compatibility; no longer affects results; `order` (string, optional) — Accepted for compatibility; no longer affects results; `page` (integer, optional) — Accepted for compatibility; use cursor to paginate; `page_size` (integer, optional) — Page size (number of products); `slug` (string, **required**) — Product Hunt category slug; `tags` (string, optional) — Accepted for compatibility; no longer affects results\n\n### `producthunt_customers`\n\n- **HTTP:** `GET /producthunt/product/{id}/customers`\n- **What:** Retrieve Product Hunt product customers. Returns paginated customer products for a Product Hunt product using Product Hunt's ProductCustomersPage GraphQL operation.\n- **Params:** `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt customers order; `page` (integer, optional) — Page number; `page_size` (integer, optional) — Results per page\n\n### `producthunt_launches`\n\n- **HTTP:** `GET /producthunt/product/{id}/launches`\n- **What:** Retrieve Product Hunt product launches. Returns paginated launch posts for a Product Hunt product using Product Hunt's ProductPageLaunches GraphQL operation.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Product Hunt launch order\n\n### `producthunt_leaderboard`\n\n- **HTTP:** `GET /producthunt/leaderboard`\n- **What:** Retrieve Product Hunt leaderboard. Fetches Product Hunt leaderboard data for daily, weekly, monthly, or yearly scopes via Product Hunt GraphQL.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `date` (string, optional) — Anchor date in YYYY-MM-DD format. Used to derive missing year/month/day/week values.; `day` (integer, optional) — Daily day override; `featured` (boolean, optional) — Featured products only; `month` (integer, optional) — Daily/monthly month override; `order` (string, optional) — Ranking order override. Defaults to scope rank enum.; `scope` (string, optional) — Leaderboard scope: daily, weekly, monthly, yearly; `week` (integer, optional) — Weekly ISO week override; `year` (integer, optional) — Leaderboard year override\n\n### `producthunt_makers`\n\n- **HTTP:** `GET /producthunt/product/{id}/makers`\n- **What:** Retrieve Product Hunt product makers. Returns maker items for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_product`\n\n- **HTTP:** `GET /producthunt/product/{id}`\n- **What:** Retrieve Product Hunt product details. Returns the core Product Hunt product details.\n- **Params:** `id` (string, **required**) — Product Hunt slug or numeric ID\n\n### `producthunt_reviews`\n\n- **HTTP:** `GET /producthunt/product/{id}/reviews`\n- **What:** Retrieve Product Hunt product detailed reviews. Returns detailed review items for a Product Hunt product.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_search`\n\n- **HTTP:** `GET /producthunt/search`\n- **What:** Search for products, users, or launches on Product Hunt. Performs a full-text Product Hunt search and returns matching products, users, or launches.\n- **Params:** `featured` (boolean, optional) — Launch search only: featured launches only; `page` (integer, optional) — Page number (1-based); `query` (string, **required**) — Search keywords; `topics` (string, optional) — Launch search only: comma-separated topic slugs; `type` (string, optional) — Result type: **product** (default), **user**, or **launch**\n\n## TrustMRR (7)\n\n### `trustmrr_acquire`\n\n- **HTTP:** `GET /trustmrr/acquire`\n- **What:** Get TrustMRR acquisition listings. Returns the for-sale startups rendered on the public TrustMRR /acquire marketplace page, with deal metrics (asking price, revenue, \n\nArchive v1.0.13: 5 files, 12271 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (4408b), skill-card.md (2270b), SKILL.md (6841b), _meta.json (150b)\n\nArchive v1.0.12: 5 files, 12110 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (4108b), skill-card.md (2181b), SKILL.md (6841b), _meta.json (150b)\n\nArchive v1.0.11: 5 files, 12192 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (4060b), skill-card.md (2463b), SKILL.md (6841b), _meta.json (150b)\n\nArchive v1.0.10: 5 files, 11458 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (2005b), skill-card.md (2271b), SKILL.md (6815b), _meta.json (150b)\n\nArchive v1.0.9: 5 files, 11473 bytes\n\nFiles: reference/endpoints.md (22863b), scripts/crawlora.sh (1870b), skill-card.md (2514b), SKILL.md (6815b), _meta.json (149b)","readmeExcerpt":"Skill: business-review-trust-research Owner: crawlora-org Summary: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign ","codeSnippets":[],"executableExamples":[{"language":"sh","snippet":"# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | jq '.'"},{"language":"sh","snippet":"# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | jq '.'"},{"language":"sh","snippet":"# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | jq '.'"},{"language":"sh","snippet":"# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | jq '.'"},{"language":"sh","snippet":"# Product Hunt:\nscripts/crawlora.sh /producthunt/search query=\"AI coding assistant\" | jq '.'\n\n# Trustpilot:\nscripts/crawlora.sh /trustpilot/business-units/search q=\"acmecorp.com\" | jq '.'\nscripts/crawlora.sh /trustpilot/business/acmecorp.com/reviews | jq '.'\n\n# TrustMRR:\nscripts/crawlora.sh /trustmrr/leaderboard | jq '.'\n\n# Capterra:\nscripts/crawlora.sh /capterra/search q=\"project management software\" | jq '.'\n\n# BBB:\nscripts/crawlora.sh /bbb/search query=\"plumbing\" location=\"Austin, TX\" | jq '.'\n\n# Kickstarter:\nscripts/crawlora.sh /kickstarter/discover term=\"board game\" | jq '.'\nscripts/crawlora.sh /kickstarter/project creator=<creator-slug> slug=<project-slug> | jq '.'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: business-review-trust-research\ndescription: Researches software/SaaS products, business reputation, and crowdfunding campaigns via the Crawlora API — Product Hunt launches/makers/alternatives, Trustpilot business reviews, TrustMRR revenue-verified startups, Capterra software reviews, BBB (Better Business Bureau) business profiles/complaint history/Scam Tracker reports, and Kickstarter campaign discovery/funding/updates/comments — returning clean JSON. Use when the user wants a product's launch/review history, a company's Trustpilot or BBB reputation, a startup's verified revenue, software alternatives/reviews before buying, or a crowdfunding campaign's funding status and backer updates.\n---\n\n# Business & software review research\n\nLook up product launches, business reputation, verified startup revenue,\nsoftware reviews, and crowdfunding campaigns across six platforms as\nnormalized JSON from the Crawlora API — no scraping review-site pages.\n\n## When to use this skill\n\n- \"What did this product launch as on Product Hunt? Who made it?\"\n- \"What are people saying about <company> on Trustpilot?\"\n- \"How much revenue does this startup actually make?\" (TrustMRR — payment-provider-verified)\n- \"What are the reviews / alternatives for this software?\" (Capterra)\n- \"Is this business BBB accredited? What's its rating, and any complaints or scam reports against it?\" (BBB)\n- \"How's this Kickstarter campaign doing? What updates has the creator posted?\"\n- Vendor due-diligence before buying or partnering.\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. **Product Hunt** — `/producthunt/search` (`query`) to find a product\n   `id`; `/producthunt/product/{id}` for detail (+ `/about`, `/makers`,\n   `/launches`, `/reviews`, `/alternatives`, `/customers`).\n   `/producthunt/leaderboard` and `/producthunt/category/{slug}/products`\n   cover browsing/trending.\n2. **Trustpilot** — `/trustpilot/business-units/search` (`q`) to find a\n   business `slug`; `/trustpilot/business/{slug}` for the profile (+\n   `/reviews`, `/related`). `/trustpilot/categories` / `/categories/search`\n   browse by industry.\n3. **TrustMRR** — `/trustmrr/startups` to browse, or `/trustmrr/startup/{slug}`\n   for one company's payment-provider-verified revenue profile (see also\n   the `crawlora-datasets` skill's `trustmrr` dataset for bulk/aggregate\n   queries). `/trustmrr/leaderboard` ranks by MRR; `/trustmrr/categories`\n   browses by category.\n4. **Capterra** — `/capterra/search` (`q`) to find a `product_id`, then\n   `/capterra/product` for detail and `/capterra/product/reviews` for user reviews.\n5. **BBB (Better Business"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"business-review-trust-research\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1791251284439\n}"},{"path":"reference/endpoints.md","content":"# business-review-trust-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**41 endpoints across 6 platform group(s).**\n\n## ProductHunt (11)\n\n### `producthunt_about`\n\n- **HTTP:** `GET /producthunt/product/{id}/about`\n- **What:** Retrieve Product Hunt product about page. Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.\n- **Params:** `id` (string, **required**) — Product Hunt slug\n\n### `producthunt_alternatives`\n\n- **HTTP:** `GET /producthunt/product/{id}/alternatives`\n- **What:** Retrieve Product Hunt product alternatives. Returns paginated alternatives, tags, and related discussions for a Product Hunt product.\n- **Params:** `cursor` (string, optional) — Pagination cursor; `first` (integer, optional) — Page size; `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Sort order; `tags` (string, optional) — Comma-separated tag slugs\n\n### `producthunt_category`\n\n- **HTTP:** `GET /producthunt/category/{slug}`\n- **What:** Retrieve Product Hunt category details. Returns the category page payload for a Product Hunt category slug.\n- **Params:** `slug` (string, **required**) — Product Hunt category slug\n\n### `producthunt_category_products`\n\n- **HTTP:** `GET /producthunt/category/{slug}/products`\n- **What:** Retrieve Product Hunt category products. Returns the products in a Product Hunt category (now backed by Product Hunt topics), cursor-paginated. Pass the `cursor` from a previous response's `end_cursor` to page; `page_size` controls the batch size. `page`, `featured_only`, `order` and `tags` are accepted for compatibility but no longer affect the result.\n- **Params:** `cursor` (string, optional) — Pagination cursor from a previous response's end_cursor; `featured_only` (boolean, optional) — Accepted for compatibility; no longer affects results; `order` (string, optional) — Accepted for compatibility; no longer affects results; `page` (integer, optional) — Accepted for compatibility; use cursor to paginate; `page_size` (integer, optional) — Page size (number of products); `slug` (string, **required**) — Product Hunt category slug; `tags` (string, optional) — Accepted for compatibility; no longer affects results\n\n### `producthunt_customers`\n\n- **HTTP:** `GET /producthunt/product/{id}/customers`\n- **What:** Retrieve Product Hunt product customers. Returns paginated customer products for a Product Hunt product using Product Hunt's ProductCustomersPage GraphQL operation.\n- **Params:** `id` (string, **required**) — Product Hunt slug; `order` (string, optional) — Prod"},{"path":"skill-card.md","content":"## Description:\n\nResearches software products, business reputation, startup revenue, and crowdfunding campaigns through Crawlora's public-data API.\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\nResearchers, procurement teams, and other users assessing vendors or products use this skill to compare public reviews, business profiles, revenue listings, product launches, and campaign updates before making decisions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Business names, product names, campaign identifiers, and search queries are sent to Crawlora.\n\nMitigation: Do not submit secrets, credentials, private customer data, or confidential investigation details in searches.\n\n## Reference(s):\n\n- [Endpoint reference](artifact/reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill listing](https://clawhub.ai/crawlora-org/skills/business-review-trust-research)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance, Shell commands]\n\n**Output Format:** [Markdown research summaries and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Public-source results may be paginated; a Crawlora API key is required.]\n\n## Skill Version(s):\n\n1.0.18 (source: ClawHub 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."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1484,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T16:02:47.659Z","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-11T16:02:47.659Z","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-11T21:01:24.768Z","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"}]}}}