# fetchbean > The tool layer for AI agents. One key for live web tools (search, scraping, model pricing, weather, App Store, jobs) and the user's own connected SaaS accounts. fetchbean runs the keys and billing; you load prepaid credits you can't overspend and call. ## What it is - One API and one prepaid wallet in front of multiple tool providers, so you don't open a separate account, manage a separate key, or track a separate bill for each one. - Curated, normalized tools that return a stable JSON shape. A generic `run` gives raw access to any other provider method, returned unchanged. - First-party endpoints hosted by fetchbean (no upstream provider), such as `/v1/quotes/random` and `/v1/uuid`. - Discovery without a key: `GET /discover?q=` ranks matching tools (with the call + params); `GET /catalog` lists everything. - Prepaid credits with a hard spend cap: when the balance runs out, calls stop. Provider failures and timeouts are billed at zero. ## Tools - `search`: Search the web and get ranked results (title, url, description). Fetch a result's full text with the read or firecrawl_scrape tool. (`POST /v1/search`) - `read`: Fetch a URL and return clean markdown, no nav or clutter. (`POST /v1/read`) - `weather`: Current conditions for a place by name or lat/lon. (`POST /v1/weather`) - `ios_app_search`: Search iOS App Store apps by keyword and storefront country. (`POST /v1/ios_app_search`) - `exa_search`: Search the open web for ranked links (title, url, snippet, score). The default web search; use `read` to fetch a result's full text. (`POST /v1/exa_search`) - `jina_read`: Fetch a URL and return clean markdown, no nav or clutter. (`POST /v1/jina_read`) - `jina_search`: Search the web for ranked links (title, url, snippet). Use `read` to fetch a result's full page. (`POST /v1/jina_search`) - `firecrawl_scrape`: Scrape a URL to clean, LLM-ready markdown with JS rendering. Handles dynamic, script-heavy pages a plain reader misses. (`POST /v1/firecrawl_scrape`) - `firecrawl_search`: Search the web and get ranked results (title, url, description). Fetch a result's full text with the read or firecrawl_scrape tool. (`POST /v1/firecrawl_search`) - `openweather_current`: Current conditions for a place by name or lat/lon. (`POST /v1/openweather_current`) - `contextdev_brand`: Structured brand profile (logos, colors, description, socials, industry, address) for a company by domain, email, name, or ticker. (`POST /v1/contextdev_brand`) - `contextdev_naics`: Classify a company into 2022 NAICS industry codes (code, name, confidence) by domain or company name. (`POST /v1/contextdev_naics`) - `contextdev_sic`: Classify a company into SIC industry codes (code, name, major group, confidence) by domain or company name. type: original_sic (default) or latest_sec. (`POST /v1/contextdev_sic`) - `logodev_search`: Resolve a company or brand name to its domain — fuzzy search over logo.dev's brand index. (`POST /v1/logodev_search`) - `apprevs_search`: Search iOS App Store apps by keyword and storefront country. (`POST /v1/apprevs_search`) - `ios_app_lookup`: Fetch full App Store metadata for an iOS app by track ID. (`POST /v1/ios_app_lookup`) - `ios_app_reviews`: Fetch App Store reviews with rating distribution for an iOS app. (`POST /v1/ios_app_reviews`) - `ios_app_rating_history`: Fetch stored App Store rating snapshots for an iOS app. (`POST /v1/ios_app_rating_history`) - `ios_app_insights`: Read cached AI review insights for an iOS app, if one exists. (`POST /v1/ios_app_insights`) - `ios_app_research`: Generate fresh AI insights from App Store reviews you pass in (supply reviews; pull them with the reviews tool first). (`POST /v1/ios_app_research`) - `fireflies_search_transcripts`: Find meetings by keyword, date, or participant; returns matching transcript ids and metadata (not full text). Use first, then the transcript tool. (needs a connected fireflies account) (`POST /v1/fireflies_search_transcripts`) - `fireflies_transcript`: Fetch a meeting transcript with its summary, keywords, and action items. (needs a connected fireflies account) (`POST /v1/fireflies_transcript`) - `fireflies_action_items`: Get just the action items and outline from a meeting. (needs a connected fireflies account) (`POST /v1/fireflies_action_items`) - `fireflies_user`: Confirm whose Fireflies account the connected key acts as. (needs a connected fireflies account) (`POST /v1/fireflies_user`) - `fireflies_recent_meetings`: Your meetings from the last N days (default 7), newest first. (needs a connected fireflies account) (`POST /v1/fireflies_recent_meetings`) - `fireflies_ai_app_outputs`: Outputs from Fireflies AI Apps run on your meetings (custom summaries, extractions). (needs a connected fireflies account) (`POST /v1/fireflies_ai_app_outputs`) - `fireflies_active_meetings`: Meetings currently in progress, with status and details. (needs a connected fireflies account) (`POST /v1/fireflies_active_meetings`) - `fireflies_analytics`: Team and per-user conversation/meeting metrics over a time range. (needs a connected fireflies account) (`POST /v1/fireflies_analytics`) - `fireflies_channels`: List your channels/folders with membership. (needs a connected fireflies account) (`POST /v1/fireflies_channels`) - `fireflies_channel`: Details and membership for one channel. (needs a connected fireflies account) (`POST /v1/fireflies_channel`) - `fireflies_contacts`: Your contacts, sorted by recent meeting activity. (needs a connected fireflies account) (`POST /v1/fireflies_contacts`) - `fireflies_soundbites`: Shareable audio/transcript clips from your meetings. (needs a connected fireflies account) (`POST /v1/fireflies_soundbites`) - `fireflies_user_groups`: Team structure and group membership. (needs a connected fireflies account) (`POST /v1/fireflies_user_groups`) - `fireflies_rule_executions`: Automation rule execution logs grouped by meeting (Enterprise). (needs a connected fireflies account) (`POST /v1/fireflies_rule_executions`) - `fireflies_update_meeting_title`: Rename a meeting (admin). (needs a connected fireflies account) (`POST /v1/fireflies_update_meeting_title`) - `fireflies_share_meeting`: Share a meeting transcript with email addresses. (needs a connected fireflies account) (`POST /v1/fireflies_share_meeting`) - `fireflies_revoke_meeting_access`: Remove a previously granted meeting share. (needs a connected fireflies account) (`POST /v1/fireflies_revoke_meeting_access`) - `fireflies_move_meeting`: Move one or more meetings to a channel/folder. (needs a connected fireflies account) (`POST /v1/fireflies_move_meeting`) - `fireflies_create_soundbite`: Clip a soundbite from a meeting transcript. (needs a connected fireflies account) (`POST /v1/fireflies_create_soundbite`) - `posthog_query`: Run a HogQL/SQL query over your PostHog events, persons, and analytics. The main PostHog read tool. (needs a connected posthog account) (`POST /v1/posthog_query`) - `posthog_request`: Escape hatch: call any PostHog REST endpoint (read or write) on your own key. `{project_id}` in the path is filled from your connection. Prefer the curated posthog tools when one fits. Not idempotent for writes. (needs a connected posthog account) (`POST /v1/posthog_request`) - `posthog_projects`: Your PostHog account, organization, and accessible projects (ids for the other tools). (needs a connected posthog account) (`POST /v1/posthog_projects`) - `posthog_feature_flags`: List your feature flags (prefer this curated tool over the raw request escape hatch). (needs a connected posthog account) (`POST /v1/posthog_feature_flags`) - `posthog_feature_flag`: Get one feature flag by id. (needs a connected posthog account) (`POST /v1/posthog_feature_flag`) - `posthog_create_feature_flag`: Create a feature flag (pass any PostHog flag fields, e.g. filters/rollout). (needs a connected posthog account) (`POST /v1/posthog_create_feature_flag`) - `posthog_update_feature_flag`: Update a feature flag (e.g. toggle `active`, change rollout). Pass any PostHog flag fields. (needs a connected posthog account) (`POST /v1/posthog_update_feature_flag`) - `posthog_insights`: List your saved insights. (needs a connected posthog account) (`POST /v1/posthog_insights`) - `posthog_dashboards`: List your dashboards. (needs a connected posthog account) (`POST /v1/posthog_dashboards`) - `posthog_error_issues`: List grouped error-tracking issues. (needs a connected posthog account) (`POST /v1/posthog_error_issues`) - `linear_viewer`: The Linear account your key authenticates as. (needs a connected linear account) (`POST /v1/linear_viewer`) - `linear_issues`: List issues, filtered by team, state, assignee, or priority. (needs a connected linear account) (`POST /v1/linear_issues`) - `linear_issue`: Get one issue by UUID or human identifier (e.g. ENG-123). (needs a connected linear account) (`POST /v1/linear_issue`) - `linear_search`: Free-text search across your Linear issues. (needs a connected linear account) (`POST /v1/linear_search`) - `linear_teams`: List your teams (id, key, name). (needs a connected linear account) (`POST /v1/linear_teams`) - `linear_projects`: List projects with status and progress. (needs a connected linear account) (`POST /v1/linear_projects`) - `linear_comments`: Read the comment thread on an issue, by UUID or identifier (e.g. ENG-123). (needs a connected linear account) (`POST /v1/linear_comments`) - `linear_workflow_states`: A team's workflow states (id, name, type) — the stateId to move an issue. Filter by team_key (e.g. ENG). (needs a connected linear account) (`POST /v1/linear_workflow_states`) - `linear_users`: Workspace members (id, name, email) — the assigneeId for creating or reassigning issues. (needs a connected linear account) (`POST /v1/linear_users`) - `linear_labels`: Issue labels across the workspace (id, name, team) — the labelIds for create/update. (needs a connected linear account) (`POST /v1/linear_labels`) - `linear_create_issue`: Create an issue (needs a teamId; list teams first). (needs a connected linear account) (`POST /v1/linear_create_issue`) - `linear_update_issue`: Update an issue by its UUID (get it from the issue tool); stateId/assigneeId are UUIDs too. (needs a connected linear account) (`POST /v1/linear_update_issue`) - `linear_create_comment`: Add a comment to an issue (issueId is the UUID). (needs a connected linear account) (`POST /v1/linear_create_comment`) - `linear_graphql`: Escape hatch: run any Linear GraphQL query or mutation on your own key. Prefer the curated linear tools when one fits. (needs a connected linear account) (`POST /v1/linear_graphql`) - `revenuecat_projects`: List the projects your key can see. (needs a connected revenuecat account) (`POST /v1/revenuecat_projects`) - `revenuecat_customer`: Get ONE customer by their app_user_id (the customer_id param), incl. active entitlements. (needs a connected revenuecat account) (`POST /v1/revenuecat_customer`) - `revenuecat_customers`: List/page customers; the optional search is exact-email only (no name or partial match). (needs a connected revenuecat account) (`POST /v1/revenuecat_customers`) - `revenuecat_customer_subscriptions`: A customer's subscriptions (status, store, access, renewal). (needs a connected revenuecat account) (`POST /v1/revenuecat_customer_subscriptions`) - `revenuecat_products`: List products (store id, type, price). (needs a connected revenuecat account) (`POST /v1/revenuecat_products`) - `revenuecat_entitlements`: List entitlements and their products. (needs a connected revenuecat account) (`POST /v1/revenuecat_entitlements`) - `revenuecat_offerings`: List offerings and their packages. (needs a connected revenuecat account) (`POST /v1/revenuecat_offerings`) - `revenuecat_grant_entitlement`: Grant a promotional entitlement to a customer (write). (needs a connected revenuecat account) (`POST /v1/revenuecat_grant_entitlement`) - `revenuecat_request`: Escape hatch: call any v2 endpoint on your key (path fills {project_id}). Prefer the curated revenuecat tools when one fits. (needs a connected revenuecat account) (`POST /v1/revenuecat_request`) - `expo_whoami`: The Expo account/robot your token authenticates as, and its accounts. (needs a connected expo account) (`POST /v1/expo_whoami`) - `expo_apps`: List the apps (projects) under an account; gives the app_id the build/update tools need. (needs a connected expo account) (`POST /v1/expo_apps`) - `expo_app`: Get one app by full name (@owner/slug) or app_id. (needs a connected expo account) (`POST /v1/expo_app`) - `expo_builds`: Recent EAS builds for an app (status/platform/artifact url); filter by platform (ios/android) or status. (needs a connected expo account) (`POST /v1/expo_builds`) - `expo_build`: One build by id, with full detail (commit, error docs, queue/duration metrics). (needs a connected expo account) (`POST /v1/expo_build`) - `expo_updates`: Recent EAS Updates on a branch (grouped per publish). (needs a connected expo account) (`POST /v1/expo_updates`) - `expo_submissions`: Recent App Store / Play Store submissions for an app. (needs a connected expo account) (`POST /v1/expo_submissions`) - `expo_cancel_build`: Cancel an in-progress EAS build (write). (needs a connected expo account) (`POST /v1/expo_cancel_build`) - `expo_graphql`: Escape hatch: run any Expo GraphQL query or mutation on your own token (covers the long tail + create-build/publish-update). (needs a connected expo account) (`POST /v1/expo_graphql`) - `github_contributions`: Any user's contribution calendar (the green graph): total + daily counts. Omit from/to for the last year. (`POST /v1/github_contributions`) - `github_user`: A user's public profile (bio, company, location, follower/repo counts). (`POST /v1/github_user`) - `github_repos`: A user's public repositories, newest-pushed first (stars, language, description). (`POST /v1/github_repos`) - `github_search`: Search repositories, users, or issues (type = repository|user|issue). (`POST /v1/github_search`) - `github_whoami`: The account your connected GitHub token authenticates as. (needs a connected github account) (`POST /v1/github_whoami`) - `github_graphql`: Escape hatch: run any GitHub GraphQL query or mutation on your own token (BYOK only). (needs a connected github account) (`POST /v1/github_graphql`) - `github_repo`: Get one repository (stars, language, topics, default branch, license). (`POST /v1/github_repo`) - `github_contents`: Read a file (decoded text) or list a directory. Omit path for the repo root; ref = branch/sha. (`POST /v1/github_contents`) - `github_issues`: List issues for a repo (state=open|closed|all, labels). Includes PRs. (`POST /v1/github_issues`) - `github_issue`: Get one issue by number (title, body, labels, state). (`POST /v1/github_issue`) - `github_pull_requests`: List pull requests for a repo (state=open|closed|all). (`POST /v1/github_pull_requests`) - `github_pull_request`: Get one PR by number (status, head/base, mergeable, diff stats). (`POST /v1/github_pull_request`) - `github_commits`: Recent commits for a repo (filter by sha/branch, path, author). (`POST /v1/github_commits`) - `github_releases`: List releases for a repo, or the latest with latest=true. (`POST /v1/github_releases`) - `github_code_search`: Search code across GitHub (scope with qualifiers like repo:/language:/path:). (`POST /v1/github_code_search`) - `github_create_issue`: Open an issue (BYOK). Required: repo + title; optional body, labels, assignees. (needs a connected github account) (`POST /v1/github_create_issue`) - `github_comment`: Comment on an issue or PR (BYOK). Required: repo + number + body. (needs a connected github account) (`POST /v1/github_comment`) - `github_create_pr`: Open a PR (BYOK). Required: repo + title + head (branch) + base (branch). (needs a connected github account) (`POST /v1/github_create_pr`) - `github_rest`: Escape hatch: call any GitHub REST endpoint on your own token (notifications, traffic, etc.). BYOK only. (needs a connected github account) (`POST /v1/github_rest`) - `betterstack_monitors`: List your uptime monitors with status, last check, and SSL/domain expiry. (needs a connected betterstack account) (`POST /v1/betterstack_monitors`) - `betterstack_monitor`: Get one monitor by id. (needs a connected betterstack account) (`POST /v1/betterstack_monitor`) - `betterstack_monitor_groups`: List monitor groups. (needs a connected betterstack account) (`POST /v1/betterstack_monitor_groups`) - `betterstack_heartbeats`: List heartbeat (cron/job) monitors with their status. (needs a connected betterstack account) (`POST /v1/betterstack_heartbeats`) - `betterstack_incidents`: List incidents. Filter with resolved=false / acknowledged=false, from/to (YYYY-MM-DD), or monitor_id. (needs a connected betterstack account) (`POST /v1/betterstack_incidents`) - `betterstack_incident`: Get one incident by id (cause, status, acknowledged/resolved by). (needs a connected betterstack account) (`POST /v1/betterstack_incident`) - `betterstack_incident_timeline`: The full timeline of events for one incident. (needs a connected betterstack account) (`POST /v1/betterstack_incident_timeline`) - `betterstack_on_calls`: On-call calendars and who is currently on call (in relationships.on_call_users). (needs a connected betterstack account) (`POST /v1/betterstack_on_calls`) - `betterstack_escalation_policies`: List escalation policies and their steps. (needs a connected betterstack account) (`POST /v1/betterstack_escalation_policies`) - `betterstack_status_pages`: List your status pages. (needs a connected betterstack account) (`POST /v1/betterstack_status_pages`) - `betterstack_status_page`: Get one status page by id. (needs a connected betterstack account) (`POST /v1/betterstack_status_page`) - `betterstack_status_page_resources`: The resources (monitors etc.) shown on a status page. (needs a connected betterstack account) (`POST /v1/betterstack_status_page_resources`) - `betterstack_status_page_reports`: Reports / maintenance posted on a status page. (needs a connected betterstack account) (`POST /v1/betterstack_status_page_reports`) - `betterstack_metadata`: List metadata key/values (filter by owner_type/owner_id). (needs a connected betterstack account) (`POST /v1/betterstack_metadata`) - `betterstack_team_members`: List members of the token's team (name, email, role). (needs a connected betterstack account) (`POST /v1/betterstack_team_members`) - `betterstack_acknowledge_incident`: Acknowledge an incident by id. (needs a connected betterstack account) (`POST /v1/betterstack_acknowledge_incident`) - `betterstack_resolve_incident`: Resolve an incident by id. (needs a connected betterstack account) (`POST /v1/betterstack_resolve_incident`) - `betterstack_create_monitor`: Create a monitor. Required: url + monitor_type (e.g. status, keyword, ping); plus options. (needs a connected betterstack account) (`POST /v1/betterstack_create_monitor`) - `betterstack_update_monitor`: Update a monitor by id (pause via {"paused": true}). (needs a connected betterstack account) (`POST /v1/betterstack_update_monitor`) - `betterstack_create_status_report`: Post a report / maintenance to a status page (title, message, affected_resources). (needs a connected betterstack account) (`POST /v1/betterstack_create_status_report`) - `betterstack_request`: Escape hatch: call any Uptime API endpoint on your token (reaches the long tail incl. deletes). host="betterstack" for team-members/roles. (needs a connected betterstack account) (`POST /v1/betterstack_request`) - `gitlab_project`: Get one project (description, stars, default branch, visibility). (`POST /v1/gitlab_project`) - `gitlab_projects`: List/search projects (search=, membership=true for your own). (`POST /v1/gitlab_projects`) - `gitlab_user`: A user by username or numeric id. (`POST /v1/gitlab_user`) - `gitlab_contents`: Read a file from a project repo (decoded text). ref = branch/tag/sha. (`POST /v1/gitlab_contents`) - `gitlab_tree`: List a directory in a project repo (path=, ref=, recursive=). (`POST /v1/gitlab_tree`) - `gitlab_issues`: List issues for a project (state=opened|closed|all, labels). (`POST /v1/gitlab_issues`) - `gitlab_issue`: Get one issue by its per-project iid. (`POST /v1/gitlab_issue`) - `gitlab_merge_requests`: List merge requests for a project (state=opened|merged|closed|all). (`POST /v1/gitlab_merge_requests`) - `gitlab_merge_request`: Get one merge request by its per-project iid. (`POST /v1/gitlab_merge_request`) - `gitlab_commits`: List commits for a project (ref_name, since/until, path). (`POST /v1/gitlab_commits`) - `gitlab_releases`: Releases for a project, or one by tag. (`POST /v1/gitlab_releases`) - `gitlab_pipelines`: CI/CD pipelines for a project, or one by pipeline_id (status, ref). (`POST /v1/gitlab_pipelines`) - `gitlab_search`: Global search (BYOK — GitLab requires a token). scope = projects|issues|merge_requests|users|blobs (code search needs Advanced Search). (needs a connected gitlab account) (`POST /v1/gitlab_search`) - `gitlab_user_events`: A user's activity feed (the closest thing to a contribution feed; no calendar API exists). (`POST /v1/gitlab_user_events`) - `gitlab_create_issue`: Open an issue (BYOK). Required: project + title; optional description, labels. (needs a connected gitlab account) (`POST /v1/gitlab_create_issue`) - `gitlab_create_note`: Comment on an issue (BYOK). Required: project + iid + body. (needs a connected gitlab account) (`POST /v1/gitlab_create_note`) - `gitlab_create_merge_request`: Open a merge request (BYOK). Required: project + source_branch + target_branch + title. (needs a connected gitlab account) (`POST /v1/gitlab_create_merge_request`) - `gitlab_rest`: Escape hatch: call any /api/v4 endpoint on your own token + host (BYOK only). (needs a connected gitlab account) (`POST /v1/gitlab_rest`) - `gitlab_graphql`: Escape hatch: run any GitLab GraphQL query or mutation on your own token + host (BYOK only). (needs a connected gitlab account) (`POST /v1/gitlab_graphql`) - `notion_search`: Full-text search across pages and databases. filter='page'|'database' narrows the object type. (needs a connected notion account) (`POST /v1/notion_search`) - `notion_page`: Get one page's properties + metadata by id (use read_page for the body content). (needs a connected notion account) (`POST /v1/notion_page`) - `notion_read_page`: Read a whole page's content as markdown — recursively crawls the block tree and flattens it (capped for very large pages). (needs a connected notion account) (`POST /v1/notion_read_page`) - `notion_database`: Get a database's schema (title, properties) by id. (needs a connected notion account) (`POST /v1/notion_database`) - `notion_query_database`: Query a database's rows with filter/sorts. Returns one page of results (paginate via start_cursor). (needs a connected notion account) (`POST /v1/notion_query_database`) - `notion_users`: List the workspace's users (people + bots). (needs a connected notion account) (`POST /v1/notion_users`) - `notion_create_page`: Create a page under a parent page or database. Required: parent + properties; children = block content. (needs a connected notion account) (`POST /v1/notion_create_page`) - `notion_append_blocks`: Append blocks to a page or block's children. Required: block_id + a children array. (needs a connected notion account) (`POST /v1/notion_append_blocks`) - `notion_comment`: Add a comment to a page (via parent) or an existing discussion (via discussion_id). Pass body or rich_text. (needs a connected notion account) (`POST /v1/notion_comment`) - `notion_request`: Escape hatch: call any Notion API endpoint on your token (host pinned to api.notion.com). (needs a connected notion account) (`POST /v1/notion_request`) - `dodo_payments`: List payments (filter by status, customer_id, etc.). (needs a connected dodo account) (`POST /v1/dodo_payments`) - `dodo_payment`: Get one payment by id. (needs a connected dodo account) (`POST /v1/dodo_payment`) - `dodo_subscriptions`: List subscriptions (status, customer). (needs a connected dodo account) (`POST /v1/dodo_subscriptions`) - `dodo_subscription`: Get one subscription by id. (needs a connected dodo account) (`POST /v1/dodo_subscription`) - `dodo_customers`: List customers (filter by email, etc.). (needs a connected dodo account) (`POST /v1/dodo_customers`) - `dodo_customer`: Get one customer by id. (needs a connected dodo account) (`POST /v1/dodo_customer`) - `dodo_products`: List products. (needs a connected dodo account) (`POST /v1/dodo_products`) - `dodo_refunds`: List refunds. (needs a connected dodo account) (`POST /v1/dodo_refunds`) - `dodo_disputes`: List disputes/chargebacks. (needs a connected dodo account) (`POST /v1/dodo_disputes`) - `dodo_payouts`: List payouts. (needs a connected dodo account) (`POST /v1/dodo_payouts`) - `dodo_licenses`: List license keys (validate/activate via the request passthrough). (needs a connected dodo account) (`POST /v1/dodo_licenses`) - `dodo_discounts`: List discount codes. (needs a connected dodo account) (`POST /v1/dodo_discounts`) - `dodo_create_refund`: Refund a payment. Required: payment_id; optional amount (partial) + reason. (needs a connected dodo account) (`POST /v1/dodo_create_refund`) - `dodo_cancel_subscription`: Cancel a subscription by id. (needs a connected dodo account) (`POST /v1/dodo_cancel_subscription`) - `dodo_create_checkout`: Create a hosted checkout session / payment link (per Dodo's checkout-sessions schema). (needs a connected dodo account) (`POST /v1/dodo_create_checkout`) - `dodo_customer_portal`: Generate a self-serve billing-portal session link for a customer. (needs a connected dodo account) (`POST /v1/dodo_customer_portal`) - `dodo_validate_license`: Check whether a license key is valid. Optional license_key_instance_id. (needs a connected dodo account) (`POST /v1/dodo_validate_license`) - `dodo_activate_license`: Activate a license key on a device/instance. Required: license_key + name. (needs a connected dodo account) (`POST /v1/dodo_activate_license`) - `dodo_create_customer`: Create a customer. Required: email; name + phone_number optional. (needs a connected dodo account) (`POST /v1/dodo_create_customer`) - `dodo_create_product`: Create a product (name + price/tax_category per Dodo's schema). (needs a connected dodo account) (`POST /v1/dodo_create_product`) - `dodo_payment_line_items`: Line items for a payment. (needs a connected dodo account) (`POST /v1/dodo_payment_line_items`) - `dodo_balance_ledger`: Balance ledger entries (filter by date range, event type, currency). (needs a connected dodo account) (`POST /v1/dodo_balance_ledger`) - `dodo_request`: Escape hatch: call any Dodo endpoint on your key (license validate/activate, portal sessions, etc.). (needs a connected dodo account) (`POST /v1/dodo_request`) - `spaceship_domains`: List the domains in your account (expiry, auto-renew, nameservers). (needs a connected spaceship account) (`POST /v1/spaceship_domains`) - `spaceship_domain`: Details for one of your domains (expiry, auto-renew, nameservers, status). (needs a connected spaceship account) (`POST /v1/spaceship_domain`) - `spaceship_dns_records`: List the DNS records for one of your domains. (needs a connected spaceship account) (`POST /v1/spaceship_dns_records`) - `spaceship_domain_available`: Check whether a domain is available to register. (needs a connected spaceship account) (`POST /v1/spaceship_domain_available`) - `spaceship_dns_save`: Add or update DNS records (upsert). Pass items per Spaceship's record schema. (needs a connected spaceship account) (`POST /v1/spaceship_dns_save`) - `spaceship_dns_delete`: Delete DNS records. Pass the records to remove in items. (needs a connected spaceship account) (`POST /v1/spaceship_dns_delete`) - `spaceship_set_nameservers`: Update a domain's nameservers (provider preset or custom hosts). (needs a connected spaceship account) (`POST /v1/spaceship_set_nameservers`) - `spaceship_set_autorenew`: Turn auto-renew on or off for a domain. (needs a connected spaceship account) (`POST /v1/spaceship_set_autorenew`) - `spaceship_request`: Escape hatch: call any Spaceship endpoint on your key (register, renew, transfer, contacts, async-operations). (needs a connected spaceship account) (`POST /v1/spaceship_request`) - `supabase_projects`: List your Supabase projects (id, ref, name, region, status). (needs a connected supabase account) (`POST /v1/supabase_projects`) - `supabase_project`: Details for one project by its ref. (needs a connected supabase account) (`POST /v1/supabase_project`) - `supabase_organizations`: List your Supabase organizations. (needs a connected supabase account) (`POST /v1/supabase_organizations`) - `supabase_logs`: Recent project logs (optional sql + iso_timestamp_start/end filters). (needs a connected supabase account) (`POST /v1/supabase_logs`) - `supabase_run_sql`: Run SQL on a project. Defaults to read-only; pass read_only:false to allow writes/DDL. (needs a connected supabase account) (`POST /v1/supabase_run_sql`) - `supabase_request`: Escape hatch: call any Supabase Management API endpoint on your connection. (needs a connected supabase account) (`POST /v1/supabase_request`) - `cloudflare_zones`: List your zones (domains). Filter by name. (needs a connected cloudflare account) (`POST /v1/cloudflare_zones`) - `cloudflare_zone`: Details for one zone by id. (needs a connected cloudflare account) (`POST /v1/cloudflare_zone`) - `cloudflare_dns_records`: List a zone's DNS records (filter by type/name). (needs a connected cloudflare account) (`POST /v1/cloudflare_dns_records`) - `cloudflare_accounts`: List the accounts your token can access. (needs a connected cloudflare account) (`POST /v1/cloudflare_accounts`) - `cloudflare_create_dns_record`: Add a DNS record. Required: zone_id, type, name, content; optional ttl, proxied. (needs a connected cloudflare account) (`POST /v1/cloudflare_create_dns_record`) - `cloudflare_update_dns_record`: Update a DNS record by zone_id + record_id (fields to change in the body). (needs a connected cloudflare account) (`POST /v1/cloudflare_update_dns_record`) - `cloudflare_delete_dns_record`: Delete a DNS record by zone_id + record_id. (needs a connected cloudflare account) (`POST /v1/cloudflare_delete_dns_record`) - `cloudflare_purge_cache`: Purge a zone's cache. Defaults to purge_everything; pass files:[] for selective purge. (needs a connected cloudflare account) (`POST /v1/cloudflare_purge_cache`) - `cloudflare_request`: Escape hatch: call any Cloudflare v4 endpoint on your token (Workers, Pages, KV, rulesets, analytics). (needs a connected cloudflare account) (`POST /v1/cloudflare_request`) - `stripe_customers`: List customers (filter by email, etc.). (needs a connected stripe account) (`POST /v1/stripe_customers`) - `stripe_customer`: Get one customer by id. (needs a connected stripe account) (`POST /v1/stripe_customer`) - `stripe_payment_intents`: List payment intents. (needs a connected stripe account) (`POST /v1/stripe_payment_intents`) - `stripe_payment_intent`: Get one payment intent by id. (needs a connected stripe account) (`POST /v1/stripe_payment_intent`) - `stripe_charges`: List charges. (needs a connected stripe account) (`POST /v1/stripe_charges`) - `stripe_subscriptions`: List subscriptions (filter by customer, status, price). (needs a connected stripe account) (`POST /v1/stripe_subscriptions`) - `stripe_subscription`: Get one subscription by id. (needs a connected stripe account) (`POST /v1/stripe_subscription`) - `stripe_invoices`: List invoices. (needs a connected stripe account) (`POST /v1/stripe_invoices`) - `stripe_products`: List products. (needs a connected stripe account) (`POST /v1/stripe_products`) - `stripe_prices`: List prices. (needs a connected stripe account) (`POST /v1/stripe_prices`) - `stripe_refunds`: List refunds. (needs a connected stripe account) (`POST /v1/stripe_refunds`) - `stripe_balance`: Your current Stripe balance (available + pending). (needs a connected stripe account) (`POST /v1/stripe_balance`) - `stripe_balance_transactions`: List balance transactions (the money ledger). (needs a connected stripe account) (`POST /v1/stripe_balance_transactions`) - `stripe_payouts`: List payouts to your bank. (needs a connected stripe account) (`POST /v1/stripe_payouts`) - `stripe_events`: List recent account events. (needs a connected stripe account) (`POST /v1/stripe_events`) - `stripe_disputes`: List disputes / chargebacks. (needs a connected stripe account) (`POST /v1/stripe_disputes`) - `stripe_create_refund`: Refund a charge or payment_intent (moves money back). Required: charge OR payment_intent. (needs a connected stripe account) (`POST /v1/stripe_create_refund`) - `stripe_create_customer`: Create a customer (email, name, metadata). (needs a connected stripe account) (`POST /v1/stripe_create_customer`) - `stripe_cancel_subscription`: Cancel a subscription by id (stops recurring billing). (needs a connected stripe account) (`POST /v1/stripe_cancel_subscription`) - `stripe_create_payment_link`: Create a shareable payment link. line_items reference existing prices. (needs a connected stripe account) (`POST /v1/stripe_create_payment_link`) - `stripe_create_checkout`: Create a hosted Checkout session (per Stripe's checkout schema). (needs a connected stripe account) (`POST /v1/stripe_create_checkout`) - `stripe_request`: Escape hatch: call any Stripe endpoint on your key (form-encoded). params support nested objects/arrays. (needs a connected stripe account) (`POST /v1/stripe_request`) - `slack_conversations_list`: List channels (public/private the bot can see). (needs a connected slack account) (`POST /v1/slack_conversations_list`) - `slack_conversations_history`: Recent messages in a channel (the bot must be a member). (needs a connected slack account) (`POST /v1/slack_conversations_history`) - `slack_conversations_info`: Metadata for one channel. (needs a connected slack account) (`POST /v1/slack_conversations_info`) - `slack_users_list`: List workspace users. (needs a connected slack account) (`POST /v1/slack_users_list`) - `slack_users_info`: Profile for one user by id. (needs a connected slack account) (`POST /v1/slack_users_info`) - `slack_post_message`: Post a message to a channel (the bot must be a member). text or blocks. (needs a connected slack account) (`POST /v1/slack_post_message`) - `slack_update_message`: Edit a message by channel + ts. (needs a connected slack account) (`POST /v1/slack_update_message`) - `slack_delete_message`: Delete a message by channel + ts. (needs a connected slack account) (`POST /v1/slack_delete_message`) - `slack_request`: Escape hatch: call any Slack Web API method on your token. http_method defaults to POST. (needs a connected slack account) (`POST /v1/slack_request`) - `sentry_organizations`: List the organizations your token can access. (needs a connected sentry account) (`POST /v1/sentry_organizations`) - `sentry_projects`: List an organization's projects. (needs a connected sentry account) (`POST /v1/sentry_projects`) - `sentry_issues`: List issues. Defaults to is:unresolved; use query (e.g. 'is:unresolved lastSeen:-24h'), sort, limit, cursor. (needs a connected sentry account) (`POST /v1/sentry_issues`) - `sentry_issue`: Get one issue by id. (needs a connected sentry account) (`POST /v1/sentry_issue`) - `sentry_issue_events`: List the events for an issue. (needs a connected sentry account) (`POST /v1/sentry_issue_events`) - `sentry_latest_event`: The latest event (stacktrace, context) for an issue. (needs a connected sentry account) (`POST /v1/sentry_latest_event`) - `sentry_releases`: List an organization's releases. (needs a connected sentry account) (`POST /v1/sentry_releases`) - `sentry_update_issue`: Update an issue (status: resolved | unresolved | ignored, assignedTo, priority...). (needs a connected sentry account) (`POST /v1/sentry_update_issue`) - `sentry_request`: Escape hatch: call any Sentry API path on your token (under /api/0). Returns next_cursor when paginated. (needs a connected sentry account) (`POST /v1/sentry_request`) - `trakt_user`: Confirm whose Trakt account the connected token acts as. (needs a connected trakt account) (`POST /v1/trakt_user`) - `trakt_watchlist`: Your watchlist, optionally filtered by type (movies, shows, seasons, episodes). (needs a connected trakt account) (`POST /v1/trakt_watchlist`) - `trakt_history`: What you've watched, newest first. Filter by type and/or a date range (start_at/end_at). (needs a connected trakt account) (`POST /v1/trakt_history`) - `trakt_ratings`: Your ratings (1-10), optionally filtered by type. (needs a connected trakt account) (`POST /v1/trakt_ratings`) - `trakt_search`: Search by text. type defaults to 'movie,show'; returns matches with trakt/imdb/tmdb ids to use in the write tools. (needs a connected trakt account) (`POST /v1/trakt_search`) - `trakt_lists`: Your personal lists. (needs a connected trakt account) (`POST /v1/trakt_lists`) - `trakt_trending`: Most-watched movies or shows right now. type='movies' (default) or 'shows'. (needs a connected trakt account) (`POST /v1/trakt_trending`) - `trakt_recommendations`: Personalized movie or show recommendations based on your history. type='movies' (default) or 'shows'. (needs a connected trakt account) (`POST /v1/trakt_recommendations`) - `trakt_add_to_watchlist`: Add an item to your watchlist. Pass type + an id (imdb_id/tmdb_id/trakt_id/slug), or raw movies/shows/episodes arrays. (needs a connected trakt account) (`POST /v1/trakt_add_to_watchlist`) - `trakt_remove_from_watchlist`: Remove an item from your watchlist (same addressing as add). (needs a connected trakt account) (`POST /v1/trakt_remove_from_watchlist`) - `trakt_add_to_history`: Add an item to your watched history. Optional watched_at (ISO 8601, defaults to now). Same addressing as add-to-watchlist. (needs a connected trakt account) (`POST /v1/trakt_add_to_history`) - `trakt_remove_from_history`: Remove an item from your watched history (same addressing as mark-watched). (needs a connected trakt account) (`POST /v1/trakt_remove_from_history`) - `trakt_rate`: Rate an item 1-10. Pass type + an id + rating, or raw arrays where each item carries its own rating. (needs a connected trakt account) (`POST /v1/trakt_rate`) - `trakt_remove_rating`: Remove your rating from an item (same addressing as rate). (needs a connected trakt account) (`POST /v1/trakt_remove_rating`) - `tmdb_search`: Search movies, TV, and people. type='movie'|'tv'|'person' narrows it (default searches all). Returns TMDB ids + poster_path. (`POST /v1/tmdb_search`) - `tmdb_movie`: Full movie detail by TMDB id: overview, runtime, genres, plus credits, videos, images, external_ids (imdb_id), and watch providers. (`POST /v1/tmdb_movie`) - `tmdb_tv`: Full TV-show detail by TMDB id: overview, seasons, genres, plus credits, videos, images, external_ids, and watch providers. (`POST /v1/tmdb_tv`) - `tmdb_trending`: Trending titles. media_type='all'(default)|'movie'|'tv'|'person', time_window='day'|'week'(default). (`POST /v1/tmdb_trending`) - `tmdb_find`: Map an external id to TMDB records. Defaults to IMDb (external_source='imdb_id'), pass an imdb_id like tt0133093. Bridges trakt to TMDB. (`POST /v1/tmdb_find`) - `tmdb_discover`: Browse movies or TV by filters (with_genres, primary_release_year, sort_by, vote_average.gte, ...). type='movie'(default)|'tv'. (`POST /v1/tmdb_discover`) - `tmdb_recommendations`: Recommended (or similar=true) titles for a movie/TV id. type='movie'(default)|'tv'. (`POST /v1/tmdb_recommendations`) - `clerk_users`: List users (filter by query, email_address, user_id, order_by). (needs a connected clerk account) (`POST /v1/clerk_users`) - `clerk_user`: Get one user by id. (needs a connected clerk account) (`POST /v1/clerk_user`) - `clerk_organizations`: List organizations (filter by query, order_by). (needs a connected clerk account) (`POST /v1/clerk_organizations`) - `clerk_organization`: Get one organization by id or slug. (needs a connected clerk account) (`POST /v1/clerk_organization`) - `clerk_organization_memberships`: List the memberships of an organization. (needs a connected clerk account) (`POST /v1/clerk_organization_memberships`) - `clerk_sessions`: List sessions (filter by user_id, client_id, status). (needs a connected clerk account) (`POST /v1/clerk_sessions`) - `clerk_session`: Get one session by id. (needs a connected clerk account) (`POST /v1/clerk_session`) - `clerk_create_user`: Create a user (email_address[], password, first_name, username, ...). (needs a connected clerk account) (`POST /v1/clerk_create_user`) - `clerk_update_user`: Update a user by id (first_name, username, public_metadata, ...). (needs a connected clerk account) (`POST /v1/clerk_update_user`) - `clerk_ban_user`: Ban a user by id (also revokes their sessions). (needs a connected clerk account) (`POST /v1/clerk_ban_user`) - `clerk_delete_user`: Delete a user by id (permanent). (needs a connected clerk account) (`POST /v1/clerk_delete_user`) - `clerk_revoke_session`: Revoke a session by id (signs the user out of it). (needs a connected clerk account) (`POST /v1/clerk_revoke_session`) - `clerk_request`: Escape hatch: call any Clerk Backend API endpoint on your key (JSON). path required, method default GET. (needs a connected clerk account) (`POST /v1/clerk_request`) - `buffer_account`: The Buffer account your key authenticates as, and its organizations (with organizationId). (needs a connected buffer account) (`POST /v1/buffer_account`) - `buffer_channels`: List connected channels (social profiles) for an organization; gives the channel_id posts need. (needs a connected buffer account) (`POST /v1/buffer_channels`) - `buffer_posts`: List posts for an organization (Relay-paginated); filter by channel_ids or status. (needs a connected buffer account) (`POST /v1/buffer_posts`) - `buffer_post_metrics`: Aggregate post analytics over a time window (ISO start/end), optionally per channel. (needs a connected buffer account) (`POST /v1/buffer_post_metrics`) - `buffer_create_post`: Schedule a post to a channel (needs a channel_id; list channels first). mode: addToQueue/shareNext/shareNow/customScheduled. (needs a connected buffer account) (`POST /v1/buffer_create_post`) - `buffer_update_post`: Edit an existing post by its id (get it from buffer.posts). (needs a connected buffer account) (`POST /v1/buffer_update_post`) - `buffer_delete_post`: Delete a post by its id. (needs a connected buffer account) (`POST /v1/buffer_delete_post`) - `bluesky_profile`: A profile with follower/following/post counts: the connected account by default, or any actor (handle or did). (needs a connected bluesky account) (`POST /v1/bluesky_profile`) - `bluesky_timeline`: The connected account's home timeline (the following feed), paginated with a cursor. (needs a connected bluesky account) (`POST /v1/bluesky_timeline`) - `bluesky_author_feed`: Posts authored by an actor (the connected account by default). filter e.g. posts_no_replies, posts_with_media. (needs a connected bluesky account) (`POST /v1/bluesky_author_feed`) - `bluesky_notifications`: The connected account's notifications (likes, reposts, replies, follows, mentions, quotes). (needs a connected bluesky account) (`POST /v1/bluesky_notifications`) - `bluesky_search_posts`: Full-text search across public posts. sort: top | latest. Scope with author (handle or did). (needs a connected bluesky account) (`POST /v1/bluesky_search_posts`) - `bluesky_post`: Post to the connected account. Reply by passing reply_to {uri,cid}. Bare URLs aren't auto-linked, pass facets to make them clickable. (needs a connected bluesky account) (`POST /v1/bluesky_post`) - `bluesky_delete_post`: Delete one of your own posts by its at:// uri (from author_feed) or its rkey. (needs a connected bluesky account) (`POST /v1/bluesky_delete_post`) - `bluesky_like`: Like a post by its uri + cid (both come from a timeline/search result). (needs a connected bluesky account) (`POST /v1/bluesky_like`) - `bluesky_repost`: Repost a post by its uri + cid. (needs a connected bluesky account) (`POST /v1/bluesky_repost`) - `bluesky_follow`: Follow an actor by handle or did. (needs a connected bluesky account) (`POST /v1/bluesky_follow`) - `render_user`: Get the Render user associated with the connected API key. (needs a connected render account) (`POST /v1/render_user`) - `render_workspaces`: List workspaces the connected API key can access. (needs a connected render account) (`POST /v1/render_workspaces`) - `render_workspace`: Retrieve one workspace by id. (needs a connected render account) (`POST /v1/render_workspace`) - `render_services`: List services, databases, workers, cron jobs, and static sites. Filter by ownerId, name, type, region, etc. (needs a connected render account) (`POST /v1/render_services`) - `render_service`: Retrieve one Render service by id. (needs a connected render account) (`POST /v1/render_service`) - `render_deploys`: List deploys for a service, with optional status and date filters. (needs a connected render account) (`POST /v1/render_deploys`) - `render_deploy`: Retrieve one deploy for a service. (needs a connected render account) (`POST /v1/render_deploy`) - `render_events`: List recent events for a service. (needs a connected render account) (`POST /v1/render_events`) - `render_custom_domains`: List custom domains for a web service or static site. (needs a connected render account) (`POST /v1/render_custom_domains`) - `render_logs`: Query service, Postgres, and key value logs using Render's log filters. (needs a connected render account) (`POST /v1/render_logs`) - `render_metrics`: Fetch one Render metric series such as cpu, memory, http-requests, or bandwidth. (needs a connected render account) (`POST /v1/render_metrics`) - `render_trigger_deploy`: Trigger a deploy for a service. Supports clearCache, commitId, imageUrl, and deployMode. (needs a connected render account) (`POST /v1/render_trigger_deploy`) - `render_cancel_deploy`: Cancel an in-progress deploy for a service. (needs a connected render account) (`POST /v1/render_cancel_deploy`) - `render_rollback`: Trigger a rollback to a previous deploy. Auto-deploy can still redeploy newer changes later. (needs a connected render account) (`POST /v1/render_rollback`) - `render_restart_service`: Restart a Render service. (needs a connected render account) (`POST /v1/render_restart_service`) - `render_purge_cache`: Purge a web service cache if caching is enabled. (needs a connected render account) (`POST /v1/render_purge_cache`) - `render_request`: Escape hatch: call any Render REST API path on your API key, including secret-bearing and destructive endpoints. (needs a connected render account) (`POST /v1/render_request`) - `cal_me`: The connected cal.com account (id, email, username, timezone). (needs a connected cal account) (`POST /v1/cal_me`) - `cal_event_types`: Your cal.com event types (id, title, slug, length). The eventTypeId here is what you book against. (needs a connected cal account) (`POST /v1/cal_event_types`) - `cal_bookings`: List your bookings (filter by status or attendeeEmail; paginate with take/skip). (needs a connected cal account) (`POST /v1/cal_bookings`) - `cal_slots`: Open time slots for an event type between start and end (dates). Book one with create_booking. (needs a connected cal account) (`POST /v1/cal_slots`) - `cal_create_booking`: Book a meeting: pass start (ISO 8601 UTC), eventTypeId (or username + eventTypeSlug), and attendee {name, email, timeZone}. (needs a connected cal account) (`POST /v1/cal_create_booking`) - `cal_cancel_booking`: Cancel a booking by its uid (from bookings), with an optional cancellationReason. (needs a connected cal account) (`POST /v1/cal_cancel_booking`) - `canny_boards`: Your Canny boards (id, name, post count). The boardID here is what you filter and post against. (needs a connected canny account) (`POST /v1/canny_boards`) - `canny_posts`: Feedback posts: search, filter by board/status/tag, sort by score, trending, newest or statusChanged. Statuses: open, under review, planned, in progress, complete, closed. (needs a connected canny account) (`POST /v1/canny_posts`) - `canny_post`: One post in full by its id: details, status, score, author, tags. (needs a connected canny account) (`POST /v1/canny_post`) - `canny_comments`: Comments, filtered by post, board, author or company. Paginate with limit + skip. (needs a connected canny account) (`POST /v1/canny_comments`) - `canny_votes`: Who voted on a post — the account behind demand, useful for follow-ups when it ships. (needs a connected canny account) (`POST /v1/canny_votes`) - `canny_users`: Users in your Canny workspace. Use this to find the id to post or change status as. Paginate with the returned cursor (this one read is cursor-based, not skip). (needs a connected canny account) (`POST /v1/canny_users`) - `canny_user`: One user by their Canny id (from canny.users). (needs a connected canny account) (`POST /v1/canny_user`) - `canny_tags`: Tags on a board — pass their ids to posts as tagIDs to filter. (needs a connected canny account) (`POST /v1/canny_tags`) - `canny_categories`: Categories on a board. The categoryID here is what create_post and change_category take. (needs a connected canny account) (`POST /v1/canny_categories`) - `canny_status_changes`: Roadmap activity: every status move, newest first, with who changed it and to what. (needs a connected canny account) (`POST /v1/canny_status_changes`) - `canny_changelog`: Your Canny changelog entries (new, improved, fixed), published or draft. (needs a connected canny account) (`POST /v1/canny_changelog`) - `canny_create_post`: File a feature request or bug on a board. authorID is the user it's filed as (from canny.users), or the admin user id set on the connection. (needs a connected canny account) (`POST /v1/canny_create_post`) - `canny_update_post`: Rewrite a post's title or details. Only the fields you pass change. (needs a connected canny account) (`POST /v1/canny_update_post`) - `canny_add_tag`: Add a tag to a post (tagID from canny.tags). Filter by these with tagIDs on canny.posts. (needs a connected canny account) (`POST /v1/canny_add_tag`) - `canny_remove_tag`: Take a tag off a post. The tag itself and the post both survive. (needs a connected canny account) (`POST /v1/canny_remove_tag`) - `canny_change_board`: Reassign a post to a different board (e.g. filed as a bug, actually a feature request). (needs a connected canny account) (`POST /v1/canny_change_board`) - `canny_change_category`: Move a post into a different category on its board (categoryID from canny.categories). (needs a connected canny account) (`POST /v1/canny_change_category`) - `canny_upsert_user`: Upsert a Canny user by email or your own userID, then use the id it returns as the author of a post or comment. (needs a connected canny account) (`POST /v1/canny_upsert_user`) - `canny_change_status`: Move a post through the roadmap (open, under review, planned, in progress, complete, closed). Voters are only emailed when shouldNotifyVoters is true. (needs a connected canny account) (`POST /v1/canny_change_status`) - `canny_create_comment`: Reply on a post. Set internal true to keep it visible to your team only. (needs a connected canny account) (`POST /v1/canny_create_comment`) - `canny_create_entry`: Announce what shipped (type: new, improved, fixed). Saves as a draft unless published is true; notify emails subscribers. Link the posts it closes with postIDs. (needs a connected canny account) (`POST /v1/canny_create_entry`) - `canny_request`: Escape hatch: POST any Canny endpoint on your own key (path relative, e.g. companies/list). Prefer the curated canny tools when one fits. (needs a connected canny account) (`POST /v1/canny_request`) - `bing_webmaster_sites`: List the sites verified in your Bing Webmaster Tools account. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_sites`) - `bing_webmaster_traffic_stats`: Daily impressions, clicks, and average position for a site on Bing. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_traffic_stats`) - `bing_webmaster_query_stats`: Top search queries driving impressions and clicks to a site on Bing. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_query_stats`) - `bing_webmaster_page_stats`: Traffic statistics for a site's top-performing pages on Bing. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_page_stats`) - `bing_webmaster_page_query_stats`: Which search queries drive traffic to one specific page. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_page_query_stats`) - `bing_webmaster_keyword_stats`: Historical search impression volume for a keyword on Bing. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_keyword_stats`) - `bing_webmaster_related_keywords`: Keywords related to a seed term, with impression counts over a date range. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_related_keywords`) - `bing_webmaster_crawl_issues`: Crawl errors Bing found on a site: 404s, blocked URLs, malware, DNS failures. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_crawl_issues`) - `bing_webmaster_crawl_stats`: How often Bing crawled a site, and what it found each day. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_crawl_stats`) - `bing_webmaster_url_info`: Index status and details Bing holds for a single page. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_url_info`) - `bing_webmaster_link_counts`: Pages on a site that have inbound links, with counts. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_link_counts`) - `bing_webmaster_url_links`: Inbound links pointing at one specific page. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_url_links`) - `bing_webmaster_feeds`: Sitemaps submitted for a site, with their status. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_feeds`) - `bing_webmaster_url_submission_quota`: Remaining daily and monthly URL submission allowance. Check before submitting. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_url_submission_quota`) - `bing_webmaster_submit_url`: Submit a single URL to Bing for crawling and indexing. Counts against your daily quota. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_submit_url`) - `bing_webmaster_submit_url_batch`: Submit several URLs to Bing for indexing in one call. Counts against your daily quota. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_submit_url_batch`) - `bing_webmaster_submit_feed`: Register a sitemap (or RSS/Atom feed) with Bing so it discovers your URLs — the write half of feeds. Verify afterwards with bing_webmaster.feeds. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_submit_feed`) - `bing_webmaster_remove_feed`: Unregister a previously submitted sitemap or feed from Bing. (needs a connected bing_webmaster account) (`POST /v1/bing_webmaster_remove_feed`) - First-party (GET): `Random quote`, `Random joke`, `Random fact`, `Quotes`, `UUID`, `Email deliverability`, `LLM pricing` - First-party (via `POST /v1/run`, provider `fetchbean`): `Create artifact` (`/artifacts`), `Update artifact` (`/artifacts/update`), `Patch artifact` (`/artifacts/patch`), `List artifacts` (`/artifacts/list`), `Get artifact` (`/artifacts/get`), `Delete artifact` (`/artifacts/delete`), `Set artifact visibility` (`/artifacts/visibility`), `Restore artifact version` (`/artifacts/rollback`), `List artifact versions` (`/artifacts/versions`), `Domain lookup` (`/domain`), `Sitemap` (`/sitemap`), `YouTube transcript` (`/youtube/transcript`), `DNS lookup` (`/dns`), `URL metadata` (`/url/meta`), `HTTP inspect` (`/http/inspect`), `Verify image (AI detection)` (`/verify/image`) ## How to use it - Call it over plain HTTP with curl (`X-API-Key: fb_...`), or connect over MCP: fetchbean runs a hosted MCP server at https://api.fetchbean.com/mcp, with a local `npx fetchbean-mcp` bridge as an alternative. Full skill: https://fetchbean.com/skill.md ## Links - Documentation: https://docs.fetchbean.com - Dashboard: https://fetchbean.com/app - Contact: hi@fetchbean.com