{"id":"a871c2bd-cc3e-4b0b-b1f6-8cfd4474fb46","entityType":"agent","slug":"clawhub-byungkyu-api-gateway-2","name":"API Gateway","canonicalUrl":"https://www.xpersona.co/agent/clawhub-byungkyu-api-gateway-2","canonicalPath":"/agent/clawhub-byungkyu-api-gateway-2","generatedAt":"2026-10-09T13:24:01.314Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-05-19T07:01:51.552Z","emptyReason":null},"description":"Connect to external services through Maton-managed API routes. Use this skill only after the user names the target app, account, and task. Start with read/li... Skill: API Gateway Owner: byungkyu Summary: Connect to external services through Maton-managed API routes. Use this skill only after the user names the target app, account, and task. Start with read/li... Tags: latest:1.0.118 Version history: v1.0.118 | 2026-05-19T05:58:15.504Z | user - Removed the references/meta-ads/README.md file from the project. - No user-facing changes to core skill behavior or documentation. -","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 78.3K downloads reported by the source. Last updated 5/19/2026.","installCommand":"clawhub skill install s174c3s2kc1ehqj1ytzntezj2983e2aj:api-gateway","sourceUrl":"https://clawhub.ai/byungkyu/api-gateway","homepage":"https://clawhub.ai/byungkyu/api-gateway","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/byungkyu/api-gateway","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":97,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Connect to external services through Maton-managed API routes. Use this skill only after the user names the target app, account, and task. Start with read/li..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-05-19T07:01:51.552Z","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-05-19T07:01:51.552Z","emptyReason":null},"stars":null,"forks":null,"downloads":78349,"packageName":null,"latestVersion":"1.0.118","tractionLabel":"78.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-05-19T07:01:51.443Z","emptyReason":null},"lastUpdatedAt":"2026-05-19T07:01:51.552Z","lastCrawledAt":"2026-05-19T07:01:51.443Z","lastIndexedAt":null,"nextCrawlAt":"2026-05-20T07:01:51.443Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.118","createdAt":"2026-05-19T05:58:15.504Z","changelog":"- Removed the references/meta-ads/README.md file from the project. - No user-facing changes to core skill behavior or documentation. - Use this version if you no longer need the Meta Ads reference file included in your distribution.","fileCount":223,"zipByteSize":277738},{"version":"1.0.117","createdAt":"2026-05-17T22:21:47.051Z","changelog":"No user-facing changes in this version. - Version bumped to 1.0.117. - No file or documentation changes detected.","fileCount":224,"zipByteSize":279471},{"version":"1.0.116","createdAt":"2026-05-07T19:19:33.675Z","changelog":"- Stricter user consent protocols for non-GET (write, modify, or delete) API calls; require explicit user approval with all request details before proceeding. - Updated instructions: Never infer approval for non-GET requests from the original user request—always prompt for confirmation first. - New connection creation now explicitly requires user approval specifying the service; do not create connections without user direction. - Scope selection guidance tightened: during OAuth, choose only scopes necessary for the current task. - Reminders to immediately remove connections after their use if no longer needed.","fileCount":224,"zipByteSize":279141},{"version":"1.0.115","createdAt":"2026-05-07T18:48:27.066Z","changelog":"- Clarified security and usage protocols: all write operations are now blocked by default and require explicit user confirmation with resource details and intended effect. - Expanded authentication and credential safety instructions, emphasizing key secrecy and minimum-privilege principles. - Added stricter guidance for read/list-first workflow and explicit confirmation before any modification or high-impact operation. - Reordered and updated instructions for connection management and specifying connections. - Improved \"Routing\" and \"Security & Permissions\" sections for greater clarity and caution.","fileCount":224,"zipByteSize":279050},{"version":"1.0.114","createdAt":"2026-05-07T18:38:18.590Z","changelog":"- Added explicit instructions to require user confirmation before executing non-read (POST, PUT, PATCH, DELETE) operations, especially those that are destructive, public-facing, financial, or purchase-related. - Clarified that all route invocations must happen only after the user specifies the exact app, account, and task. - Updated Routing section for stronger language around operation safety, explicit confirmation, and context verification. - No functional or CLI/API changes; documentation and security usage guidance improvements only.","fileCount":224,"zipByteSize":278726},{"version":"1.0.113","createdAt":"2026-05-07T18:26:45.590Z","changelog":"- Added CLI usage examples for quick start, connection management, and specifying connections. - Documented CLI installation methods (NPM, Homebrew). - Updated authentication and connection management sections to include CLI and Python usage side-by-side. - Added five new reference files for Google Apps Script, Google Tag Manager, LinkedIn Community Management, YouTube Analytics, and YouTube Reporting. - Clarified the need to specify connections using CLI flags (`--connection`) or headers.","fileCount":224,"zipByteSize":278607},{"version":"1.0.112","createdAt":"2026-05-01T22:11:22.338Z","changelog":"- Updated route usage instructions: Section on base URL and path construction is simplified and clarified. - Emphasized use of app-specific reference and read/list calls before making any changes. - Minor change in the description field, stressing to always consult the app-specific reference before changes. - No functional or interface changes; documentation is now clearer and more concise.","fileCount":219,"zipByteSize":261671},{"version":"1.0.111","createdAt":"2026-05-01T22:03:44.688Z","changelog":"- Clarified skill purpose and usage rules, emphasizing starting with read/list calls and explicit user confirmation for changes. - Updated documentation to specify that API route paths must begin with the connection's app name (e.g., `/google-mail/...`) for correct routing. - Improved authentication and security guidance, including the handling of API keys and scope minimization. - Enhanced change operation requirements: now require confirmation of the exact app, connection, resource, payload, and expected result before any non-read action. - Streamlined language throughout for readability and precision.","fileCount":219,"zipByteSize":261841}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s174c3s2kc1ehqj1ytzntezj2983e2aj:api-gateway","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"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-byungkyu-api-gateway-2/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/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-09T13:24:01.311Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-byungkyu-api-gateway-2/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":"high","updatedAt":"2026-05-19T07:01:51.552Z","emptyReason":null},"readme":"Skill: API Gateway\n\nOwner: byungkyu\n\nSummary: Connect to external services through Maton-managed API routes. Use this skill only after the user names the target app, account, and task. Start with read/li...\n\nTags: latest:1.0.118\n\nVersion history:\n\nv1.0.118 | 2026-05-19T05:58:15.504Z | user\n\n- Removed the references/meta-ads/README.md file from the project.\n- No user-facing changes to core skill behavior or documentation.\n- Use this version if you no longer need the Meta Ads reference file included in your distribution.\n\nv1.0.117 | 2026-05-17T22:21:47.051Z | user\n\nNo user-facing changes in this version.\n\n- Version bumped to 1.0.117.\n- No file or documentation changes detected.\n\nv1.0.116 | 2026-05-07T19:19:33.675Z | user\n\n- Stricter user consent protocols for non-GET (write, modify, or delete) API calls; require explicit user approval with all request details before proceeding.\n- Updated instructions: Never infer approval for non-GET requests from the original user request—always prompt for confirmation first.\n- New connection creation now explicitly requires user approval specifying the service; do not create connections without user direction.\n- Scope selection guidance tightened: during OAuth, choose only scopes necessary for the current task.\n- Reminders to immediately remove connections after their use if no longer needed.\n\nv1.0.115 | 2026-05-07T18:48:27.066Z | user\n\n- Clarified security and usage protocols: all write operations are now blocked by default and require explicit user confirmation with resource details and intended effect.\n- Expanded authentication and credential safety instructions, emphasizing key secrecy and minimum-privilege principles.\n- Added stricter guidance for read/list-first workflow and explicit confirmation before any modification or high-impact operation.\n- Reordered and updated instructions for connection management and specifying connections.\n- Improved \"Routing\" and \"Security & Permissions\" sections for greater clarity and caution.\n\nv1.0.114 | 2026-05-07T18:38:18.590Z | user\n\n- Added explicit instructions to require user confirmation before executing non-read (POST, PUT, PATCH, DELETE) operations, especially those that are destructive, public-facing, financial, or purchase-related.\n- Clarified that all route invocations must happen only after the user specifies the exact app, account, and task.\n- Updated Routing section for stronger language around operation safety, explicit confirmation, and context verification.\n- No functional or CLI/API changes; documentation and security usage guidance improvements only.\n\nv1.0.113 | 2026-05-07T18:26:45.590Z | user\n\n- Added CLI usage examples for quick start, connection management, and specifying connections.\n- Documented CLI installation methods (NPM, Homebrew).\n- Updated authentication and connection management sections to include CLI and Python usage side-by-side.\n- Added five new reference files for Google Apps Script, Google Tag Manager, LinkedIn Community Management, YouTube Analytics, and YouTube Reporting.\n- Clarified the need to specify connections using CLI flags (`--connection`) or headers.\n\nv1.0.112 | 2026-05-01T22:11:22.338Z | user\n\n- Updated route usage instructions: Section on base URL and path construction is simplified and clarified.\n- Emphasized use of app-specific reference and read/list calls before making any changes.\n- Minor change in the description field, stressing to always consult the app-specific reference before changes.\n- No functional or interface changes; documentation is now clearer and more concise.\n\nv1.0.111 | 2026-05-01T22:03:44.688Z | user\n\n- Clarified skill purpose and usage rules, emphasizing starting with read/list calls and explicit user confirmation for changes.\n- Updated documentation to specify that API route paths must begin with the connection's app name (e.g., `/google-mail/...`) for correct routing.\n- Improved authentication and security guidance, including the handling of API keys and scope minimization.\n- Enhanced change operation requirements: now require confirmation of the exact app, connection, resource, payload, and expected result before any non-read action.\n- Streamlined language throughout for readability and precision.\n\nv1.0.110 | 2026-05-01T21:50:23.823Z | user\n\nVersion 1.0.110 – Security and confirmation requirements clarified\n\n- Updated the description to explicitly require verification of connection and target resource, plus explicit user confirmation before performing any changes.\n- Clarified language regarding confirmation for data-modifying operations.\n- Revised authentication and compatibility notes for clarity.\n- No functional changes to code examples or API behavior.\n\nv1.0.109 | 2026-05-01T21:42:12.908Z | user\n\n- Updated security guidance to emphasize specifically choosing the intended connection before taking actions.\n- Clarified that the MATON_API_KEY should be read from the environment and never printed or logged.\n- Improved instructions throughout to reinforce use only for user-identified app, account, and task.\n- Minor language clarifications in authentication and security sections.\n\nv1.0.108 | 2026-05-01T21:32:48.341Z | user\n\n- Clarified security instructions: emphasized to keep MATON_API_KEY secret, never log or print it, and always use the environment for the Authorization header.\n- Updated recommendation to use Maton-Connection header when multiple connections exist for the same service.\n- Improved descriptions around connection targeting and account selection based on the user's choice.\n- No API or functional changes; documentation only.\n\nv1.0.107 | 2026-05-01T21:23:38.940Z | user\n\nVersion 1.0.107\n\n- Clarified and simplified the skill description, emphasizing required user selection and security.\n- Updated guidance about API route formatting and use of the app identifier in paths.\n- Improved security messaging: clearer instructions on API key secrecy and prudent connection management.\n- Streamlined and clarified examples for authentication and connection management.\n- Updated the \"Supported Services\" table headers for greater clarity.\n- Removed redundant or overly detailed content to make documentation more concise and user-friendly.\n\nv1.0.106 | 2026-05-01T20:05:50.466Z | user\n\n- Clarified description to emphasize routing only when the user specifies a service, account, and task.\n- Refined language in the description for greater precision and clarity on usage.\n- No functionality or API changes; documentation improvements only.\n\nv1.0.105 | 2026-05-01T19:57:30.212Z | user\n\n- Updated the skill description to clarify that API access is provided “when the user names a specific service and task.”\n- Clarified authentication details: Maton API key only identifies the Maton account (not third-party services).\n- Tweaked documentation wording for base URL section and read-only route examples for better clarity.\n- No functional or API changes; documentation improvements only.\n\nv1.0.104 | 2026-05-01T19:51:37.498Z | user\n\n- Clarified documentation to recommend use of the Maton-Connection header whenever multiple connections are present for an app.\n- Minor text improvements in the Quick Start, Base URL, and usage guidance for specifying connections.\n- No changes to core functionality or skill code.\n\nv1.0.103 | 2026-05-01T18:27:11.547Z | user\n\n- Updated description for clarity: emphasizes support for 100+ APIs (e.g., Google Workspace, Microsoft 365, GitHub, Notion, Slack) with managed OAuth and stricter language about access and security.\n- Wording improvements in usage guidelines: now clearly recommends using read/list calls before any changes, and specifies when to use the `Maton-Connection` header.\n- Enhanced security section: strengthened warnings on key handling and clarified no third-party access is possible without explicit user OAuth authorization.\n- Minor documentation edits for improved readability and explicit instructions about base URL structure and responsibilities.\n\nv1.0.102 | 2026-05-01T18:03:31.244Z | user\n\n- Clarified skill purpose and security guidelines in the description.\n- Now recommends using this skill only when the user identifies the target service and action, with a preference for retrieval/listing.\n- Emphasized that the MATON_API_KEY only authenticates with Maton, not third-party services.\n- Improved guidance to always use least-privilege connections and specify connection ID to target the intended account.\n- No code or functionality changes; documentation and best-practices update only.\n\nv1.0.101 | 2026-05-01T11:50:09.998Z | user\n\n- Improved documentation for base URL formatting with new example API calls.\n- Added explicit security reminder about never exposing or logging the MATON_API_KEY.\n- Clarified that the gateway routes requests without exposing third-party OAuth tokens to the agent.\n- Updated quick start example to use a read-only Slack API call.\n- Streamlined documentation structure for clarity and conciseness.\n\nv1.0.100 | 2026-05-01T11:37:42.684Z | user\n\n- Clarified the API gateway’s behavior: it automatically injects user OAuth tokens for service calls.\n- Streamlined examples and quick start instructions, replacing the previous Slack channels example with a direct Slack message (chat.postMessage) call.\n- Consolidated and simplified security and permission guidance, focusing on confirming all data-modifying operations and high-impact actions.\n- Added or clarified sections on always specifying the connection using the Maton-Connection header, especially for users with multiple connections.\n- Updated and formatted the supported services table for easier reference.\n- Added a reference file: references/zoom-admin/README.md.\n\nv1.0.99 | 2026-05-01T11:26:35.488Z | user\n\nNo user-visible changes. This release has no detected file or documentation updates.\n\nv1.0.98 | 2026-05-01T11:18:27.083Z | user\n\nNo user-facing changes in this version.\n\n- No file changes were detected compared to the previous release.\n- Functionality and documentation remain unchanged.\n\nv1.0.97 | 2026-05-01T11:11:32.210Z | user\n\n- Simplified and clarified the required user confirmation process for side-effecting API calls.\n- Updated security guidance to specifically require explicit user approval with named app, connection/account, target, and intended outcome prior to non-read actions.\n- Clarified language around default behaviors and permission scopes for safer, least-privilege operation.\n- No code or API change; documentation improvements only.\n\nv1.0.96 | 2026-05-01T11:00:02.273Z | user\n\n- Added new \"Required Confirmation\" section highlighting the need for explicit user approval for any action beyond read or list, detailing necessary parameters to confirm.\n- Emphasized not to proceed on inferred or ambiguous targets for non-read/list actions.\n- No changes to code samples or API structure; documentation update only.\n\nv1.0.95 | 2026-05-01T10:47:00.319Z | user\n\nNo user-visible changes in this release. Documentation content remains functionally unchanged.\n\nv1.0.94 | 2026-05-01T10:35:25.679Z | user\n\n- Clarified instructions for confirming user intent: now explicitly require users to identify the target service, account, and task before proceeding, and ask for confirmation if the target or intent is ambiguous.\n- Updated guidance for non-read requests: require confirmation of task details and intended effect before proceeding with actions beyond simple retrieval or listing.\n- Adjusted permission and security guidelines to match the stricter requirement for explicit user identification and confirmation.\n- Minor wording and detail changes for greater clarity.\n\nv1.0.93 | 2026-05-01T10:24:15.460Z | user\n\n- Clarified the \"Base URL\" section to include specific service route examples.\n- Improved documentation of endpoint usage by highlighting complete sample URLs for different services.\n- No functional or code changes; documentation update only.\n\nv1.0.92 | 2026-05-01T10:13:04.846Z | user\n\n- Tightened instructions to clarify that every request must be for a confirmed service, endpoint, connection, and parameters, and to ask for user confirmation if anything is ambiguous.\n- Updated guidance to default to retrieval or listing actions before suggesting or performing other API operations.\n- Emphasized requiring explicit user approval before performing any non-read request (previously: \"state-changing request\").\n- Reworded several security and scope-of-use notes for clarity and precision.\n- No code or interface changes; documentation update only.\n\nv1.0.91 | 2026-05-01T10:03:52.095Z | user\n\n- Clarified that this gateway should be used only for user-requested services/endpoints and when no narrower Maton skill exists.\n- Added explicit guidance to limit each API Gateway use to the requested service, endpoint, and authorized connection.\n- Updated security and approval requirements: require explicit user confirmation before any state-changing request, and explicitly document the connection, method, and affected resources.\n- Adjusted documentation to reflect that third-party OAuth tokens are never exposed outside the Maton service.\n- Streamlined and updated recommendations for least-privilege usage, emphasizing use of read-only calls and explicit scope control.\n- No changes to API functionality; documentation and best-practice guidance improved for safer use.\n\nv1.0.90 | 2026-05-01T09:51:00.312Z | user\n\n- Added security reminder: \"This is a broad, write-capable API gateway — install only if you intentionally need multi-service API access.\"\n- Clarified that all write, delete, send, publish, purchase, and administrative operations require explicit user confirmation before execution.\n- Emphasized importance of using connection IDs to target correct accounts when connecting multiple services.\n- No code or functional changes; documentation and safety clarifications only.\n\nv1.0.89 | 2026-05-01T09:41:12.935Z | user\n\n- Quick Start example now uses a read-only Slack API call (`conversations.list`) instead of a write operation.\n- Security section clarified to reinforce best practices for handling API keys and connection permissions.\n- Updated the \"Specifying Connection\" code examples to use the new read-only Slack call for consistency.\n- Added more supported services to the reference table, such as Baserow, beehiiv, and Box.\n\nv1.0.88 | 2026-05-01T09:21:10.198Z | user\n\n- Improved security documentation: Added clear warning to treat MATON_API_KEY as a secret and included steps for revoking if compromised.\n- Security guidelines updated: Now recommends least-privilege connections and defaulting to read-only operations.\n- Expanded instructions on OAuth scope management and revoking unused connections.\n- Clarified that the gateway exchanges API key for OAuth tokens and the importance of not exposing the API key.\n- Enhanced instructions for sensitive actions, specifying clear descriptions and confirmations are required for high-impact operations.\n\nv1.0.87 | 2026-05-01T08:46:19.590Z | user\n\n- No file changes were detected in this release.\n- No updates to features, documentation, or code.\n\nv1.0.86 | 2026-05-01T00:54:56.765Z | user\n\n- Changed all API gateway and connection management URLs from \"gateway.maton.ai\" and \"ctrl.maton.ai\" to \"api.maton.ai\"\n- Added new section outlining security and permissions best practices, including explicit confirmation for high-impact operations and connection specification\n- Updated all code snippets and instructions to reflect the new base URL\n- Added guidance to always specify the Maton-Connection header when multiple connections exist\n- Added 3 new reference README files for Facebook Page, HighLevel, and Meta Ads APIs\n- Removed LICENSE.txt file\n\nv1.0.85 | 2026-04-28T21:58:14.605Z | user\n\n- No file changes detected in this release.\n- No updates to functionality or documentation.\n- Version metadata remains unchanged.\n\nv1.0.84 | 2026-04-15T00:21:19.139Z | user\n\nNo user-facing or internal changes detected in this release.\n\n- Version bump only. No file changes were made.\n\nv1.0.83 | 2026-04-15T00:17:45.271Z | user\n\nNo changes detected in this release.\n\nv1.0.82 | 2026-04-14T21:24:02.810Z | user\n\n- No file changes detected in this version.\n- Content, features, and documentation remain unchanged from previous release.\n\nv1.0.81 | 2026-04-14T21:13:31.314Z | user\n\n- Added official support for Clio (`clio` / app.clio.com) to the list of proxied services.\n- No other user-facing changes.\n\nv1.0.80 | 2026-04-10T01:13:02.485Z | user\n\n- Added documentation file: references/zoom/README.md\n- No changes to core functionality or APIs.\n\nv1.0.79 | 2026-04-09T21:47:39.994Z | user\n\n- No file changes detected in this release.\n- Version number updated to 1.0.79.\n- No updates to features, documentation, or functionality.\n\nv1.0.78 | 2026-04-07T23:35:53.849Z | user\n\nNo file changes detected in this version.\n\n- No updates or code changes were made for version 1.0.78.\n- Functionality, documentation, and integrations remain unchanged.\n\nv1.0.77 | 2026-04-07T22:54:15.767Z | user\n\n- Added Apify (`apify`) and Make (`make`) as supported services in the API gateway.\n- Included new reference documentation files: `references/apify/README.md` and `references/make/README.md`.\n- Updated the supported services table in the documentation to reflect these additions.\n\nv1.0.76 | 2026-04-02T22:49:48.019Z | user\n\n- Added documentation file: references/front/README.md.\n- Included \"Front\" (`api2.frontapp.com`) as a supported service in the list.\n\nv1.0.75 | 2026-04-02T04:27:45.391Z | user\n\nVersion 1.0.75 of api-gateway\n\n- No file changes detected in this release.\n- No visible updates or user-facing modifications included.\n\nv1.0.74 | 2026-03-31T21:44:44.897Z | user\n\n- Added new reference documentation: references/memelord/README.md\n- No changes to existing code or APIs; change is documentation-only.\n\nv1.0.73 | 2026-03-29T23:52:08.932Z | user\n\n- Added Supabase reference documentation at references/supabase/README.md.\n- No changes to API behavior or user functionality.\n\nv1.0.72 | 2026-03-29T10:25:13.466Z | user\n\n- Added Vercel-specific documentation at references/vercel/README.md.\n- No changes to application code or APIs.\n- Existing documentation and functionality remain unchanged.\n\nv1.0.71 | 2026-03-25T01:05:21.701Z | user\n\n- No changes detected in this version.  \n- Version number updated to 1.0.71; content and functionality remain the same.\n\nv1.0.70 | 2026-03-21T03:19:07.920Z | user\n\n## api-gateway v1.0.70\n\n- Added a new documentation file at references/twenty/README.md.\n- No changes to code or core functionality in this release.\n\nv1.0.69 | 2026-03-14T01:01:31.455Z | user\n\n- Added sample reference documentation file: references/wati/README.md\n- No changes to main functionality or APIs\n- Internal documentation enhancement only; no user-facing changes\n\nv1.0.68 | 2026-03-13T10:41:11.304Z | user\n\n- Added support for fal.ai and resend APIs.\n- Included documentation references for fal-ai and resend in the references directory.\n- Updated the supported services table to list fal.ai and resend as available integrations.\n\nv1.0.67 | 2026-03-12T11:06:46.464Z | user\n\n- Added references/one-note/README.md file.\n- No changes to existing functionality; update consists of new documentation or reference material.\n\nv1.0.66 | 2026-03-12T03:05:30.320Z | user\n\n- Added Buffer API support to the gateway's list of supported services.\n- Added sample documentation for Buffer integration (references/buffer/README.md).\n\nv1.0.65 | 2026-03-11T10:30:26.169Z | user\n\n- Added Firecrawl API support.\n- Included documentation file: references/firecrawl/README.md.\n\nv1.0.64 | 2026-03-10T11:28:31.651Z | user\n\n- Added Brave Search (`brave-search`) to supported services.\n- New reference documentation: `references/brave-search/README.md`.\n\nv1.0.63 | 2026-03-10T08:03:08.969Z | user\n\n- Added documentation for Wrike integration at references/wrike/README.md.\n- No changes to core code or functionality; this update is documentation only.\n\nv1.0.62 | 2026-03-08T21:43:18.444Z | user\n\n- Added support for Exa (`exa`) and Tavily (`tavily`) APIs.\n- Updated documentation to include Exa and Tavily in the supported services table.\n- Added sample README files for Exa and Tavily integrations.\n\nv1.0.61 | 2026-03-06T22:44:33.829Z | user\n\n- No user-facing changes in this release (version 1.0.61).\n- No file changes detected.\n\nv1.0.60 | 2026-03-06T10:42:44.368Z | user\n\n- Added support for Grafana and Kibana services.\n- Included reference README files for Grafana and Kibana integrations.\n- Updated the supported services table to reflect the new integrations.\n\nv1.0.59 | 2026-03-05T09:35:59.054Z | user\n\n- Added sample reference files: references/kaggle/README.md and references/sharepoint/README.md.\n- No changes to core functionality or documentation outside of new sample references.\n\nv1.0.58 | 2026-03-04T12:19:56.389Z | user\n\n- Added references/unbounce/README.md as a new documentation or reference file.\n- No changes to existing code or functionality.\n\nv1.0.57 | 2026-03-03T12:15:52.166Z | user\n\n- Updated the description to include GitHub as a supported service, improving accuracy of the listed integrations.\n- No changes to code or functionality; documentation update only.\n\nv1.0.56 | 2026-03-03T12:09:50.515Z | user\n\n- Added over 50 new reference files for the Sunsama MCP integration, including schemas for various task and event management operations.\n- No changes to existing SKILL.md functionality or documentation content.\n- Expanded internal references and schema coverage, preparing for enhanced third-party integration support.\n\nv1.0.55 | 2026-03-03T00:46:07.883Z | user\n\n- Major documentation overhaul: all service reference files moved to dedicated subfolders (e.g., references/airtable/README.md).\n- Added several new services to the supported list, including Baserow and Granola MCP.\n- Connection management instructions updated; now shows available connection methods (API_KEY, BASIC, OAUTH1/2, MCP) in documentation.\n- Connection API sample responses now include the connection method field.\n- Skill now offers clearer service coverage with improved, organized reference structure.\n\nv1.0.54 | 2026-02-28T02:13:08.484Z | user\n\n- Minor update to documentation: GitHub is now highlighted in the API list in the skill description.\n- No changes to code or functionality.\n- Clarified supported services, with updated wording in the API overview.\n\nv1.0.53 | 2026-02-28T02:03:23.039Z | user\n\nNo changes detected in this version.\n\n- Version 1.0.53 has no file changes compared to the previous release.\n\nv1.0.52 | 2026-02-28T01:33:34.358Z | user\n\n- Added three new reference files: references/manus.md, references/reducto.md, and references/zoho-projects.md.\n- No changes were made to the existing documentation or code logic.\n\nv1.0.51 | 2026-02-26T10:49:06.067Z | user\n\nVersion 1.0.51\n\n- Added squarespace.md to the references directory.\n\nv1.0.50 | 2026-02-24T23:05:14.288Z | user\n\nNo file changes detected for version 1.0.50.\n\n- No updates or modifications were made in this version.\n- Functionality and documentation remain unchanged.\n\nv1.0.49 | 2026-02-24T22:49:33.856Z | user\n\nNo file changes were detected in this release.\n\n- No updates or modifications were made to the skill's files or documentation.\n- Behavior and features remain the same as the previous version.\n\nv1.0.48 | 2026-02-24T12:16:09.346Z | user\n\n- Added support for the Granola service (`granola`, proxied at `mcp.granola.ai`) to the API Gateway.\n- New documentation file `references/granola.md` included.\n- Updated the Supported Services table to reflect the addition.\n\nv1.0.47 | 2026-02-23T23:05:36.862Z | user\n\n- Added documentation references for PostHog and Sentry integrations.\n- No changes to core functionality or API—documentation only.\n\nv1.0.46 | 2026-02-22T07:55:07.722Z | user\n\n- Added guidance to use this skill when users want to interact with external services.\n- No other changes detected.\n\nv1.0.45 | 2026-02-22T04:02:27.756Z | user\n\n- No file or documentation changes detected in this version.\n- Version update only; functionality and documentation remain unchanged.\n\nv1.0.44 | 2026-02-21T22:07:51.000Z | user\n\n- Broader description: Now highlights support for 100+ APIs (including Google Workspace, Microsoft 365, Notion, Slack, Airtable, HubSpot, etc.).\n- Security description simplified for clarity; details about API key and OAuth remain.\n- The compatibility section has been streamlined and moved.\n- No code, behavioral, or API changes—documentation/metadata update only.\n\nv1.0.43 | 2026-02-21T20:47:32.709Z | user\n\n- No changes detected in this release.\n- Version: 1.0.43 remains unchanged from the previous version.\n\nv1.0.42 | 2026-02-20T22:58:56.489Z | user\n\n- Added YouTube to the list of supported third-party services in the description.\n- Updated description to highlight support for YouTube integration.\n- No code or logic changes detected.\n\nv1.0.41 | 2026-02-19T22:10:23.459Z | user\n\n- Updated the description for greater clarity and brevity regarding OAuth integration.\n- No functional or behavioral changes; documentation only.\n\nv1.0.40 | 2026-02-19T22:06:33.008Z | user\n\n- Updated the skill description to clarify that it enables easy integration with third-party APIs using managed OAuth connections.\n- No functional or behavioral changes introduced.\n\nv1.0.39 | 2026-02-19T21:58:03.678Z | user\n\n- Clarified security model: The MATON_API_KEY alone cannot access any third-party services without explicit OAuth authorization by the user.\n- Improved skill description for clearer guidance on authentication and access control.\n- Removed references to some third-party services in the summary for accuracy.\n- No changes to code, features, or API endpoints.\n\nv1.0.38 | 2026-02-19T20:29:21.415Z | user\n\n- Updated description to highlight support for 100+ APIs, including popular services (Google Workspace, Outlook, Notion, GitHub, Stripe, HubSpot, Salesforce, Airtable, LinkedIn, and more).\n- Improved clarity about OAuth-based access and security.\n- No code or functional changes detected; documentation only update.\n\nv1.0.37 | 2026-02-19T19:32:18.739Z | user\n\nNo changes detected in this release.\n\n- Version 1.0.37 was published without any file changes.\n- No updates to features, documentation, or configuration.\n\nv1.0.36 | 2026-02-19T11:49:31.848Z | user\n\n- Added new documentation file: references/microsoft-teams.md\n- No changes to core functionality or existing APIs.\n\nv1.0.35 | 2026-02-18T07:03:20.201Z | user\n\n- No file changes detected in this version.\n- No user-facing or internal modifications introduced.\n- Functionality and documentation remain the same as the previous release.\n\nv1.0.34 | 2026-02-18T02:09:18.447Z | user\n\n- Added initial documentation for Zoho Bookings integration in `references/zoho-bookings.md`.\n- No changes to core functionality or API; this release is documentation-focused.\n\nv1.0.33 | 2026-02-17T20:12:00.709Z | user\n\nNo changes detected in this version.\n\n- No file changes were made in version 1.0.33.\n- No updates to features, documentation, or functionality.\n\nv1.0.32 | 2026-02-16T22:48:24.108Z | auto\n\n- Updated documentation for the Google Drive API in references/google-drive.md.\n- No changes to functionality or code; this release contains documentation updates only.\n\nv1.0.31 | 2026-02-15T09:45:55.023Z | user\n\n- Added support for Dropbox Business as a new third-party integration.\n- Added related documentation file: references/dropbox-business.md.\n- Updated the Supported Services table to include Dropbox Business.\n\nv1.0.30 | 2026-02-14T21:09:05.947Z | user\n\n- Added four new reference files for Firebase, Google BigQuery, Google Classroom, and Snapchat APIs.\n- Updated supported services list to include Firebase, Google BigQuery, Google Classroom, and Snapchat.\n\nv1.0.29 | 2026-02-14T02:53:06.180Z | user\n\n- Clarified in the description that access to third-party APIs is scoped to explicit OAuth connections; the API key alone does not grant access.\n- Updated description and instructions for improved clarity and emphasis on security and explicit authorization.\n- No functional changes; documentation enhancements only.\n\nv1.0.28 | 2026-02-14T02:46:53.991Z | user\n\n- Added new third-party API references: Clockify, GetResponse, Motion, and Toggl Track.\n- Updated the Supported Services table to include Clockify, GetResponse, Motion, and Toggl Track.\n- No changes to core functionality or API; documentation and reference improvements only.\n\nv1.0.27 | 2026-02-13T12:16:21.980Z | user\n\n- Added Confluence (`confluence`) to the list of supported services in the API gateway.\n- Created a new documentation file: `references/confluence.md`.\n\nv1.0.26 | 2026-02-13T02:40:43.734Z | user\n\n- Added Cal.com integration as a supported service on the API gateway.\n- Introduced a new reference file: references/cal-com.md with usage details for Cal.com.\n- Updated the documentation to include Cal.com in the supported services table.\n\nv1.0.25 | 2026-02-12T19:46:27.511Z | user\n\n- Added new reference documentation files for Clio, Netlify, PDF.co, and Podio APIs.\n- Improved skill coverage and resources for third-party API integrations.\n\nv1.0.24 | 2026-02-12T11:24:28.854Z | user\n\n- Added support and documentation for new services: Coda, CompanyCam, ElevenLabs, Instantly, Lemlist, and Mailgun.\n- Updated the Supported Services table in SKILL.md to include these newly added integrations.\n- Included reference documentation files for each new service under the `references/` directory.\n\nv1.0.23 | 2026-02-11T11:50:58.465Z | user\n\n- Added `homepage` metadata field with the value \"https://maton.ai\".\n- No other functional or documentation changes detected.\n\nv1.0.22 | 2026-02-11T11:48:37.065Z | user\n\n- Added support for Beehiiv, Fireflies, and SendGrid APIs.\n- New reference documentation files: references/beehiiv.md, references/fireflies.md, and references/sendgrid.md.\n- Updated the supported services table to include beehiiv and fireflies.\n\nv1.0.21 | 2026-02-10T20:31:56.421Z | user\n\n- Added a `clawdbot` metadata block specifying required environment variable `MATON_API_KEY`.\n- No other changes to functionality or documentation.\n\nv1.0.20 | 2026-02-10T12:33:51.746Z | user\n\n- No code or documentation changes detected in this version.\n- Version bumped to 1.0.20; functionality remains unchanged.\n\nv1.0.19 | 2026-02-10T12:32:29.179Z | user\n\n- Added integration references for CallRail, ClickSend, and WordPress APIs.\n- Listed CallRail, ClickSend, and WordPress as supported services in the documentation.\n\nv1.0.18 | 2026-02-10T02:14:33.335Z | user\n\n- Added support for ActiveCampaign, Brevo, Dropbox, and Twilio as new proxied apps.\n- Updated documentation to include the new services in the supported services table.\n- Introduced reference files for ActiveCampaign, Brevo, Dropbox, and Twilio with usage details.\n\nv1.0.17 | 2026-02-09T11:51:21.158Z | user\n\n- Added support for 10 new third-party APIs: Box, ClickFunnels, Cognito Forms, MailerLite, ManyChat, Quo, SignNow, Systeme, Tally, and Vimeo.\n- Updated the Supported Services table in the documentation to include these new integrations.\n\nv1.0.16 | 2026-02-08T09:49:16.598Z | user\n\n- Added support for Basecamp, Gumroad, and Keap services to the API gateway.\n- Updated documentation to include Basecamp (`basecamp`), Gumroad (`gumroad`), and Keap (`keap`) in the supported services table.\n- Added new reference files: references/basecamp.md, references/gumroad.md, and references/keap.md.\n\nv1.0.15 | 2026-02-08T01:43:48.414Z | user\n\n- Added an important clarification that all gateway API paths must start with the connection's app name (e.g., `/google-mail/gmail/v1/...`).\n- Updated documentation to highlight this path requirement for correct routing to third-party APIs.\n\nv1.0.14 | 2026-02-07T20:35:57.704Z | user\n\n- Added support for Microsoft To Do and Telegram third-party APIs.\n- Included new reference documentation files: microsoft-to-do.md and telegram.md.\n- Updated the supported services table to list Microsoft To Do and Telegram as available integrations.\n\nv1.0.13 | 2026-02-07T11:24:18.063Z | user\n\n- Added support for new third-party integrations: Constant Contact, Eventbrite, Google Contacts, Google Merchant, Google Tasks, Jobber, LinkedIn, OneDrive, Square, and TickTick.\n- Expanded Supported Services table to include all new apps with corresponding routing and base URL details.\n- Added new API reference files for each of the newly supported services in the references directory.\n\nv1.0.12 | 2026-02-07T02:36:47.173Z | user\n\n- Added support for Kit and Microsoft Excel as proxied services.\n- Included new reference guides: references/kit.md and references/microsoft-excel.md.\n- Updated the Supported Services table and references list to reflect the new services.\n\nv1.0.11 | 2026-02-06T23:20:22.118Z | auto\n\n- Added support for Acuity Scheduling, Google Workspace Admin, and Todoist.\n- Updated the Supported Services table in documentation to reflect new providers.\n- Introduced new reference guides for each of the above services under the references/ directory.\n- Cleaned up documentation and removed outdated troubleshooting information.\n\nv1.0.10 | 2026-02-06T12:16:27.295Z | user\n\nAdded support and documentation for Zoho business apps.\n\n- Added eight new reference guides: Zoho Bigin, Books, Calendar, CRM, Inventory, Mail, People, and Recruit.\n- Updated the Supported Services table to include Zoho Bigin, Books, Calendar, CRM, Inventory, Mail, People, and Recruit with their respective app names and base URLs.\n- Users can now proxy native API calls to these Zoho services using managed authentication.\n\nv1.0.9 | 2026-02-06T04:06:33.456Z | user\n\n- Added support for Attio, GitHub, Linear, and Monday.com as new proxied services.\n- Provided new reference files for Attio, GitHub, Linear, and Monday.com integration details.\n- Updated the supported services table and routing guides to include the new providers.\n\nv1.0.8 | 2026-02-06T02:20:15.846Z | user\n\n- Replaced all Bash/cURL API examples with equivalent Python (using urllib) scripts for usage, connection management, and authentication instructions.\n- Kept all endpoint details and responses unchanged, ensuring functionality is the same.\n- Updated the documentation to reflect example usage in Python throughout for a more programmatic workflow.\n\nv1.0.7 | 2026-02-05T01:33:21.326Z | user\n\n- Added support and documentation for Klaviyo, Mailchimp, WhatsApp Business, and WooCommerce APIs.\n- Updated supported services table to include newly added providers.\n- Added new reference guides: klaviyo.md, mailchimp.md, whatsapp-business.md, and woocommerce.md.\n- Minor improvements to environment variable usage examples in authentication and connection sections.\n\nv1.0.6 | 2026-02-04T08:32:14.258Z | user\n\n- Added support and documentation for Pipedrive, Trello, and YouTube APIs.\n- Updated the Supported Services table to include Pipedrive, Trello, and YouTube.\n- Included new routing guides: references/pipedrive.md, references/trello.md, and references/youtube.md.\n\nv1.0.5 | 2026-02-03T23:10:44.977Z | user\n\n- Added a prominent troubleshooting section for 500 Internal Server Errors, explaining that these typically result from expired OAuth refresh tokens and detailing how to resolve by creating a new connection and retrying with its ID.\n- No functional or interface changes; documentation update only.\n- All usage instructions, API coverage, and connection management details remain unchanged.\n\nv1.0.4 | 2026-02-03T19:27:43.151Z | user\n\n- Added detailed reference documentation for Asana, Calendly, ClickUp, Fathom, Google Meet, Google Play, Google Slides, and Outlook in the references directory.\n- Updated SKILL.md to include new supported services: Google Meet, Google Play, Google Slides, and Outlook.\n- Expanded supported services table and routing guide to reflect new integrations.\n- No breaking changes; existing API behavior is unchanged.\n\nv1.0.3 | 2026-02-03T11:29:21.158Z | user\n\n- Added support and documentation for new services: Asana, Calendly, ClickUp, and Fathom.\n- Updated the Supported Services table and references section to include new providers.\n- No changes to existing API usage or connection management.\n\nv1.0.2 | 2026-02-03T08:44:01.554Z | user\n\n- Removed the reference file for Shopify (references/shopify.md) from the documentation.\n- The Shopify-specific routing guide is no longer available in the references section.\n\nv1.0.1 | 2026-02-01T08:46:56.692Z | user\n\nhttps://github.com/maton-ai/api-gateway-skill\n\n- Removed CONTRIBUTING.md and README.md files for a leaner distribution.\n- Streamlined SKILL.md: greatly reduced the skill description, removing detailed usage scenarios, trigger phrases, and granular supported actions.\n- Left only a high-level overview of the API gateway's purpose and examples, focusing on essential usage and supported endpoints.\n- Documentation no longer lists specific triggers or user scenarios—refer to service docs for details.\n\nv1.0.0 | 2026-02-01T08:37:47.126Z | user\n\nhttps://github.com/maton-ai/api-gateway-skill\n\nInitial release of the api-gateway skill.\n\n- Provides an API gateway to interact with third-party services using managed OAuth.\n- Supports a wide range of platforms: Slack, HubSpot, Salesforce, Google Workspace (Gmail, Sheets, Calendar, Drive, Docs, Forms), Stripe, Shopify, QuickBooks, Xero, Airtable, Notion, Jira, and more.\n- Enables automations such as sending messages, reading data, creating records, updating, and deleting across supported apps.\n- Automatically injects OAuth tokens for seamless authentication.\n- Includes guidance for when to invoke the skill and common user scenarios.\n\nArchive index:\n\nArchive v1.0.118: 223 files, 277738 bytes\n\nFiles: references/active-campaign/README.md (3233b), references/acuity-scheduling/README.md (3102b), references/airtable/README.md (3054b), references/apify/README.md (3683b), references/apollo/README.md (4131b), references/asana/README.md (4830b), references/attio/README.md (4912b), references/basecamp/README.md (2843b), references/baserow/README.md (3762b), references/beehiiv/README.md (2633b), references/box/README.md (5162b), references/brave-search/README.md (2900b), references/brevo/README.md (3825b), references/buffer/README.md (4436b), references/cal-com/README.md (3463b), references/calendly/README.md (2685b), references/callrail/README.md (3152b), references/chargebee/README.md (5609b), references/clickfunnels/README.md (5461b), references/clicksend/README.md (2397b), references/clickup/README.md (2978b), references/clio/README.md (6245b), references/clockify/README.md (3805b), references/coda/README.md (3646b), references/cognito-forms/README.md (2477b), references/companycam/README.md (3693b), references/confluence/README.md (4703b), references/constant-contact/README.md (9504b), references/dropbox-business/README.md (11936b), references/dropbox/README.md (6284b), references/elevenlabs/README.md (1816b), references/eventbrite/README.md (4273b), references/exa/README.md (4098b), references/facebook-page/README.md (3811b), references/fal-ai/README.md (2700b), references/fathom/README.md (1956b), references/firebase/README.md (3125b), references/firecrawl/README.md (3550b), references/fireflies/README.md (1892b), references/front/README.md (4029b), references/getresponse/README.md (2851b), references/github/README.md (9195b), references/google-ads/README.md (5558b), references/google-analytics-admin/README.md (5851b), references/google-analytics-data/README.md (4250b), references/google-apps-script/README.md (3297b), references/google-bigquery/README.md (3994b), references/google-calendar/README.md (5266b), references/google-classroom/README.md (2689b), references/google-contacts/README.md (3340b), references/google-docs/README.md (3451b), references/google-drive/README.md (7840b), references/google-forms/README.md (4249b), references/google-mail/README.md (5673b), references/google-meet/README.md (2800b), references/google-merchant/README.md (5110b), references/google-play/README.md (3842b), references/google-search-console/README.md (3917b), references/google-sheets/README.md (7332b), references/google-slides/README.md (4609b), references/google-tag-manager/README.md (3450b), references/google-tasks/README.md (4728b), references/google-workspace-admin/README.md (4708b), references/grafana/README.md (2821b), references/granola-mcp/README.md (5820b), references/granola-mcp/schemas/get_meeting_transcript.json (819b), references/granola-mcp/schemas/get_meetings.json (893b), references/granola-mcp/schemas/list_meetings.json (1585b), references/granola-mcp/schemas/query_granola_meetings.json (1689b), references/gumroad/README.md (3378b), references/highlevel-pit/README.md (7218b), references/hubspot/README.md (12748b), references/instantly/README.md (3024b), references/jira/README.md (6120b), references/jobber/README.md (3694b), references/jotform/README.md (3717b), references/kaggle/README.md (2571b), references/keap/README.md (3134b), references/kibana/README.md (2731b), references/kit/README.md (3415b)\n\nFile v1.0.118:SKILL.md\n\n---\nname: api-gateway\ndescription: |\n  Connect to external services through Maton-managed API routes.\n  Use this skill only after the user names the target app, account, and task.\n  Start with read/list calls when possible and follow the app-specific reference before any change.\ncompatibility: Requires network access and Maton account setup\nmetadata:\n  author: maton\n  version: \"1.0\"\n  clawdbot:\n    emoji: 🧠\n    homepage: \"https://maton.ai\"\n---\n\n# API Gateway\n\nManaged API routing for third-party services, provided by [Maton](https://maton.ai). Use this only for a user-requested app, account, and task.\n\n## Quick Start\n\n**CLI:**\n\n```bash\nmaton slack channel list --types public_channel --limit 10\n```\n\n```bash\nmaton api '/slack/api/conversations.list?types=public_channel&limit=10'\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n## Routing\n\nUse `https://api.maton.ai/` with the app-prefixed routes documented in the examples below or in the matching reference file.\n\n**Usage protocol:**\n1. Only invoke after the user specifies the exact app, account, and task.\n2. Always start with read-only (GET) calls to verify the target account, resource identifiers, and current state.\n3. **All non-GET requests are denied unless the user explicitly approves each one.** Before any POST, PUT, PATCH, or DELETE call, present the user with: the exact connection ID, the full endpoint path, the request body, and the expected outcome — then wait for approval.\n4. If the user's request implies a non-GET operation, first show them what you intend to call and ask for confirmation. Do not infer approval from the original request.\n\nRead-only route examples:\n\n```text\nhttps://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10\nhttps://api.maton.ai/google-mail/gmail/v1/users/me/messages\n```\n\nThe first path segment is the app identifier listed in Supported Services. For Gmail, use `/google-mail/gmail/v1/users/me/messages`.\n\n## Installation\n\n**NPM:**\n```bash\nnpm install -g @maton-ai/cli\n```\n\n**Homebrew:**\n```bash\nbrew install maton-ai/cli/maton\n```\n\n## Authentication\n\n**IMPORTANT — Credential Safety:**\n- Treat `MATON_API_KEY` as a secret. Never log it, echo it, paste it into prompts, or expose it in shared files, command output, or tool results.\n- **Connection creation requires explicit user approval.** Before creating any connection, ask the user to confirm the specific service and confirm they intend to authorize access. Never create connections on the agent's own initiative.\n- **Least-privilege scopes:** When a service offers scope selection during OAuth, select only the scopes the current task requires. Do not accept broader scopes for convenience.\n- Remove connections immediately after the task is complete if they are no longer needed (`maton connection delete {id}`).\n- If the key may have been exposed (logs, screenshots, shared terminals), rotate it immediately at [maton.ai/settings](https://maton.ai/settings).\n- Never share the key across users, workflows, or environments that do not require it.\n\n**CLI:**\n\n```bash\nmaton login                          # Opens browser for API key\nmaton login --interactive            # Skip browser, paste API key directly\nmaton whoami                         # Show current auth state\n```\n\n**Manual:**\n\n1. Sign in or create an account at [maton.ai](https://maton.ai)\n2. Go to [maton.ai/settings](https://maton.ai/settings)\n3. Click the copy button on the right side of API Key section to copy it\n4. Set your API key as `MATON_API_KEY`:\n\n```bash\nexport MATON_API_KEY=\"YOUR_API_KEY\"\n```\n\n## Connection Management\n\nConnection management uses a separate base URL: `https://api.maton.ai`\n\n### List Connections\n\n**CLI:**\n\n```bash\nmaton connection list slack --status ACTIVE\n```\n\n```bash\nmaton api -X GET /connections -f app=slack -f status=ACTIVE\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections?app=slack&status=ACTIVE')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n**Query Parameters (optional):**\n- `app` - Filter by service name (e.g., `slack`, `hubspot`, `salesforce`)\n- `status` - Filter by connection status (`ACTIVE`, `PENDING`, `FAILED`)\n\n**Response:**\n```json\n{\n  \"connections\": [\n    {\n      \"connection_id\": \"{connection_id}\",\n      \"status\": \"ACTIVE\",\n      \"creation_time\": \"2025-12-08T07:20:53.488460Z\",\n      \"last_updated_time\": \"2026-01-31T20:03:32.593153Z\",\n      \"url\": \"https://connect.maton.ai/?session_token=5e9...\",\n      \"app\": \"slack\",\n      \"method\": \"OAUTH2\",\n      \"metadata\": {}\n    }\n  ]\n}\n```\n\n### Create Connection\n\n**CLI:**\n\n```bash\nmaton connection create slack\n```\n\n```bash\nmaton api /connections -f app=slack\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\ndata = json.dumps({'app': 'slack'}).encode()\nreq = urllib.request.Request('https://api.maton.ai/connections', data=data, method='POST')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nreq.add_header('Content-Type', 'application/json')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n**Request Body:**\n- `app` (required) - Service name (e.g., `slack`, `notion`)\n- `method` (optional) - Connection method (`API_KEY`, `BASIC`, `OAUTH1`, `OAUTH2`, `MCP`)\n\n### Get Connection\n\n**CLI:**\n\n```bash\nmaton connection view {connection_id}\n```\n\n```bash\nmaton api /connections/{connection_id}\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections/{connection_id}')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n**Response:**\n```json\n{\n  \"connection\": {\n    \"connection_id\": \"{connection_id}\",\n    \"status\": \"ACTIVE\",\n    \"creation_time\": \"2025-12-08T07:20:53.488460Z\",\n    \"last_updated_time\": \"2026-01-31T20:03:32.593153Z\",\n    \"url\": \"https://connect.maton.ai/?session_token=5e9...\",\n    \"app\": \"slack\",\n    \"metadata\": {}\n  }\n}\n```\n\nOpen the returned URL in a browser to complete service authorization.\n\n### Delete Connection\n\n**CLI:**\n\n```bash\nmaton connection delete {connection_id}\n```\n\n```bash\nmaton api -X DELETE /connections/{connection_id}\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections/{connection_id}', method='DELETE')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Specifying Connection\n\nIf you have multiple connections for the same app, specify which connection to use:\n\n**CLI:**\n\n```bash\nmaton slack channel list --types public_channel --limit 10 --connection {connection_id}\n```\n\n```bash\nmaton api '/slack/api/conversations.list?types=public_channel&limit=10' --connection {connection_id}\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nreq.add_header('Maton-Connection', '{connection_id}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\nIf you have multiple connections, always specify the connection to ensure requests go to the intended account.\n\n## Security & Permissions\n\n- Access is scoped to the specific third-party service connected through each Maton connection and the scopes the user authorized.\n- **Use least privilege.** Connect only the services needed for the current task. Prefer read-only scopes and revoke unused connections promptly.\n- **Default to read/list calls.** Retrieve or list resources first to verify identifiers, account context, and current state before proposing any change.\n- **All operations that modify data require explicit user approval.** Before executing any POST, PUT, PATCH, or DELETE call, confirm the target service, resource, payload, and intended effect with the user. This includes sending messages, creating records, modifying content, deleting resources, and triggering workflows.\n- **High-impact operations require extra caution.** Actions such as bulk deletions, publishing content, sending emails/messages to external recipients, modifying billing or financial data, or changing permissions must be clearly described with specific resource identifiers and confirmed before execution.\n- **Always specify the connection.** Use the `--connection` flag (CLI) or `Maton-Connection` header to ensure requests go to the intended account, especially when the user has multiple connections for the same service.\n\n## Supported Services\n\n| Service | App Name | Service API Host |\n|---------|----------|------------------|\n| ActiveCampaign | `active-campaign` | `{account}.api-us1.com` |\n| Acuity Scheduling | `acuity-scheduling` | `acuityscheduling.com` |\n| Airtable | `airtable` | `api.airtable.com` |\n| Apify | `apify` | `api.apify.com` |\n| Apollo | `apollo` | `api.apollo.io` |\n| Asana | `asana` | `app.asana.com` |\n| Attio | `attio` | `api.attio.com` |\n| Basecamp | `basecamp` | `3.basecampapi.com` |\n| Baserow | `baserow` | `api.baserow.io` |\n| beehiiv | `beehiiv` | `api.beehiiv.com` |\n| Box | `box` | `api.box.com` |\n| Brevo | `brevo` | `api.brevo.com` |\n| Brave Search | `brave-search` | `api.search.brave.com` |\n| Buffer | `buffer` | `api.buffer.com` |\n| Calendly | `calendly` | `api.calendly.com` |\n| Cal.com | `cal-com` | `api.cal.com` |\n| CallRail | `callrail` | `api.callrail.com` |\n| Chargebee | `chargebee` | `{subdomain}.chargebee.com` |\n| ClickFunnels | `clickfunnels` | `{subdomain}.myclickfunnels.com` |\n| ClickSend | `clicksend` | `rest.clicksend.com` |\n| ClickUp | `clickup` | `api.clickup.com` |\n| Clio | `clio` | `app.clio.com` |\n| Clockify | `clockify` | `api.clockify.me` |\n| Coda | `coda` | `coda.io` |\n| Confluence | `confluence` | `api.atlassian.com` |\n| CompanyCam | `companycam` | `api.companycam.com` |\n| Cognito Forms | `cognito-forms` | `www.cognitoforms.com` |\n| Constant Contact | `constant-contact` | `api.cc.email` |\n| Dropbox | `dropbox` | `api.dropboxapi.com` |\n| Dropbox Business | `dropbox-business` | `api.dropboxapi.com` |\n| ElevenLabs | `elevenlabs` | `api.elevenlabs.io` |\n| Eventbrite | `eventbrite` | `www.eventbriteapi.com` |\n| Exa | `exa` | `api.exa.ai` |\n| Facebook Page | `facebook-page` | `graph.facebook.com` |\n| fal.ai | `fal-ai` | `queue.fal.run` |\n| Fathom | `fathom` | `api.fathom.ai` |\n| Firecrawl | `firecrawl` | `api.firecrawl.dev` |\n| Firebase | `firebase` | `firebase.googleapis.com` |\n| Fireflies | `fireflies` | `api.fireflies.ai` |\n| Front | `front` | `api2.frontapp.com` |\n| GetResponse | `getresponse` | `api.getresponse.com` |\n| Grafana | `grafana` | User's Grafana instance |\n| GitHub | `github` | `api.github.com` |\n| Gumroad | `gumroad` | `api.gumroad.com` |\n| Granola MCP | `granola` | `mcp.granola.ai` |\n| Google Ads | `google-ads` | `googleads.googleapis.com` |\n| Google BigQuery | `google-bigquery` | `bigquery.googleapis.com` |\n| Google Analytics Admin | `google-analytics-admin` | `analyticsadmin.googleapis.com` |\n| Google Analytics Data | `google-analytics-data` | `analyticsdata.googleapis.com` |\n| Google Apps Script | `google-apps-script` | `script.googleapis.com` |\n| Google Calendar | `google-calendar` | `www.googleapis.com` |\n| Google Classroom | `google-classroom` | `classroom.googleapis.com` |\n| Google Contacts | `google-contacts` | `people.googleapis.com` |\n| Google Docs | `google-docs` | `docs.googleapis.com` |\n| Google Drive | `google-drive` | `www.googleapis.com` |\n| Google Forms | `google-forms` | `forms.googleapis.com` |\n| Gmail | `google-mail` | `gmail.googleapis.com` |\n| Google Merchant | `google-merchant` | `merchantapi.googleapis.com` |\n| Google Meet | `google-meet` | `meet.googleapis.com` |\n| Google Play | `google-play` | `androidpublisher.googleapis.com` |\n| Google Search Console | `google-search-console` | `www.googleapis.com` |\n| Google Sheets | `google-sheets` | `sheets.googleapis.com` |\n| Google Slides | `google-slides` | `slides.googleapis.com` |\n| Google Tag Manager | `google-tag-manager` | `tagmanager.googleapis.com` |\n| Google Tasks | `google-tasks` | `tasks.googleapis.com` |\n| Google Workspace Admin | `google-workspace-admin` | `admin.googleapis.com` |\n| GoHighLevel (PIT) | `highlevel-pit` | `services.leadconnectorhq.com` |\n| HubSpot | `hubspot` | `api.hubapi.com` |\n| Instantly | `instantly` | `api.instantly.ai` |\n| Jira | `jira` | `api.atlassian.com` |\n| Jobber | `jobber` | `api.getjobber.com` |\n| JotForm | `jotform` | `api.jotform.com` |\n| Kaggle | `kaggle` | `api.kaggle.com` |\n| Keap | `keap` | `api.infusionsoft.com` |\n| Kibana | `kibana` | User's Kibana instance |\n| Kit | `kit` | `api.kit.com` |\n| Klaviyo | `klaviyo` | `a.klaviyo.com` |\n| Lemlist | `lemlist` | `api.lemlist.com` |\n| Linear | `linear` | `api.linear.app` |\n| LinkedIn | `linkedin` | `api.linkedin.com` |\n| LinkedIn Community Management | `linkedin-community-management` | `api.linkedin.com` |\n| Mailchimp | `mailchimp` | `{dc}.api.mailchimp.com` |\n| MailerLite | `mailerlite` | `connect.mailerlite.com` |\n| Mailgun | `mailgun` | `api.mailgun.net` |\n| Make | `make` | `{zone}.make.com` |\n| ManyChat | `manychat` | `api.manychat.com` |\n| Manus | `manus` | `api.manus.ai` |\n| Memelord | `memelord` | `www.memelord.com` |\n| Microsoft Excel | `microsoft-excel` | `graph.microsoft.com` |\n| Microsoft Teams | `microsoft-teams` | `graph.microsoft.com` |\n| Microsoft To Do | `microsoft-to-do` | `graph.microsoft.com` |\n| Monday.com | `monday` | `api.monday.com` |\n| Motion | `motion` | `api.usemotion.com` |\n| Netlify | `netlify` | `api.netlify.com` |\n| Notion | `notion` | `api.notion.com` |\n| Notion MCP | `notion` | `mcp.notion.com` |\n| OneNote | `one-note` | `graph.microsoft.com` |\n| OneDrive | `one-drive` | `graph.microsoft.com` |\n| Outlook | `outlook` | `graph.microsoft.com` |\n| PDF.co | `pdf-co` | `api.pdf.co` |\n| Pipedrive | `pipedrive` | `api.pipedrive.com` |\n| Podio | `podio` | `api.podio.com` |\n| PostHog | `posthog` | `{subdomain}.posthog.com` |\n| QuickBooks | `quickbooks` | `quickbooks.api.intuit.com` |\n| Quo | `quo` | `api.openphone.com` |\n| Reducto | `reducto` | `platform.reducto.ai` |\n| Resend | `resend` | `api.resend.com` |\n| Salesforce | `salesforce` | `{instance}.salesforce.com` |\n| SendGrid | `sendgrid` | `api.sendgrid.com` |\n| Sentry | `sentry` | `{subdomain}.sentry.io` |\n| SharePoint | `sharepoint` | `graph.microsoft.com` |\n| SignNow | `signnow` | `api.signnow.com` |\n| Slack | `slack` | `slack.com` |\n| Snapchat | `snapchat` | `adsapi.snapchat.com` |\n| Square | `squareup` | `connect.squareup.com` |\n| Squarespace | `squarespace` | `api.squarespace.com` |\n| Stripe | `stripe` | `api.stripe.com` |\n| Sunsama MCP | `sunsama` | MCP server |\n| Supabase | `supabase` | `{project_ref}.supabase.co` |\n| Systeme.io | `systeme` | `api.systeme.io` |\n| Tally | `tally` | `api.tally.so` |\n| Tavily | `tavily` | `api.tavily.com` |\n| Telegram | `telegram` | `api.telegram.org` |\n| TickTick | `ticktick` | `api.ticktick.com` |\n| Todoist | `todoist` | `api.todoist.com` |\n| Toggl Track | `toggl-track` | `api.track.toggl.com` |\n| Trello | `trello` | `api.trello.com` |\n| Twilio | `twilio` | `api.twilio.com` |\n| Twenty CRM | `twenty` | `api.twenty.com` |\n| Typeform | `typeform` | `api.typeform.com` |\n| Unbounce | `unbounce` | `api.unbounce.com` |\n| Vercel | `vercel` | `api.vercel.com` |\n| Vimeo | `vimeo` | `api.vimeo.com` |\n| WATI | `wati` | `{tenant}.wati.io` |\n| WhatsApp Business | `whatsapp-business` | `graph.facebook.com` |\n| WooCommerce | `woocommerce` | `{store-url}/wp-json/wc/v3` |\n| WordPress.com | `wordpress` | `public-api.wordpress.com` |\n| Wrike | `wrike` | `www.wrike.com` |\n| Xero | `xero` | `api.xero.com` |\n| YouTube | `youtube` | `www.googleapis.com` |\n| YouTube Analytics | `youtube-analytics` | `youtubeanalytics.googleapis.com` |\n| YouTube Reporting | `youtube-reporting` | `youtubereporting.googleapis.com` |\n| Zoom | `zoom` | `api.zoom.us` |\n| Zoom Admin | `zoom-admin` | `api.zoom.us` |\n| Zoho Bigin | `zoho-bigin` | `www.zohoapis.com` |\n| Zoho Bookings | `zoho-bookings` | `www.zohoapis.com` |\n| Zoho Books | `zoho-books` | `www.zohoapis.com` |\n| Zoho Calendar | `zoho-calendar` | `calendar.zoho.com` |\n| Zoho CRM | `zoho-crm` | `www.zohoapis.com` |\n| Zoho Inventory | `zoho-inventory` | `www.zohoapis.com` |\n| Zoho Mail | `zoho-mail` | `mail.zoho.com` |\n| Zoho People | `zoho-people` | `people.zoho.com` |\n| Zoho Projects | `zoho-projects` | `projectsapi.zoho.com` |\n| Zoho Recruit | `zoho-recruit` | `recruit.zoho.com` |\n\nSee [references/](https://github.com/maton-ai/api-gateway-skill/tree/main/references/) for detailed routing guides per provider:\n- [ActiveCampaign](https://github.com/maton-ai/api-gateway-skill/tree/main/references/active-campaign/README.md) - Contacts, deals, tags, lists, automations, campaigns\n- [Acuity Scheduling](https://github.com/maton-ai/api-gateway-skill/tree/main/references/acuity-scheduling/README.md) - Appointments, calendars, clients, availability\n- [Airtable](https://github.com/maton-ai/api-gateway-skill/tree/main/references/airtable/README.md) - Records, bases, tables\n- [Apify](https://github.com/maton-ai/api-gateway-skill/tree/main/references/apify/README.md) - Actors, runs, datasets, key-value stores, request queues, schedules\n- [Apollo](https://github.com/maton-ai/api-gateway-skill/tree/main/references/apollo/README.md) - People search, enrichment, contacts\n- [Asana](https://github.com/maton-ai/api-gateway-skill/tree/main/references/asana/README.md) - Tasks, projects, workspaces, webhooks\n- [Attio](https://github.com/maton-ai/api-gateway-skill/tree/main/references/attio/README.md) - People, companies, records, tasks\n- [Basecamp](https://github.com/maton-ai/api-gateway-skill/tree/main/references/basecamp/README.md) - Projects, to-dos, messages, schedules, documents\n- [Baserow](https://github.com/maton-ai/api-gateway-skill/tree/main/references/baserow/README.md) - Database rows, fields, tables, batch operations\n- [beehiiv](https://github.com/maton-ai/api-gateway-skill/tree/main/references/beehiiv/README.md) - Publications, subscriptions, posts, custom fields\n- [Box](https://github.com/maton-ai/api-gateway-skill/tree/main/references/box/README.md) - Files, folders, collaborations, shared links\n- [Brevo](https://github.com/maton-ai/api-gateway-skill/tree/main/references/brevo/README.md) - Contacts, email campaigns, transactional emails, templates\n- [Brave Search](https://github.com/maton-ai/api-gateway-skill/tree/main/references/brave-search/README.md) - Web search, image search, news search, video search\n- [Buffer](https://github.com/maton-ai/api-gateway-skill/tree/main/references/buffer/README.md) - Social media posts, channels, organizations, scheduling\n- [Calendly](https://github.com/maton-ai/api-gateway-skill/tree/main/references/calendly/README.md) - Event types, scheduled events, availability, webhooks\n- [Cal.com](https://github.com/maton-ai/api-gateway-skill/tree/main/references/cal-com/README.md) - Event types, bookings, schedules, availability slots, webhooks\n- [CallRail](https://github.com/maton-ai/api-gateway-skill/tree/main/references/callrail/README.md) - Calls, trackers, companies, tags, analytics\n- [Chargebee](https://github.com/maton-ai/api-gateway-skill/tree/main/references/chargebee/README.md) - Subscriptions, customers, invoices\n- [ClickFunnels](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clickfunnels/README.md) - Contacts, products, orders, courses, webhooks\n- [ClickSend](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clicksend/README.md) - SMS, MMS, voice messages, contacts, lists\n- [ClickUp](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clickup/README.md) - Tasks, lists, folders, spaces, webhooks\n- [Clio](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clio/README.md) - Matters, contacts, activities, tasks, calendar entries, documents\n- [Clockify](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clockify/README.md) - Time tracking, projects, clients, tasks, workspaces\n- [Coda](https://github.com/maton-ai/api-gateway-skill/tree/main/references/coda/README.md) - Docs, pages, tables, rows, formulas, controls\n- [Confluence](https://github.com/maton-ai/api-gateway-skill/tree/main/references/confluence/README.md) - Pages, spaces, blogposts, comments, attachments\n- [CompanyCam](https://github.com/maton-ai/api-gateway-skill/tree/main/references/companycam/README.md) - Projects, photos, users, tags, groups, documents\n- [Cognito Forms](https://github.com/maton-ai/api-gateway-skill/tree/main/references/cognito-forms/README.md) - Forms, entries, documents, files\n- [Constant Contact](https://github.com/maton-ai/api-gateway-skill/tree/main/references/constant-contact/README.md) - Contacts, email campaigns, lists, tags, custom fields, segments, bulk activities, reporting\n- [Dropbox](https://github.com/maton-ai/api-gateway-skill/tree/main/references/dropbox/README.md) - Files, folders, search, metadata, revisions, tags\n- [Dropbox Business](https://github.com/maton-ai/api-gateway-skill/tree/main/references/dropbox-business/README.md) - Team members, groups, team folders, devices, audit logs\n- [ElevenLabs](https://github.com/maton-ai/api-gateway-skill/tree/main/references/elevenlabs/README.md) - Text-to-speech, voice cloning, sound effects, audio processing\n- [Eventbrite](https://github.com/maton-ai/api-gateway-skill/tree/main/references/eventbrite/README.md) - Events, venues, tickets, orders, attendees\n- [Exa](https://github.com/maton-ai/api-gateway-skill/tree/main/references/exa/README.md) - Neural web search, content extraction, similar pages, AI answers, research tasks\n- [fal.ai](https://github.com/maton-ai/api-gateway-skill/tree/main/references/fal-ai/README.md) - AI model inference (image generation, video, audio, upscaling)\n- [Facebook Page](https://github.com/maton-ai/api-gateway-skill/tree/main/references/facebook-page/README.md) - Pages, posts, comments, insights, photos, videos, product catalogs\n- [Fathom](https://github.com/maton-ai/api-gateway-skill/tree/main/references/fathom/README.md) - Meeting recordings, transcripts, summaries, webhooks\n- [Firecrawl](https://github.com/maton-ai/api-gateway-skill/tree/main/references/firecrawl/README.md) - Web scraping, crawling, site mapping, web search\n- [Firebase](https://github.com/maton-ai/api-gateway-skill/tree/main/references/firebase/README.md) - Projects, web apps, Android apps, iOS apps, configurations\n- [Fireflies](https://github.com/maton-ai/api-gateway-skill/tree/main/references/fireflies/README.md) - Meeting transcripts, summaries, AskFred AI, channels\n- [Front](https://github.com/maton-ai/api-gateway-skill/tree/main/references/front/README.md) - Conversations, messages, contacts, tags, inboxes, teammates\n- [GetResponse](https://github.com/maton-ai/api-gateway-skill/tree/main/references/getresponse/README.md) - Campaigns, contacts, newsletters, autoresponders, tags, segments\n- [Grafana](https://github.com/maton-ai/api-gateway-skill/tree/main/references/grafana/README.md) - Dashboards, data sources, folders, annotations, alerts, teams\n- [GitHub](https://github.com/maton-ai/api-gateway-skill/tree/main/references/github/README.md) - Repositories, issues, pull requests, commits\n- [Gumroad](https://github.com/maton-ai/api-gateway-skill/tree/main/references/gumroad/README.md) - Products, sales, subscribers, licenses, webhooks\n- [Granola MCP](https://github.com/maton-ai/api-gateway-skill/tree/main/references/granola-mcp/README.md) - MCP-based interface for meeting notes, transcripts, queries\n- [Google Ads](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-ads/README.md) - Campaigns, ad groups, GAQL queries\n- [Google Analytics Admin](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-analytics-admin/README.md) - Reports, dimensions, metrics\n- [Google Analytics Data](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-analytics-data/README.md) - Reports, dimensions, metrics\n- [Google Apps Script](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-apps-script/README.md) - Projects, deployments, versions, script execution\n- [Google BigQuery](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-bigquery/README.md) - Datasets, tables, jobs, SQL queries\n- [Google Calendar](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-calendar/README.md) - Events, calendars, free/busy\n- [Google Classroom](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-classroom/README.md) - Courses, coursework, students, teachers, announcements\n- [Google Contacts](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-contacts/README.md) - Contacts, contact groups, people search\n- [Google Docs](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-docs/README.md) - Document creation, batch updates\n- [Google Drive](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-drive/README.md) - Files, folders, permissions\n- [Google Forms](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-forms/README.md) - Forms, questions, responses\n- [Gmail](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-mail/README.md) - Messages, threads, labels\n- [Google Meet](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-meet/README.md) - Spaces, conference records, participants\n- [Google Merchant](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-merchant/README.md) - Products, inventories, promotions, reports\n- [Google Play](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-play/README.md) - In-app products, subscriptions, reviews\n- [Google Search Console](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-search-console/README.md) - Search analytics, sitemaps\n- [Google Sheets](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-sheets/README.md) - Values, ranges, formatting\n- [Google Slides](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-slides/README.md) - Presentations, slides, formatting\n- [Google Tag Manager](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-tag-manager/README.md) - Accounts, containers, tags, triggers, variables, versions\n- [Google Tasks](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-tasks/README.md) - Task lists, tasks, subtasks\n- [Google Workspace Admin](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-workspace-admin/README.md) - Users, groups, org units, domains, roles\n- [GoHighLevel PIT](https://github.com/maton-ai/api-gateway-skill/tree/main/references/highlevel-pit/README.md) - Contacts, opportunities, calendars, conversations, locations, custom fields\n- [HubSpot](https://github.com/maton-ai/api-gateway-skill/tree/main/references/hubspot/README.md) - Contacts, companies, deals\n- [Instantly](https://github.com/maton-ai/api-gateway-skill/tree/main/references/instantly/README.md) - Campaigns, leads, accounts, email outreach\n- [Jira](https://github.com/maton-ai/api-gateway-skill/tree/main/references/jira/README.md) - Issues, projects, JQL queries\n- [Jobber](https://github.com/maton-ai/api-gateway-skill/tree/main/references/jobber/README.md) - Clients, jobs, invoices, quotes (GraphQL)\n- [JotForm](https://github.com/maton-ai/api-gateway-skill/tree/main/references/jotform/README.md) - Forms, submissions, webhooks\n- [Kaggle](https://github.com/maton-ai/api-gateway-skill/tree/main/references/kaggle/README.md) - Datasets, models, competitions, kernels\n- [Keap](https://github.com/maton-ai/api-gateway-skill/tree/main/references/keap/README.md) - Contacts, companies, tags, tasks, opportunities, campaigns\n- [Kibana](https://github.com/maton-ai/api-gateway-skill/tree/main/references/kibana/README.md) - Saved objects, dashboards, data views, spaces, alerts, fleet\n- [Kit](https://github.com/maton-ai/api-gateway-skill/tree/main/references/kit/README.md) - Subscribers, tags, forms, sequences\n- [Klaviyo](https://github.com/maton-ai/api-gateway-skill/tree/main/references/klaviyo/README.md) - Profiles, lists, campaigns, flows, events\n- [Lemlist](https://github.com/maton-ai/api-gateway-skill/tree/main/references/lemlist/README.md) - Campaigns, leads, activities, schedules, unsubscribes\n- [Linear](https://github.com/maton-ai/api-gateway-skill/tree/main/references/linear/README.md) - Issues, projects, teams, cycles (GraphQL)\n- [LinkedIn](https://github.com/maton-ai/api-gateway-skill/tree/main/references/linkedin/README.md) - Profile, posts, shares, media uploads\n- [LinkedIn Community Management](https://github.com/maton-ai/api-gateway-skill/tree/main/references/linkedin-community-management/README.md) - Organizations, posts, comments, reactions, follower/page/share statistics\n- [Mailchimp](https://github.com/maton-ai/api-gateway-skill/tree/main/references/mailchimp/README.md) - Audiences, campaigns, templates, automations\n- [MailerLite](https://github.com/maton-ai/api-gateway-skill/tree/main/references/mailerlite/README.md) - Subscribers, groups, campaigns, automations, forms\n- [Mailgun](https://github.com/maton-ai/api-gateway-skill/tree/main/references/mailgun/README.md) - Domains, routes, templates, mailing lists, suppressions\n- [Make](https://github.com/maton-ai/api-gateway-skill/tree/main/references/make/README.md) - Scenarios, organizations, teams, connections, data stores, hooks\n- [ManyChat](https://github.com/maton-ai/api-gateway-skill/tree/main/references/manychat/README.md) - Subscribers, tags, flows, messaging\n- [Manus](https://github.com/maton-ai/api-gateway-skill/tree/main/references/manus/README.md) - AI agent tasks, projects, files, webhooks\n- [Memelord](https://github.com/maton-ai/api-gateway-skill/tree/main/references/memelord/README.md) - AI meme generation, video memes, template editing\n- [Microsoft Excel](https://github.com/maton-ai/api-gateway-skill/tree/main/references/microsoft-excel/README.md) - Workbooks, worksheets, ranges, tables, charts\n- [Microsoft Teams](https://github.com/maton-ai/api-gateway-skill/tree/main/references/microsoft-teams/README.md) - Teams, channels, messages, members, chats\n- [Microsoft To Do](https://github.com/maton-ai/api-gateway-skill/tree/main/references/microsoft-to-do/README.md) - Task lists, tasks, checklist items, linked resources\n- [Monday.com](https://github.com/maton-ai/api-gateway-skill/tree/main/references/monday/README.md) - Boards, items, columns, groups (GraphQL)\n- [Motion](https://github.com/maton-ai/api-gateway-skill/tree/main/references/motion/README.md) - Tasks, projects, workspaces, schedules\n- [Netlify](https://github.com/maton-ai/api-gateway-skill/tree/main/references/netlify/README.md) - Sites, deploys, builds, DNS, environment variables\n- [Notion](https://github.com/maton-ai/api-gateway-skill/tree/main/references/notion/README.md) - Pages, databases, blocks\n- [Notion MCP](https://github.com/maton-ai/api-gateway-skill/tree/main/references/notion-mcp/README.md) - MCP-based interface for pages, databases, comments, teams, users\n- [OneNote](https://github.com/maton-ai/api-gateway-skill/tree/main/references/one-note/README.md) - Notebooks, sections, section groups, pages via Microsoft Graph\n- [OneDrive](https://github.com/maton-ai/api-gateway-skill/tree/main/references/one-drive/README.md) - Files, folders, drives, sharing\n- [Outlook](https://github.com/maton-ai/api-gateway-skill/tree/main/references/outlook/README.md) - Mail, calendar, contacts\n- [PDF.co](https://github.com/maton-ai/api-gateway-skill/tree/main/references/pdf-co/README.md) - PDF conversion, merge, split, edit, text extraction, barcodes\n- [Pipedrive](https://github.com/maton-ai/api-gateway-skill/tree/main/references/pipedrive/README.md) - Deals, persons, organizations, activities\n- [Podio](https://github.com/maton-ai/api-gateway-skill/tree/main/references/podio/README.md) - Organizations, workspaces, apps, items, tasks, comments\n- [PostHog](https://github.com/maton-ai/api-gateway-skill/tree/main/references/posthog/README.md) - Product analytics, feature flags, session recordings, experiments, HogQL queries\n- [QuickBooks](https://github.com/maton-ai/api-gateway-skill/tree/main/references/quickbooks/README.md) - Customers, invoices, reports\n- [Quo](https://github.com/maton-ai/api-gateway-skill/tree/main/references/quo/README.md) - Calls, messages, contacts, conversations, webhooks\n- [Reducto](https://github.com/maton-ai/api-gateway-skill/tree/main/references/reducto/README.md) - Document parsing, extraction, splitting, editing\n- [Resend](https://github.com/maton-ai/api-gateway-skill/tree/main/references/resend/README.md) - Domains, audiences, contacts, webhooks\n- [Salesforce](https://github.com/maton-ai/api-gateway-skill/tree/main/references/salesforce/README.md) - SOQL, sObjects, CRUD\n- [SignNow](https://github.com/maton-ai/api-gateway-skill/tree/main/references/signnow/README.md) - Documents, templates, invites, e-signatures\n- [SendGrid](https://github.com/maton-ai/api-gateway-skill/tree/main/references/sendgrid/README.md) - Contacts, templates, suppressions, statistics\n- [Sentry](https://github.com/maton-ai/api-gateway-skill/tree/main/references/sentry/README.md) - Issues, events, projects, teams, releases\n- [SharePoint](https://github.com/maton-ai/api-gateway-skill/tree/main/references/sharepoint/README.md) - Sites, lists, document libraries, files, folders, versions\n- [Slack](https://github.com/maton-ai/api-gateway-skill/tree/main/references/slack/README.md) - Messages, channels, users\n- [Snapchat](https://github.com/maton-ai/api-gateway-skill/tree/main/references/snapchat/README.md) - Ad accounts, campaigns, ad squads, ads, creatives, audiences\n- [Square](https://github.com/maton-ai/api-gateway-skill/tree/main/references/squareup/README.md) - Customers, orders, catalog, inventory, invoices\n- [Squarespace](https://github.com/maton-ai/api-gateway-skill/tree/main/references/squarespace/README.md) - Products, inventory, orders, profiles, transactions\n- [Stripe](https://github.com/maton-ai/api-gateway-skill/tree/main/references/stripe/README.md) - Customers, subscriptions, account records\n- [Sunsama MCP](https://github.com/maton-ai/api-gateway-skill/tree/main/references/sunsama-mcp/README.md) - MCP-based interface for tasks, calendar, backlog, objectives, time tracking\n- [Supabase](https://github.com/maton-ai/api-gateway-skill/tree/main/references/supabase/README.md) - Database tables, auth users, storage buckets\n- [Systeme.io](https://github.com/maton-ai/api-gateway-skill/tree/main/references/systeme/README.md) - Contacts, tags, courses, communities, webhooks\n- [Tally](https://github.com/maton-ai/api-gateway-skill/tree/main/references/tally/README.md) - Forms, submissions, workspaces, webhooks\n- [Tavily](https://github.com/maton-ai/api-gateway-skill/tree/main/references/tavily/README.md) - AI web search, content extraction, crawling, research tasks\n- [Telegram](https://github.com/maton-ai/api-gateway-skill/tree/main/references/telegram/README.md) - Messages, chats, bots, updates, polls\n- [TickTick](https://github.com/maton-ai/api-gateway-skill/tree/main/references/ticktick/README.md) - Tasks, projects, task lists\n- [Todoist](https://github.com/maton-ai/api-gateway-skill/tree/main/references/todoist/README.md) - Tasks, projects, sections, labels, comments\n- [Toggl Track](https://github.com/maton-ai/api-gateway-skill/tree/main/references/toggl-track/README.md) - Time entries, projects, clients, tags, workspaces\n- [Trello](https://github.com/maton-ai/api-gateway-skill/tree/main/references/trello/README.md) - Boards, lists, cards, checklists\n- [Twilio](https://github.com/maton-ai/api-gateway-skill/tree/main/references/twilio/README.md) - SMS, voice calls, phone numbers, messaging\n- [Twenty CRM](https://github.com/maton-ai/api-gateway-skill/tree/main/references/twenty/README.md) - Companies, people, opportunities, notes, tasks\n- [Typeform](https://github.com/maton-ai/api-gateway-skill/tree/main/references/typeform/README.md) - Forms, responses, insights\n- [Unbounce](https://github.com/maton-ai/api-gateway-skill/tree/main/references/unbounce/README.md) - Landing pages, leads, accounts, sub-accounts, domains\n- [Vercel](https://github.com/maton-ai/api-gateway-skill/tree/main/references/vercel/README.md) - Projects, deployments, domains, environment variables\n- [Vimeo](https://github.com/maton-ai/api-gateway-skill/tree/main/references/vimeo/README.md) - Videos, folders, albums, comments, likes\n- [WATI](https://github.com/maton-ai/api-gateway-skill/tree/main/references/wati/README.md) - WhatsApp messages, contacts, templates, interactive messages\n- [WhatsApp Business](https://github.com/maton-ai/api-gateway-skill/tree/main/references/whatsapp-business/README.md) - Messages, templates, media\n- [WooCommerce](https://github.com/maton-ai/api-gateway-skill/tree/main/references/woocommerce/README.md) - Products, orders, customers, coupons\n- [WordPress.com](https://github.com/maton-ai/api-gateway-skill/tree/main/references/wordpress/README.md) - Posts, pages, sites, users, settings\n- [Wrike](https://github.com/maton-ai/api-gateway-skill/tree/main/references/wrike/README.md) - Tasks, folders, projects, spaces, comments, timelogs, workflows\n- [Xero](https://github.com/maton-ai/api-gateway-skill/tree/main/references/xero/README.md) - Contacts, invoices, reports\n- [YouTube](https://github.com/maton-ai/api-gateway-skill/tree/main/references/youtube/README.md) - Videos, playlists, channels, subscriptions\n- [YouTube Analytics](https://github.com/maton-ai/api-gateway-skill/tree/main/references/youtube-analytics/README.md) - Reports, metrics, groups, dimensions\n- [YouTube Reporting](https://github.com/maton-ai/api-gateway-skill/tree/main/references/youtube-reporting/README.md) - Bulk report jobs, report types, CSV downloads\n- [Zoom](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoom/README.md) - Meetings, recordings, webinars, users\n- [Zoom Admin](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoom-admin/README.md) - Users, meetings, webinars, recordings, account settings (admin scopes)\n- [Zoho Bigin](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-bigin/README.md) - Contacts, companies, pipelines, products\n- [Zoho Bookings](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-bookings/README.md) - Appointments, services, staff, workspaces\n- [Zoho Books](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-books/README.md) - Invoices, contacts, bills, expenses\n- [Zoho Calendar](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-calendar/README.md) - Calendars, events, attendees, reminders\n- [Zoho CRM](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-crm/README.md) - Leads, contacts, accounts, deals, search\n- [Zoho Inventory](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-inventory/README.md) - Items, sales orders, invoices, vendor orders, bills\n- [Zoho Mail](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-mail/README.md) - Messages, folders, labels, attachments\n- [Zoho People](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-people/README.md) - Employees, departments, designations, attendance, leave\n- [Zoho Projects](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-projects/README.md) - Projects, tasks, milestones, tasklists, comments\n- [Zoho Recruit](https://github.com/maton-ai/api-gateway-skill/tree/main/references/zoho-recruit/README.md) - Candidates, job openings, interviews, applications\n\n## Examples\n\n### Slack - List Channels (Native API)\n\n**CLI:**\n\n```bash\nmaton slack channel list --types public_channel --limit 10\n```\n\n```bash\nmaton api '/slack/api/conversations.list?types=public_channel&limit=10'\n```\n\n**Python:**\n\n```bash\n# Native Slack API: GET https://slack.com/api/conversations.list\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### HubSpot - List Contacts (Native API)\n\n**CLI:**\n\n```bash\nmaton hubspot contact list -L 10\n```\n\n**Python:**\n\n```bash\n# Native HubSpot API: GET https://api.hubapi.com/crm/v3/objects/contacts\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/hubspot/crm/v3/objects/contacts?limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Google Sheets - Get Spreadsheet Values (Native API)\n\n**CLI:**\n\n```bash\nmaton google-sheets values get {spreadsheet_id} --range 'Sheet1!A1:B2'\n```\n\n**Python:**\n\n```bash\n# Native Sheets API: GET https://sheets.googleapis.com/v4/spreadsheets/{id}/values/{range}\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/google-sheets/v4/spreadsheets/{spreadsheet_id}/values/Sheet1!A1:B2')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Salesforce - SOQL Query (Native API)\n\n**CLI:**\n\n```bash\nmaton salesforce query 'SELECT Id,Name FROM Contact LIMIT 10'\n```\n\n**Python:**\n\n```bash\n# Native Salesforce API: GET https://{instance}.salesforce.com/services/data/v64.0/query?q=...\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/salesforce/services/data/v64.0/query?q=SELECT+Id,Name+FROM+Contact+LIMIT+10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Airtable - List Tables (Native API)\n\n**CLI:**\n\n```bash\nmaton api '/airtable/v0/meta/bases/{base_id}/tables'\n```\n\n**Python:**\n\n```bash\n# Native Airtable API: GET https://api.airtable.com/v0/meta/bases/{id}/tables\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/airtable/v0/meta/bases/{base_id}/tables')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Notion - Query Database (Native API)\n\n**CLI:**\n\n```bash\nmaton notion data-source query {data_source_id}\n```\n\n**Python:**\n\n```bash\n# Native Notion API: POST https://api.notion.com/v1/data_sources/{id}/query\npython <<'EOF'\nimport urllib.request, os, json\ndata = json.dumps({}).encode()\nreq = urllib.request.Request('https://api.maton.ai/notion/v1/data_sources/{data_source_id}/query', data=data, method='POST')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nreq.add_header('Content-Type', 'application/json')\nreq.add_header('Notion-Version', '2025-09-03')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Stripe - List Customers (Native API)\n\n**CLI:**\n\n```bash\nmaton stripe customer list -L 10\n```\n\n**Python:**\n\n```bash\n# Native Stripe API: GET https://api.stripe.com/v1/customers\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/stripe/v1/customers?limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n## Code Examples\n\n### CLI\n\n```bash\n# List public slack channels\nmaton slack channel list --types public_channel --limit 10\n\n# List unread messages with headers\nmaton google-mail message list --hydrate\n\n# Filter with jq — e.g., only active customers\n# Note: --jq requires --json\nmaton stripe customer list -L 10 --json --jq '.data | map(select(.delinquent == false))'\n```\n\n### JavaScript (Node.js)\n\n```javascript\nconst response = await fetch('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10', {\n  headers: {\n    'Authorization': `Bearer ${process.env.MATON_API_KEY}`\n  }\n});\nconst data = await response.json();\n```\n\n### Python\n\n```python\nimport os\nimport requests\n\nresponse = requests.get(\n    'https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10',\n    headers={'Authorization': f'Bearer {os.environ[\"MATON_API_KEY\"]}'}\n)\ndata = response.json()\n```\n\n## Error Handling\n\n| Status | Meaning |\n|--------|---------|\n| 400 | Missing connection for the requested app |\n| 401 | Invalid or missing Maton API key |\n| 429 | Rate limited (10 requests/second per account) |\n| 500 | Internal Server Error |\n| 4xx/5xx | Passthrough error from the target API |\n\nErrors from the target API are passed through with their original status codes and response bodies.\n\n### Troubleshooting: API Key Issues\n\n**CLI:**\n\n1. Check your auth state:\n\n```bash\nmaton whoami\n```\n\n2. Verify the API key is valid by listing connections:\n\n```bash\nmaton connection list\n```\n\n**Manual:**\n\n1. Check that the `MATON_API_KEY` environment variable is set:\n\n```bash\necho $MATON_API_KEY\n```\n\n2. Verify the API key is valid by listing connections:\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Troubleshooting: Invalid App Name\n\n1. Verify your URL path starts with the correct app name. The path must begin with `/google-mail/`. For example:\n\n- Correct: `https://api.maton.ai/google-mail/gmail/v1/users/me/messages`\n- Incorrect: `https://api.maton.ai/gmail/v1/users/me/messages`\n\n2. Ensure you have an active connection for the app. List your connections to verify:\n\n**CLI:**\n\n```bash\nmaton connection list google-mail --status ACTIVE\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections?app=google-mail&status=ACTIVE')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Troubleshooting: Server Error\n\nA 500 error may indicate expired service authorization. Try creating a new connection via the Connection Management section above and completing service authorization. If the new connection is \"ACTIVE\", delete the old connection to ensure Maton uses the new one.\n\n## Rate Limits\n\n- 10 requests per second per account\n- Target API rate limits also apply\n\n## Notes\n\n- When using curl with URLs containing brackets (`fields[]`, `sort[]`, `records[]`), use the `-g` flag to disable glob parsing\n- When piping curl output to `jq`, environment variables may not expand correctly in some shells, which can cause \"Invalid API key\" errors\n- **Media upload URLs (LinkedIn, etc.):** Some APIs return pre-signed upload URLs that point to a different host than the normal API host (e.g., LinkedIn returns `www.linkedin.com` upload URLs while API calls use `api.linkedin.com`). These upload URLs are pre-signed and do NOT require an Authorization header. Upload the binary directly to the returned URL. **You MUST use Python `urllib`** for these uploads because the URLs contain encoded characters (e.g., `%253D`) that get corrupted when passed through shell variables or `curl`. Always parse the JSON response with `json.load()` and use the URL directly in Python.\n\n## Tips\n\n1. **Use native API docs**: Refer to each service's official API documentation for endpoint paths and parameters.\n\n2. **Headers are forwarded**: Custom headers (except `Host` and `Authorization`) are forwarded to the target API.\n\n3. **Query params work**: URL query parameters are passed through to the target API.\n\n4. **HTTP methods**: Use the method required by the referenced endpoint. Confirm the exact target and expected outcome before methods that change data.\n\n5. **QuickBooks special case**: Use `:realmId` in the path and it will be replaced with the connected realm ID.\n\n## Optional\n\n- [Github](https://github.com/maton-ai/api-gateway-skill)\n- [API Reference](https://www.maton.ai/docs/api-reference)\n- [Maton CLI Manual](https://cli.maton.ai/manual)\n- [Maton Community](https://discord.com/invite/dBfFAcefs2)\n- [Maton Support](mailto:support@maton.ai)\n\nFile v1.0.118:references/active-campaign/README.md\n\n# ActiveCampaign Routing Reference\n\n**App name:** `active-campaign`\n**Base URL proxied:** `{account}.api-us1.com`\n\n## API Path Pattern\n\n```\n/active-campaign/api/3/{resource}\n```\n\n## Common Endpoints\n\n### Contacts\n\n#### List Contacts\n```bash\nGET /active-campaign/api/3/contacts\n```\n\n#### Get Contact\n```bash\nGET /active-campaign/api/3/contacts/{contactId}\n```\n\n#### Create Contact\n```bash\nPOST /active-campaign/api/3/contacts\nContent-Type: application/json\n\n{\n  \"contact\": {\n    \"email\": \"user@example.com\",\n    \"firstName\": \"John\",\n    \"lastName\": \"Doe\"\n  }\n}\n```\n\n#### Update Contact\n```bash\nPUT /active-campaign/api/3/contacts/{contactId}\n```\n\n#### Delete Contact\n```bash\nDELETE /active-campaign/api/3/contacts/{contactId}\n```\n\n### Tags\n\n#### List Tags\n```bash\nGET /active-campaign/api/3/tags\n```\n\n#### Create Tag\n```bash\nPOST /active-campaign/api/3/tags\nContent-Type: application/json\n\n{\n  \"tag\": {\n    \"tag\": \"Tag Name\",\n    \"tagType\": \"contact\"\n  }\n}\n```\n\n### Contact Tags\n\n#### Add Tag to Contact\n```bash\nPOST /active-campaign/api/3/contactTags\nContent-Type: application/json\n\n{\n  \"contactTag\": {\n    \"contact\": \"1\",\n    \"tag\": \"1\"\n  }\n}\n```\n\n#### Remove Tag from Contact\n```bash\nDELETE /active-campaign/api/3/contactTags/{contactTagId}\n```\n\n### Lists\n\n#### List All Lists\n```bash\nGET /active-campaign/api/3/lists\n```\n\n#### Create List\n```bash\nPOST /active-campaign/api/3/lists\n```\n\n### Deals\n\n#### List Deals\n```bash\nGET /active-campaign/api/3/deals\n```\n\n#### Create Deal\n```bash\nPOST /active-campaign/api/3/deals\nContent-Type: application/json\n\n{\n  \"deal\": {\n    \"title\": \"New Deal\",\n    \"value\": \"10000\",\n    \"currency\": \"usd\",\n    \"contact\": \"1\",\n    \"stage\": \"1\"\n  }\n}\n```\n\n### Deal Stages & Pipelines\n\n#### List Deal Stages\n```bash\nGET /active-campaign/api/3/dealStages\n```\n\n#### List Pipelines (Deal Groups)\n```bash\nGET /active-campaign/api/3/dealGroups\n```\n\n### Automations\n\n#### List Automations\n```bash\nGET /active-campaign/api/3/automations\n```\n\n### Campaigns\n\n#### List Campaigns\n```bash\nGET /active-campaign/api/3/campaigns\n```\n\n### Users\n\n#### List Users\n```bash\nGET /active-campaign/api/3/users\n```\n\n### Accounts\n\n#### List Accounts\n```bash\nGET /active-campaign/api/3/accounts\n```\n\n### Custom Fields\n\n#### List Fields\n```bash\nGET /active-campaign/api/3/fields\n```\n\n### Notes\n\n#### List Notes\n```bash\nGET /active-campaign/api/3/notes\n```\n\n### Webhooks\n\n#### List Webhooks\n```bash\nGET /active-campaign/api/3/webhooks\n```\n\n## Pagination\n\nUses offset-based pagination:\n\n```bash\nGET /active-campaign/api/3/contacts?limit=20&offset=0\n```\n\n**Parameters:**\n- `limit` - Results per page (default: 20)\n- `offset` - Starting index\n\nResponse includes meta with total:\n```json\n{\n  \"contacts\": [...],\n  \"meta\": {\n    \"total\": \"150\"\n  }\n}\n```\n\n## Notes\n\n- All endpoints require `/api/3/` prefix\n- Request bodies use singular resource names (e.g., `{\"contact\": {...}}`)\n- IDs returned as strings\n- Rate limit: 5 requests per second per account\n- DELETE returns 200 OK (not 204)\n\n## Resources\n\n- [ActiveCampaign API Overview](https://developers.activecampaign.com/reference/overview)\n- [Developer Portal](https://developers.activecampaign.com/)\n- [Contacts API](https://developers.activecampaign.com/reference/list-all-contacts)\n\nFile v1.0.118:references/acuity-scheduling/README.md\n\n# Acuity Scheduling Routing Reference\n\n**App name:** `acuity-scheduling`\n**Base URL proxied:** `acuityscheduling.com`\n\n## API Path Pattern\n\n```\n/acuity-scheduling/api/v1/{resource}\n```\n\nMaton automatically prepends `/api/v1` when proxying to Acuity.\n\n## Common Endpoints\n\n### Get Account Info\n```bash\nGET /acuity-scheduling/api/v1/me\n```\n\n### List Appointments\n```bash\nGET /acuity-scheduling/api/v1/appointments?max=100&minDate=2026-02-01\n```\n\n### Get Appointment\n```bash\nGET /acuity-scheduling/api/v1/appointments/{id}\n```\n\n### Create Appointment\n```bash\nPOST /acuity-scheduling/api/v1/appointments\nContent-Type: application/json\n\n{\n  \"datetime\": \"2026-02-15T09:00\",\n  \"appointmentTypeID\": 123,\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john@example.com\"\n}\n```\n\n### Update Appointment\n```bash\nPUT /acuity-scheduling/api/v1/appointments/{id}\nContent-Type: application/json\n\n{\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Smith\"\n}\n```\n\n### Cancel Appointment\n```bash\nPUT /acuity-scheduling/api/v1/appointments/{id}/cancel\n```\n\n### Reschedule Appointment\n```bash\nPUT /acuity-scheduling/api/v1/appointments/{id}/reschedule\nContent-Type: application/json\n\n{\n  \"datetime\": \"2026-02-20T10:00\"\n}\n```\n\n### List Calendars\n```bash\nGET /acuity-scheduling/api/v1/calendars\n```\n\n### List Appointment Types\n```bash\nGET /acuity-scheduling/api/v1/appointment-types\n```\n\n### Get Available Dates\n```bash\nGET /acuity-scheduling/api/v1/availability/dates?month=2026-02&appointmentTypeID=123\n```\n\n### Get Available Times\n```bash\nGET /acuity-scheduling/api/v1/availability/times?date=2026-02-04&appointmentTypeID=123\n```\n\n### List Clients\n```bash\nGET /acuity-scheduling/api/v1/clients?search=John\n```\n\n### Create Client\n```bash\nPOST /acuity-scheduling/api/v1/clients\nContent-Type: application/json\n\n{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john@example.com\"\n}\n```\n\n### List Blocks\n```bash\nGET /acuity-scheduling/api/v1/blocks?calendarID=1234\n```\n\n### Create Block\n```bash\nPOST /acuity-scheduling/api/v1/blocks\nContent-Type: application/json\n\n{\n  \"start\": \"2026-02-15T12:00\",\n  \"end\": \"2026-02-15T13:00\",\n  \"calendarID\": 1234\n}\n```\n\n### Delete Block\n```bash\nDELETE /acuity-scheduling/api/v1/blocks/{id}\n```\n\n### List Forms\n```bash\nGET /acuity-scheduling/api/v1/forms\n```\n\n### List Labels\n```bash\nGET /acuity-scheduling/api/v1/labels\n```\n\n## Notes\n\n- Datetime values must be parseable by PHP's `strtotime()` function\n- Timezones use IANA format (e.g., \"America/New_York\")\n- Use `max` parameter to limit results (default: 100)\n- Use `minDate` and `maxDate` for date-range filtering\n- Client update/delete only works for clients with existing appointments\n- Rescheduling requires the new datetime to be an available time slot\n\n## Resources\n\n- [Acuity Scheduling API Quick Start](https://developers.acuityscheduling.com/reference/quick-start)\n- [Appointments API](https://developers.acuityscheduling.com/reference/get-appointments)\n- [Availability API](https://developers.acuityscheduling.com/reference/get-availability-dates)\n- [OAuth2 Documentation](https://developers.acuityscheduling.com/docs/oauth2)\n\nFile v1.0.118:references/airtable/README.md\n\n# Airtable Routing Reference\n\n**App name:** `airtable`\n**Base URL proxied:** `api.airtable.com`\n\n## API Path Pattern\n\n```\n/airtable/v0/{baseId}/{tableIdOrName}\n```\n\n## Common Endpoints\n\n### List Records\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?maxRecords=100\n```\n\nWith view:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?view=Grid%20view&maxRecords=100\n```\n\nWith filter formula:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?filterByFormula={Status}='Active'\n```\n\nWith field selection:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?fields[]=Name&fields[]=Status&fields[]=Email\n```\n\nWith sorting:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?sort[0][field]=Created&sort[0][direction]=desc\n```\n\n### Get Record\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}/{recordId}\n```\n\n### Create Records\n```bash\nPOST /airtable/v0/{baseId}/{tableIdOrName}\nContent-Type: application/json\n\n{\n  \"records\": [\n    {\n      \"fields\": {\n        \"Name\": \"New Record\",\n        \"Status\": \"Active\",\n        \"Email\": \"test@example.com\"\n      }\n    }\n  ]\n}\n```\n\n### Update Records (PATCH - partial update)\n```bash\nPATCH /airtable/v0/{baseId}/{tableIdOrName}\nContent-Type: application/json\n\n{\n  \"records\": [\n    {\n      \"id\": \"recXXXXXXXXXXXXXX\",\n      \"fields\": {\n        \"Status\": \"Completed\"\n      }\n    }\n  ]\n}\n```\n\n### Update Records (PUT - full replace)\n```bash\nPUT /airtable/v0/{baseId}/{tableIdOrName}\nContent-Type: application/json\n\n{\n  \"records\": [\n    {\n      \"id\": \"recXXXXXXXXXXXXXX\",\n      \"fields\": {\n        \"Name\": \"Updated Name\",\n        \"Status\": \"Active\"\n      }\n    }\n  ]\n}\n```\n\n### Delete Records\n```bash\nDELETE /airtable/v0/{baseId}/{tableIdOrName}?records[]=recXXXXX&records[]=recYYYYY\n```\n\n### List Bases\n```bash\nGET /airtable/v0/meta/bases\n```\n\n### Get Base Schema\n```bash\nGET /airtable/v0/meta/bases/{baseId}/tables\n```\n\n## Pagination\n\n**Parameters:**\n- `pageSize` - Number of records per request (max 100, default 100)\n- `maxRecords` - Maximum total records across all pages\n- `offset` - Cursor for next page (returned in response)\n\nResponse includes `offset` when more records exist:\n```json\n{\n  \"records\": [...],\n  \"offset\": \"itrXXXXXXXXXXX\"\n}\n```\n\nUse offset for next page:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?pageSize=50&offset=itrXXXXXXXXXXX\n```\n\n## Notes\n\n- Authentication is automatic via OAuth\n- Base IDs start with `app`\n- Table IDs start with `tbl` (can also use table name)\n- Record IDs start with `rec`\n- Maximum 100 records per request for create/update\n- Maximum 10 records per delete request\n- Filter formulas use Airtable formula syntax\n\n## Resources\n\n- [API Overview](https://airtable.com/developers/web/api/introduction)\n- [List Records](https://airtable.com/developers/web/api/list-records)\n- [Create Records](https://airtable.com/developers/web/api/create-records)\n- [Update Records](https://airtable.com/developers/web/api/update-record)\n- [Delete Records](https://airtable.com/developers/web/api/delete-record)\n- [Formula Reference](https://support.airtable.com/docs/formula-field-reference)\n\nFile v1.0.118:references/apify/README.md\n\n# Apify Routing Reference\n\n**App name:** `apify`\n**Base URL proxied:** `api.apify.com`\n\n## API Path Pattern\n\n```\n/apify/v2/{resource}\n```\n\n## Common Endpoints\n\n### Users\n\n#### Get Current User\n```bash\nGET /apify/v2/users/me\n```\n\n### Actors\n\n#### List Actors\n```bash\nGET /apify/v2/acts\nGET /apify/v2/acts?my=true\n```\n\n#### Get Actor\n```bash\nGET /apify/v2/acts/{actorId}\n```\n\n#### Run Actor\n```bash\nPOST /apify/v2/acts/{actorId}/runs\nContent-Type: application/json\n\n{\n  \"startUrls\": [{\"url\": \"https://example.com\"}],\n  \"maxItems\": 100\n}\n```\n\n### Actor Runs\n\n#### List Runs\n```bash\nGET /apify/v2/actor-runs\nGET /apify/v2/actor-runs?status=SUCCEEDED\n```\n\n#### Get Run\n```bash\nGET /apify/v2/actor-runs/{runId}\n```\n\n#### Abort Run\n```bash\nPOST /apify/v2/actor-runs/{runId}/abort\n```\n\n### Actor Tasks\n\n#### List Tasks\n```bash\nGET /apify/v2/actor-tasks\n```\n\n#### Get Task\n```bash\nGET /apify/v2/actor-tasks/{actorTaskId}\n```\n\n#### Run Task\n```bash\nPOST /apify/v2/actor-tasks/{actorTaskId}/runs\n```\n\n### Datasets\n\n#### List Datasets\n```bash\nGET /apify/v2/datasets\n```\n\n#### Get Dataset\n```bash\nGET /apify/v2/datasets/{datasetId}\n```\n\n#### Get Dataset Items\n```bash\nGET /apify/v2/datasets/{datasetId}/items\nGET /apify/v2/datasets/{datasetId}/items?format=json&clean=true\n```\n\n#### Put Items\n```bash\nPOST /apify/v2/datasets/{datasetId}/items\nContent-Type: application/json\n\n[{\"field1\": \"value1\"}, {\"field2\": \"value2\"}]\n```\n\n### Key-Value Stores\n\n#### List Stores\n```bash\nGET /apify/v2/key-value-stores\n```\n\n#### Get Store\n```bash\nGET /apify/v2/key-value-stores/{storeId}\n```\n\n#### Get Record\n```bash\nGET /apify/v2/key-value-stores/{storeId}/records/{key}\n```\n\n#### Set Record\n```bash\nPUT /apify/v2/key-value-stores/{storeId}/records/{key}\nContent-Type: application/json\n\n{\"data\": \"value\"}\n```\n\n### Request Queues\n\n#### List Queues\n```bash\nGET /apify/v2/request-queues\n```\n\n#### Get Queue\n```bash\nGET /apify/v2/request-queues/{queueId}\n```\n\n#### Add Request\n```bash\nPOST /apify/v2/request-queues/{queueId}/requests\nContent-Type: application/json\n\n{\n  \"url\": \"https://example.com\",\n  \"uniqueKey\": \"unique-key\"\n}\n```\n\n### Schedules\n\n#### List Schedules\n```bash\nGET /apify/v2/schedules\n```\n\n#### Get Schedule\n```bash\nGET /apify/v2/schedules/{scheduleId}\n```\n\n#### Create Schedule\n```bash\nPOST /apify/v2/schedules\nContent-Type: application/json\n\n{\n  \"name\": \"My Schedule\",\n  \"cronExpression\": \"0 0 * * *\",\n  \"actorId\": \"actor-id\"\n}\n```\n\n### Webhooks\n\n#### List Webhooks\n```bash\nGET /apify/v2/webhooks\n```\n\n#### Get Webhook\n```bash\nGET /apify/v2/webhooks/{webhookId}\n```\n\n#### Create Webhook\n```bash\nPOST /apify/v2/webhooks\nContent-Type: application/json\n\n{\n  \"eventTypes\": [\"ACTOR.RUN.SUCCEEDED\"],\n  \"requestUrl\": \"https://example.com/webhook\"\n}\n```\n\n## Pagination\n\nOffset-based pagination:\n\n```bash\nGET /apify/v2/acts?offset=0&limit=100\n```\n\nResponse includes:\n```json\n{\n  \"data\": {\n    \"total\": 150,\n    \"offset\": 0,\n    \"limit\": 100,\n    \"count\": 100,\n    \"items\": [...]\n  }\n}\n```\n\n## Query Parameters\n\nCommon parameters:\n- `offset` - Number of items to skip (default: 0)\n- `limit` - Max items to return (default: varies, max: 1000)\n- `desc` - Sort descending by creation date (boolean)\n\nFor dataset items:\n- `format` - Response format (json, csv, xlsx, xml, rss)\n- `clean` - Remove empty fields (boolean)\n- `fields` - Comma-separated field names to include\n\n## Notes\n\n- All endpoints use the `/v2/` prefix\n- Actor IDs can be `username/actor-name` or unique IDs\n- Timestamps are ISO 8601 format\n- Default response format is JSON\n- Rate limits apply per account\n\n## Resources\n\n- [Apify API Reference](https://docs.apify.com/api/v2)\n- [Apify Platform Documentation](https://docs.apify.com/platform)\n\nFile v1.0.118:references/apollo/README.md\n\n# Apollo Routing Reference\n\n**App name:** `apollo`\n**Base URL proxied:** `api.apollo.io`\n\n## API Path Pattern\n\n```\n/apollo/v1/{endpoint}\n```\n\n## Common Endpoints\n\n### People\n\n#### Search People\n```bash\nPOST /apollo/v1/mixed_people/api_search\nContent-Type: application/json\n\n{\n  \"q_organization_name\": \"Google\",\n  \"page\": 1,\n  \"per_page\": 25\n}\n```\n\n#### Get Person\n```bash\nGET /apollo/v1/people/{personId}\n```\n\n#### Enrich Person\n```bash\nPOST /apollo/v1/people/match\nContent-Type: application/json\n\n{\n  \"email\": \"john@example.com\"\n}\n```\n\nOr by LinkedIn:\n```bash\nPOST /apollo/v1/people/match\nContent-Type: application/json\n\n{\n  \"linkedin_url\": \"https://linkedin.com/in/johndoe\"\n}\n```\n\n### Organizations\n\n#### Search Organizations\n```bash\nPOST /apollo/v1/organizations/search\nContent-Type: application/json\n\n{\n  \"q_organization_name\": \"Google\",\n  \"page\": 1,\n  \"per_page\": 25\n}\n```\n\n#### Enrich Organization\n```bash\nPOST /apollo/v1/organizations/enrich\nContent-Type: application/json\n\n{\n  \"domain\": \"google.com\"\n}\n```\n\n### Contacts\n\n#### Search Contacts\n```bash\nPOST /apollo/v1/contacts/search\nContent-Type: application/json\n\n{\n  \"page\": 1,\n  \"per_page\": 25\n}\n```\n\n#### Create Contact\n```bash\nPOST /apollo/v1/contacts\nContent-Type: application/json\n\n{\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"email\": \"john@example.com\",\n  \"organization_name\": \"Acme Corp\"\n}\n```\n\n#### Update Contact\n```bash\nPUT /apollo/v1/contacts/{contactId}\nContent-Type: application/json\n\n{\n  \"first_name\": \"Jane\"\n}\n```\n\n### Accounts\n\n#### Search Accounts\n```bash\nPOST /apollo/v1/accounts/search\nContent-Type: application/json\n\n{\n  \"page\": 1,\n  \"per_page\": 25\n}\n```\n\n#### Create Account\n```bash\nPOST /apollo/v1/accounts\nContent-Type: application/json\n\n{\n  \"name\": \"Acme Corp\",\n  \"domain\": \"acme.com\"\n}\n```\n\n### Sequences\n\n#### Search Sequences\n```bash\nPOST /apollo/v1/emailer_campaigns/search\nContent-Type: application/json\n\n{\n  \"page\": 1,\n  \"per_page\": 25\n}\n```\n\n#### Add Contact to Sequence\n```bash\nPOST /apollo/v1/emailer_campaigns/{campaignId}/add_contact_ids\nContent-Type: application/json\n\n{\n  \"contact_ids\": [\"contact_id_1\", \"contact_id_2\"]\n}\n```\n\n### Email\n\n#### Search Email Messages\n```bash\nPOST /apollo/v1/emailer_messages/search\nContent-Type: application/json\n\n{\n  \"contact_id\": \"{contactId}\"\n}\n```\n\n### Labels\n\n#### List Labels\n```bash\nGET /apollo/v1/labels\n```\n\n## Search Filters\n\nCommon search parameters:\n- `q_organization_name` - Company name\n- `q_person_title` - Job title\n- `person_locations` - Array of locations\n- `organization_num_employees_ranges` - Employee count ranges\n- `q_keywords` - General keyword search\n\n## Notes\n\n- Authentication is automatic - the router injects the API key\n- Pagination uses `page` and `per_page` parameters in POST body\n- Most list endpoints use POST with `/search` suffix (not GET)\n- Email enrichment consumes credits\n- Rate limits apply per endpoint\n- `people/search` and `mixed_people/search` are deprecated - use `mixed_people/api_search` instead\n\n## Resources\n\n- [API Overview](https://docs.apollo.io/reference/introduction)\n- [Search People](https://docs.apollo.io/reference/people-api-search.md)\n- [Enrich Person](https://docs.apollo.io/reference/people-enrichment.md)\n- [Search Organizations](https://docs.apollo.io/reference/organization-search.md)\n- [Enrich Organization](https://docs.apollo.io/reference/organization-enrichment.md)\n- [Search Contacts](https://docs.apollo.io/reference/search-for-contacts.md)\n- [Create Contact](https://docs.apollo.io/reference/create-a-contact.md)\n- [Update Contact](https://docs.apollo.io/reference/update-a-contact.md)\n- [Search Accounts](https://docs.apollo.io/reference/search-for-accounts.md)\n- [Create Account](https://docs.apollo.io/reference/create-an-account.md)\n- [Search Sequences](https://docs.apollo.io/reference/search-for-sequences.md)\n- [Add Contacts to Sequence](https://docs.apollo.io/reference/add-contacts-to-sequence.md)\n- [Search Email Messages](https://docs.apollo.io/reference/search-for-outreach-emails.md)\n- [List Labels](https://docs.apollo.io/reference/get-a-list-of-all-lists.md)\n- [LLM Reference](https://docs.apollo.io/llms.txt)\n\nFile v1.0.118:references/asana/README.md\n\n# Asana Routing Reference\n\n**App name:** `asana`\n**Base URL proxied:** `app.asana.com`\n\n## API Path Pattern\n\n```\n/asana/api/1.0/{resource}\n```\n\n## Common Endpoints\n\n### Get Current User\n```bash\nGET /asana/api/1.0/users/me\n```\n\nExample:\n\n```bash\nmaton asana whoami\n```\n\n### List Workspaces\n```bash\nGET /asana/api/1.0/workspaces\n```\n\nExample:\n\n```bash\nmaton asana workspace list\n```\n\n### Get a Workspace\n```bash\nGET /asana/api/1.0/workspaces/{workspace_gid}\n```\n\nExample:\n\n```bash\nmaton asana workspace view {workspace_gid}\n```\n\n### List Tasks\n```bash\nGET /asana/api/1.0/tasks?project=PROJECT_GID&opt_fields=name,completed,due_on\n```\n\nExample:\n\n```bash\nmaton asana task list --project PROJECT_GID --opt-fields name,completed,due_on\n```\n\n### Get a Task\n```bash\nGET /asana/api/1.0/tasks/{task_gid}\n```\n\nExample:\n\n```bash\nmaton asana task view {task_gid}\n```\n\n### Create a Task\n```bash\nPOST /asana/api/1.0/tasks\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"name\": \"New task\",\n    \"projects\": [\"PROJECT_GID\"],\n    \"assignee\": \"USER_GID\",\n    \"due_on\": \"2025-03-20\",\n    \"notes\": \"Task description\"\n  }\n}\n```\n\nExample:\n\n```bash\nmaton asana task create --name 'New task' --projects PROJECT_GID --assignee USER_GID --due-on 2025-03-20 --notes 'Task description'\n```\n\n### Update a Task\n```bash\nPUT /asana/api/1.0/tasks/{task_gid}\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"completed\": true\n  }\n}\n```\n\nExample:\n\n```bash\nmaton asana task update {task_gid} --completed\n```\n\n### Delete a Task\n```bash\nDELETE /asana/api/1.0/tasks/{task_gid}\n```\n\nExample:\n\n```bash\nmaton asana task delete {task_gid}\n```\n\n### Get Subtasks\n```bash\nGET /asana/api/1.0/tasks/{task_gid}/subtasks\n```\n\nExample:\n\n```bash\nmaton asana task list --parent {task_gid}\n```\n\n### Create Subtask\n```bash\nPOST /asana/api/1.0/tasks/{task_gid}/subtasks\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"name\": \"Subtask name\"\n  }\n}\n```\n\nExample:\n\n```bash\nmaton asana task create --name 'Subtask name' --parent {task_gid}\n```\n\n### Search Tasks (Premium)\n\n**Note:** Requires an Asana Premium subscription.\n\n```bash\nGET /asana/api/1.0/workspaces/{workspace_gid}/tasks/search?text=...&completed=false\n```\n\nExample:\n\n```bash\nmaton asana task search -w {workspace_gid} --text 'quarterly report' --completed=false\n```\n\n### List Projects\n```bash\nGET /asana/api/1.0/projects?workspace=WORKSPACE_GID&opt_fields=name,owner,due_date\n```\n\nExample:\n\n```bash\nmaton asana project list --workspace WORKSPACE_GID --opt-fields name,owner,due_date\n```\n\n### Get a Project\n```bash\nGET /asana/api/1.0/projects/{project_gid}\n```\n\nExample:\n\n```bash\nmaton asana project view {project_gid}\n```\n\n### Create a Project\n```bash\nPOST /asana/api/1.0/projects\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"name\": \"New Project\",\n    \"workspace\": \"WORKSPACE_GID\"\n  }\n}\n```\n\nExample:\n\n```bash\nmaton asana project create --workspace WORKSPACE_GID --name 'New Project' --notes 'Project description'\n```\n\n### Update a Project\n```bash\nPUT /asana/api/1.0/projects/{project_gid}\n```\n\nExample:\n\n```bash\nmaton asana project update {project_gid} --name 'Updated Name'\n```\n\n### Delete a Project\n```bash\nDELETE /asana/api/1.0/projects/{project_gid}\n```\n\nExample:\n\n```bash\nmaton asana project delete {project_gid}\n```\n\n### List Users in Workspace\n```bash\nGET /asana/api/1.0/workspaces/{workspace_gid}/users?opt_fields=name,email\n```\n\n### Create Webhook\n```bash\nPOST /asana/api/1.0/webhooks\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"resource\": \"PROJECT_OR_TASK_GID\",\n    \"target\": \"https://example.com/webhook\",\n    \"filters\": [\n      {\n        \"resource_type\": \"task\",\n        \"action\": \"changed\",\n        \"fields\": [\"completed\", \"due_on\"]\n      }\n    ]\n  }\n}\n```\n\n### Delete Webhook\n```bash\nDELETE /asana/api/1.0/webhooks/{webhook_gid}\n```\n\n## Pagination\n\nAsana uses cursor-based pagination. The CLI handles this automatically with `--paginate`:\n\n```bash\nmaton asana task list --project PROJECT_GID --paginate\n```\n\nFor raw HTTP requests, use the `offset` parameter returned in `next_page.offset`.\n\n## Notes\n\n- Resource IDs (GIDs) are strings\n- Timestamps are in ISO 8601 format\n- Use `opt_fields` to specify which fields to return in responses\n- Workspaces are the highest-level organizational unit\n- Use cursor-based pagination with `offset` parameter\n- Webhook creation requires the target URL to respond with 200 status\n\n## Resources\n\n- [Asana API Overview](https://developers.asana.com)\n- [API Reference](https://developers.asana.com/reference)\n- [Tasks](https://developers.asana.com/reference/tasks)\n- [Projects](https://developers.asana.com/reference/projects)\n- [Workspaces](https://developers.asana.com/reference/workspaces)\n- [Webhooks](https://developers.asana.com/reference/webhooks)\n- [LLM Reference](https://developers.asana.com/llms.txt)\n- [Maton CLI Manual](https://cli.maton.ai/manual)\n\nFile v1.0.118:references/attio/README.md\n\n# Attio Routing Reference\n\n**App name:** `attio`\n**Base URL proxied:** `api.attio.com`\n\n## API Path Pattern\n\n```\n/attio/v2/{resource}\n```\n\n## Common Endpoints\n\n### List Objects\n```bash\nGET /attio/v2/objects\n```\n\n### Get Object\n```bash\nGET /attio/v2/objects/{object}\n```\n\n### List Attributes\n```bash\nGET /attio/v2/objects/{object}/attributes\n```\n\n### Query Records\n```bash\nPOST /attio/v2/objects/{object}/records/query\nContent-Type: application/json\n\n{\n  \"limit\": 50,\n  \"offset\": 0\n}\n```\n\n### Get Record\n```bash\nGET /attio/v2/objects/{object}/records/{record_id}\n```\n\n### Create Record\n```bash\nPOST /attio/v2/objects/{object}/records\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"values\": {\n      \"name\": [{\"first_name\": \"John\", \"last_name\": \"Doe\", \"full_name\": \"John Doe\"}],\n      \"email_addresses\": [\"john@example.com\"]\n    }\n  }\n}\n```\n\n### Update Record\n```bash\nPATCH /attio/v2/objects/{object}/records/{record_id}\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"values\": {\n      \"job_title\": \"Engineer\"\n    }\n  }\n}\n```\n\n### Delete Record\n```bash\nDELETE /attio/v2/objects/{object}/records/{record_id}\n```\n\n### List Tasks\n```bash\nGET /attio/v2/tasks?limit=50\n```\n\n### Create Task\n```bash\nPOST /attio/v2/tasks\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"content\": \"Task description\",\n    \"format\": \"plaintext\",\n    \"deadline_at\": null,\n    \"assignees\": [],\n    \"linked_records\": []\n  }\n}\n```\n\n### List Workspace Members\n```bash\nGET /attio/v2/workspace_members\n```\n\n### Identify Self\n```bash\nGET /attio/v2/self\n```\n\n### Notes\n\n#### List Notes\n```bash\nGET /attio/v2/notes?limit=50&parent_object={object}&parent_record_id={record_id}\n```\n\n#### Get Note\n```bash\nGET /attio/v2/notes/{note_id}\n```\n\n#### Create Note\n```bash\nPOST /attio/v2/notes\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"format\": \"plaintext\",\n    \"title\": \"Meeting Summary\",\n    \"content\": \"Note content here\",\n    \"parent_object\": \"companies\",\n    \"parent_record_id\": \"{record_id}\",\n    \"created_by_actor\": {\n      \"type\": \"workspace-member\",\n      \"id\": \"{workspace_member_id}\"\n    }\n  }\n}\n```\n\n#### Delete Note\n```bash\nDELETE /attio/v2/notes/{note_id}\n```\n\n### Comments\n\n#### Create Comment on Record\n```bash\nPOST /attio/v2/comments\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"format\": \"plaintext\",\n    \"content\": \"Comment text\",\n    \"author\": {\n      \"type\": \"workspace-member\",\n      \"id\": \"{workspace_member_id}\"\n    },\n    \"record\": {\n      \"object\": \"companies\",\n      \"record_id\": \"{record_id}\"\n    }\n  }\n}\n```\n\n#### Reply to Comment Thread\n```bash\nPOST /attio/v2/comments\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"format\": \"plaintext\",\n    \"content\": \"This is a reply\",\n    \"author\": {\n      \"type\": \"workspace-member\",\n      \"id\": \"{workspace_member_id}\"\n    },\n    \"thread_id\": \"{thread_id}\"\n  }\n}\n```\n\n### Lists\n\n#### List All Lists\n```bash\nGET /attio/v2/lists\n```\n\n#### Get List\n```bash\nGET /attio/v2/lists/{list_id}\n```\n\n### List Entries\n\n#### Query List Entries\n```bash\nPOST /attio/v2/lists/{list}/entries/query\nContent-Type: application/json\n\n{\n  \"limit\": 50,\n  \"offset\": 0\n}\n```\n\n#### Create List Entry\n```bash\nPOST /attio/v2/lists/{list}/entries\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"parent_record_id\": \"{record_id}\",\n    \"parent_object\": \"companies\",\n    \"entry_values\": {}\n  }\n}\n```\n\n#### Get List Entry\n```bash\nGET /attio/v2/lists/{list}/entries/{entry_id}\n```\n\n#### Update List Entry\n```bash\nPATCH /attio/v2/lists/{list}/entries/{entry_id}\nContent-Type: application/json\n\n{\n  \"data\": {\n    \"entry_values\": {\n      \"status\": \"Active\"\n    }\n  }\n}\n```\n\n#### Delete List Entry\n```bash\nDELETE /attio/v2/lists/{list}/entries/{entry_id}\n```\n\n### Meetings\n\n#### List Meetings\n```bash\nGET /attio/v2/meetings?limit=50\n```\n\n#### Get Meeting\n```bash\nGET /attio/v2/meetings/{meeting_id}\n```\n\n### Call Recordings\n\n#### List Call Recordings for Meeting\n```bash\nGET /attio/v2/meetings/{meeting_id}/call_recordings?limit=50\n```\n\n#### Get Call Recording\n```bash\nGET /attio/v2/meetings/{meeting_id}/call_recordings/{call_recording_id}\n```\n\n## Usage Notes\n\n- Object slugs are lowercase snake_case (e.g., `people`, `companies`)\n- Record IDs are UUIDs\n- For personal-name attributes, include `full_name` when creating records\n- Task creation requires `format`, `deadline_at`, `assignees`, and `linked_records` fields\n- Note creation requires `format`, `content`, `parent_object`, and `parent_record_id`\n- Comment creation requires `format`, `content`, `author`, plus one of `record`, `entry`, or `thread_id`\n- Meetings use cursor-based pagination\n- Rate limits: 100 read/sec, 25 write/sec\n- Pagination uses `limit` and `offset` parameters (or `cursor` for meetings)\n\n## Resources\n\n- [Attio API Overview](https://docs.attio.com/rest-api/overview)\n- [Attio API Reference](https://docs.attio.com/rest-api/endpoint-reference)\n- [Records API](https://docs.attio.com/rest-api/endpoint-reference/records)\n\nFile v1.0.118:references/basecamp/README.md\n\n# Basecamp Routing Reference\n\n**App name:** `basecamp`\n**Base URL proxied:** `3.basecampapi.com/{account_id}`\n\nNote: Maton automatically injects the account ID from the OAuth connection.\n\n## API Path Pattern\n\n```\n/basecamp/{resource}.json\n```\n\nAll paths must end with `.json`.\n\n## Common Endpoints\n\n### Get Current User\n```bash\nGET /basecamp/my/profile.json\n```\n\n### List People\n```bash\nGET /basecamp/people.json\n```\n\n### List Projects\n```bash\nGET /basecamp/projects.json\n```\n\n### Get Project\n```bash\nGET /basecamp/projects/{project_id}.json\n```\n\nReturns project with `dock` array containing tool IDs.\n\n### Create Project\n```bash\nPOST /basecamp/projects.json\nContent-Type: application/json\n\n{\n  \"name\": \"Project Name\",\n  \"description\": \"Description\"\n}\n```\n\n### Get Todoset\n```bash\nGET /basecamp/buckets/{project_id}/todosets/{todoset_id}.json\n```\n\n### List Todolists\n```bash\nGET /basecamp/buckets/{project_id}/todosets/{todoset_id}/todolists.json\n```\n\n### List Todos\n```bash\nGET /basecamp/buckets/{project_id}/todolists/{todolist_id}/todos.json\n```\n\n### Create Todo\n```bash\nPOST /basecamp/buckets/{project_id}/todolists/{todolist_id}/todos.json\nContent-Type: application/json\n\n{\n  \"content\": \"Todo content\",\n  \"due_on\": \"2026-02-15\",\n  \"assignee_ids\": [123]\n}\n```\n\n### Complete Todo\n```bash\nPOST /basecamp/buckets/{project_id}/todos/{todo_id}/completion.json\n```\n\n### Get Message Board\n```bash\nGET /basecamp/buckets/{project_id}/message_boards/{message_board_id}.json\n```\n\n### List Messages\n```bash\nGET /basecamp/buckets/{project_id}/message_boards/{message_board_id}/messages.json\n```\n\n### Get Schedule\n```bash\nGET /basecamp/buckets/{project_id}/schedules/{schedule_id}.json\n```\n\n### List Schedule Entries\n```bash\nGET /basecamp/buckets/{project_id}/schedules/{schedule_id}/entries.json\n```\n\n### Get Vault (Documents)\n```bash\nGET /basecamp/buckets/{project_id}/vaults/{vault_id}.json\n```\n\n### List Documents\n```bash\nGET /basecamp/buckets/{project_id}/vaults/{vault_id}/documents.json\n```\n\n### List Campfires\n```bash\nGET /basecamp/chats.json\n```\n\n### Trash Recording\n```bash\nPUT /basecamp/buckets/{project_id}/recordings/{recording_id}/status/trashed.json\n```\n\n## Key Concepts\n\n- **Bucket**: Project content container (bucket_id = project_id)\n- **Dock**: Per-project tool list with `id`, `name`, `enabled`\n- **Recording**: Any content item (todos, messages, documents)\n\n## Pagination\n\nUses `Link` header with `rel=\"next\"`:\n```\nLink: <url>; rel=\"next\"\nX-Total-Count: 150\n```\n\n## Notes\n\n- All paths must end with `.json`\n- Gateway injects account ID automatically\n- Uses Basecamp 4 API (bc3-api)\n- Rate limit: ~50 requests per 10 seconds per IP\n- Check `enabled: true` in dock before using tools\n\n## Resources\n\n- [Basecamp 4 API Documentation](https://github.com/basecamp/bc3-api)\n- [API Endpoints](https://github.com/basecamp/bc3-api#endpoints)\n\nFile v1.0.118:references/baserow/README.md\n\n# Baserow Routing Reference\n\n**App name:** `baserow`\n**Base URL proxied:** `api.baserow.io`\n\n## API Path Pattern\n\n```\n/baserow/api/database/rows/table/{table_id}/\n/baserow/api/database/fields/table/{table_id}/\n/baserow/api/database/tables/all-tables/\n/baserow/api/user-files/upload-file/\n/baserow/api/user-files/upload-via-url/\n```\n\n## Important Notes\n\n- Connection uses API_KEY authentication (database token), not OAuth\n- By default, fields return as `field_{id}`; use `user_field_names=true` for readable names\n- Database tokens grant access only to database row endpoints\n- Cloud has a limit of 10 concurrent API requests\n\n## Common Endpoints\n\n### List Rows\n```bash\nGET /baserow/api/database/rows/table/{table_id}/?user_field_names=true\n```\n\n### Get Row\n```bash\nGET /baserow/api/database/rows/table/{table_id}/{row_id}/\n```\n\n### Create Row\n```bash\nPOST /baserow/api/database/rows/table/{table_id}/\nContent-Type: application/json\n\n{\n  \"field_123\": \"value\"\n}\n```\n\n### Update Row\n```bash\nPATCH /baserow/api/database/rows/table/{table_id}/{row_id}/\nContent-Type: application/json\n\n{\n  \"field_123\": \"updated value\"\n}\n```\n\n### Delete Row\n```bash\nDELETE /baserow/api/database/rows/table/{table_id}/{row_id}/\n```\n\n### Batch Create Rows\n```bash\nPOST /baserow/api/database/rows/table/{table_id}/batch/\nContent-Type: application/json\n\n{\n  \"items\": [\n    {\"field_123\": \"value1\"},\n    {\"field_123\": \"value2\"}\n  ]\n}\n```\n\n### Batch Update Rows\n```bash\nPATCH /baserow/api/database/rows/table/{table_id}/batch/\nContent-Type: application/json\n\n{\n  \"items\": [\n    {\"id\": 1, \"field_123\": \"updated1\"},\n    {\"id\": 2, \"field_123\": \"updated2\"}\n  ]\n}\n```\n\n### Batch Delete Rows\n```bash\nPOST /baserow/api/database/rows/table/{table_id}/batch-delete/\nContent-Type: application/json\n\n{\n  \"items\": [1, 2, 3]\n}\n```\n\n### List Fields\n```bash\nGET /baserow/api/database/fields/table/{table_id}/\n```\n\n### List All Tables\n```bash\nGET /baserow/api/database/tables/all-tables/\n```\n\n### Move Row\n```bash\nPATCH /baserow/api/database/rows/table/{table_id}/{row_id}/move/?before_id={row_id}\n```\n\n### Upload File via URL\n```bash\nPOST /baserow/api/user-files/upload-via-url/\nContent-Type: application/json\n\n{\n  \"url\": \"https://example.com/image.png\"\n}\n```\n\n### Upload File (Multipart)\n```bash\nPOST /baserow/api/user-files/upload-file/\nContent-Type: multipart/form-data\n```\n\n## Query Parameters\n\n- `user_field_names=true` - Use human-readable field names\n- `size` - Rows per page (default: 100)\n- `page` - Page number (1-indexed)\n- `order_by` - Field to sort by (prefix `-` for descending)\n- `filter__{field}__{operator}` - Filter rows\n- `search` - Search across all fields\n- `include` - Fields to include\n- `exclude` - Fields to exclude\n\n## Filter Operators\n\n**Text:** `equal`, `not_equal`, `contains`, `contains_not`, `contains_word`, `doesnt_contain_word`, `length_is_lower_than`\n\n**Numeric:** `higher_than`, `higher_than_or_equal`, `lower_than`, `lower_than_or_equal`, `is_even_and_whole`\n\n**Date:** `date_is`, `date_is_not`, `date_is_before`, `date_is_on_or_before`, `date_is_after`, `date_is_on_or_after`, `date_is_within`, `date_equals_today`, `date_within_days`, `date_within_weeks`, `date_within_months`\n\n**Boolean:** `boolean`\n\n**Link Row:** `link_row_has`, `link_row_has_not`, `link_row_contains`, `link_row_not_contains`\n\n**Select:** `single_select_equal`, `single_select_not_equal`, `single_select_is_any_of`, `single_select_is_none_of`, `multiple_select_has`, `multiple_select_has_not`\n\n**File:** `filename_contains`, `has_file_type`, `files_lower_than`\n\n**General:** `empty`, `not_empty`\n\n## Resources\n\n- [Baserow API Documentation](https://baserow.io/api-docs)\n- [Baserow API Spec](https://api.baserow.io/api/redoc/)\n- [Database Tokens](https://baserow.io/user-docs/personal-api-tokens)\n\nFile v1.0.118:references/beehiiv/README.md\n\n# beehiiv Routing Reference\n\n**App name:** `beehiiv`\n**Base URL proxied:** `api.beehiiv.com`\n\n## API Path Pattern\n\n```\n/beehiiv/v2/{resource}\n```\n\n## Common Endpoints\n\n### Publications\n\n#### List Publications\n```bash\nGET /beehiiv/v2/publications\n```\n\n#### Get Publication\n```bash\nGET /beehiiv/v2/publications/{publication_id}\n```\n\n### Subscriptions\n\n#### List Subscriptions\n```bash\nGET /beehiiv/v2/publications/{publication_id}/subscriptions\n```\n\n#### Get Subscription by ID\n```bash\nGET /beehiiv/v2/publications/{publication_id}/subscriptions/{subscription_id}\n```\n\n#### Get Subscription by Email\n```bash\nGET /beehiiv/v2/publications/{publication_id}/subscriptions/by_email/{email}\n```\n\n#### Create Subscription\n```bash\nPOST /beehiiv/v2/publications/{publication_id}/subscriptions\nContent-Type: application/json\n\n{\n  \"email\": \"subscriber@example.com\",\n  \"utm_source\": \"api\"\n}\n```\n\n#### Update Subscription\n```bash\nPATCH /beehiiv/v2/publications/{publication_id}/subscriptions/{subscription_id}\n```\n\n#### Delete Subscription\n```bash\nDELETE /beehiiv/v2/publications/{publication_id}/subscriptions/{subscription_id}\n```\n\n### Posts\n\n#### List Posts\n```bash\nGET /beehiiv/v2/publications/{publication_id}/posts\n```\n\n#### Get Post\n```bash\nGET /beehiiv/v2/publications/{publication_id}/posts/{post_id}\n```\n\n### Custom Fields\n\n#### List Custom Fields\n```bash\nGET /beehiiv/v2/publications/{publication_id}/custom_fields\n```\n\n#### Create Custom Field\n```bash\nPOST /beehiiv/v2/publications/{publication_id}/custom_fields\n```\n\n### Segments\n\n```bash\nGET /beehiiv/v2/publications/{publication_id}/segments\nGET /beehiiv/v2/publications/{publication_id}/segments/{segment_id}\n```\n\n### Tiers\n\n```bash\nGET /beehiiv/v2/publications/{publication_id}/tiers\nPOST /beehiiv/v2/publications/{publication_id}/tiers\nPATCH /beehiiv/v2/publications/{publication_id}/tiers/{tier_id}\n```\n\n### Automations\n\n```bash\nGET /beehiiv/v2/publications/{publication_id}/automations\nGET /beehiiv/v2/publications/{publication_id}/automations/{automation_id}\n```\n\n## Pagination\n\nCursor-based (recommended) or page-based (deprecated):\n\n```bash\n# Cursor-based\nGET /beehiiv/v2/publications/{pub_id}/subscriptions?limit=10&cursor={next_cursor}\n\n# Page-based (max 100 pages)\nGET /beehiiv/v2/publications?page=2&limit=10\n```\n\n## Notes\n\n- Publication IDs start with `pub_`\n- Subscription IDs start with `sub_`\n- Timestamps are Unix timestamps\n- Cursor-based pagination is recommended\n- Page-based pagination limited to 100 pages\n\n## Resources\n\n- [beehiiv Developer Documentation](https://developers.beehiiv.com/)\n- [beehiiv API Reference](https://developers.beehiiv.com/api-reference)\n\nFile v1.0.118:references/box/README.md\n\n# Box Routing Reference\n\n**App name:** `box`\n**Base URLs proxied:**\n- `api.box.com` - Standard API endpoints (metadata, folders, search, etc.)\n- `upload.box.com` - Upload endpoints (file upload, chunked upload sessions)\n\nMaton automatically routes to the correct host based on the endpoint path.\n\n## API Path Pattern\n\n```\n/box/2.0/{resource}\n/box/api/2.0/{resource}  # Upload endpoints\n```\n\n## Common Endpoints\n\n### Get Current User\n```bash\nGET /box/2.0/users/me\n```\n\n### Get User\n```bash\nGET /box/2.0/users/{user_id}\n```\n\n### Get Folder\n```bash\nGET /box/2.0/folders/{folder_id}\n```\n\nRoot folder ID is `0`.\n\n### List Folder Items\n```bash\nGET /box/2.0/folders/{folder_id}/items\nGET /box/2.0/folders/{folder_id}/items?limit=100&offset=0\n```\n\n### Create Folder\n```bash\nPOST /box/2.0/folders\nContent-Type: application/json\n\n{\n  \"name\": \"New Folder\",\n  \"parent\": {\"id\": \"0\"}\n}\n```\n\n### Update Folder\n```bash\nPUT /box/2.0/folders/{folder_id}\nContent-Type: application/json\n\n{\n  \"name\": \"Updated Name\",\n  \"description\": \"Description\"\n}\n```\n\n### Copy Folder\n```bash\nPOST /box/2.0/folders/{folder_id}/copy\nContent-Type: application/json\n\n{\n  \"name\": \"Copied Folder\",\n  \"parent\": {\"id\": \"0\"}\n}\n```\n\n### Delete Folder\n```bash\nDELETE /box/2.0/folders/{folder_id}\nDELETE /box/2.0/folders/{folder_id}?recursive=true\n```\n\n### Get File\n```bash\nGET /box/2.0/files/{file_id}\n```\n\n### Download File\n```bash\nGET /box/2.0/files/{file_id}/content\n```\n\n### Update File\n```bash\nPUT /box/2.0/files/{file_id}\n```\n\n### Copy File\n```bash\nPOST /box/2.0/files/{file_id}/copy\n```\n\n### Delete File\n```bash\nDELETE /box/2.0/files/{file_id}\n```\n\n### Upload File (up to 50 MB)\n```bash\nPOST /box/api/2.0/files/content\nContent-Type: multipart/form-data\n\nattributes={\"name\":\"file.txt\",\"parent\":{\"id\":\"0\"}}\nfile=<binary data>\n```\n\n### Upload New File Version\n```bash\nPOST /box/api/2.0/files/{file_id}/content\nContent-Type: multipart/form-data\n\nattributes={\"name\":\"file.txt\"}\nfile=<binary data>\n```\n\n### Chunked Upload (Large Files)\n\n#### Create Upload Session\n```bash\nPOST /box/api/2.0/files/upload_sessions\nContent-Type: application/json\n\n{\n  \"folder_id\": \"0\",\n  \"file_size\": 104857600,\n  \"file_name\": \"large_file.zip\"\n}\n```\n\n#### Create Upload Session for New Version\n```bash\nPOST /box/api/2.0/files/{file_id}/upload_sessions\nContent-Type: application/json\n\n{\n  \"file_size\": 104857600,\n  \"file_name\": \"large_file.zip\"\n}\n```\n\n#### Upload Part\n```bash\nPUT /box/api/2.0/files/upload_sessions/{session_id}\nContent-Type: application/octet-stream\nContent-Range: bytes 0-8388607/104857600\nDigest: sha=<base64-encoded SHA-1>\n\n<part data>\n```\n\n#### List Parts\n```bash\nGET /box/api/2.0/files/upload_sessions/{session_id}/parts\n```\n\n#### Commit Upload Session\n```bash\nPOST /box/api/2.0/files/upload_sessions/{session_id}/commit\nContent-Type: application/json\nDigest: sha=<base64-encoded SHA-1 of entire file>\n\n{\n  \"parts\": [\n    {\"part_id\": \"...\", \"offset\": 0, \"size\": 8388608}\n  ]\n}\n```\n\n#### Abort Upload Session\n```bash\nDELETE /box/api/2.0/files/upload_sessions/{session_id}\n```\n\n### Create Shared Link\n```bash\nPUT /box/2.0/folders/{folder_id}\nContent-Type: application/json\n\n{\n  \"shared_link\": {\"access\": \"open\"}\n}\n```\n\n### List Collaborations\n```bash\nGET /box/2.0/folders/{folder_id}/collaborations\n```\n\n### Create Collaboration\n```bash\nPOST /box/2.0/collaborations\nContent-Type: application/json\n\n{\n  \"item\": {\"type\": \"folder\", \"id\": \"123\"},\n  \"accessible_by\": {\"type\": \"user\", \"login\": \"user@example.com\"},\n  \"role\": \"editor\"\n}\n```\n\n### Search\n```bash\nGET /box/2.0/search?query=keyword\n```\n\n### Events\n```bash\nGET /box/2.0/events\n```\n\n### Trash\n```bash\nGET /box/2.0/folders/trash/items\nDELETE /box/2.0/files/{file_id}/trash\nDELETE /box/2.0/folders/{folder_id}/trash\n```\n\n### Collections\n```bash\nGET /box/2.0/collections\nGET /box/2.0/collections/{collection_id}/items\n```\n\n### Recent Items\n```bash\nGET /box/2.0/recent_items\n```\n\n### Webhooks\n```bash\nGET /box/2.0/webhooks\nPOST /box/2.0/webhooks\nDELETE /box/2.0/webhooks/{webhook_id}\n```\n\n## Pagination\n\nOffset-based pagination:\n```bash\nGET /box/2.0/folders/0/items?limit=100&offset=0\n```\n\nResponse:\n```json\n{\n  \"total_count\": 250,\n  \"entries\": [...],\n  \"offset\": 0,\n  \"limit\": 100\n}\n```\n\n## Notes\n\n- Root folder ID is `0`\n- Gateway automatically routes upload endpoints to `upload.box.com`\n- Direct upload supports files up to 50 MB\n- Use chunked upload sessions for files up to 50 GB\n- Chunked uploads require SHA-1 digest headers\n- Delete operations return 204 No Content\n- Some operations require enterprise admin permissions\n- Use `fields` parameter to select specific fields\n\n## Upload Endpoints (routed to upload.box.com)\n\nThe following endpoints are automatically routed to `upload.box.com`:\n- `/api/2.0/files/content` - Direct file upload\n- `/api/2.0/files/{file_id}/content` - Upload new file version\n- `/api/2.0/files/upload_sessions` - Create upload session\n- `/api/2.0/files/upload_sessions/*` - All upload session operations\n- `/api/2.0/files/{file_id}/upload_sessions` - Create version upload session\n\n## Resources\n\n- [Box API Reference](https://developer.box.com/reference)\n- [Box Developer Documentation](https://developer.box.com/guides)\n\nArchive v1.0.117: 224 files, 279471 bytes\n\nFiles: references/active-campaign/README.md (3233b), references/acuity-scheduling/README.md (3102b), references/airtable/README.md (3054b), references/apify/README.md (3683b), references/apollo/README.md (4131b), references/asana/README.md (4830b), references/attio/README.md (4912b), references/basecamp/README.md (2843b), references/baserow/README.md (3762b), references/beehiiv/README.md (2633b), references/box/README.md (5162b), references/brave-search/README.md (2900b), references/brevo/README.md (3825b), references/buffer/README.md (4436b), references/cal-com/README.md (3463b), references/calendly/README.md (2685b), references/callrail/README.md (3152b), references/chargebee/README.md (5609b), references/clickfunnels/README.md (5461b), references/clicksend/README.md (2397b), references/clickup/README.md (2978b), references/clio/README.md (6245b), references/clockify/README.md (3805b), references/coda/README.md (3646b), references/cognito-forms/README.md (2477b), references/companycam/README.md (3693b), references/confluence/README.md (4703b), references/constant-contact/README.md (9504b), references/dropbox-business/README.md (11936b), references/dropbox/README.md (6284b), references/elevenlabs/README.md (1816b), references/eventbrite/README.md (4273b), references/exa/README.md (4098b), references/facebook-page/README.md (3811b), references/fal-ai/README.md (2700b), references/fathom/README.md (1956b), references/firebase/README.md (3125b), references/firecrawl/README.md (3550b), references/fireflies/README.md (1892b), references/front/README.md (4029b), references/getresponse/README.md (2851b), references/github/README.md (9195b), references/google-ads/README.md (5558b), references/google-analytics-admin/README.md (5851b), references/google-analytics-data/README.md (4250b), references/google-apps-script/README.md (3297b), references/google-bigquery/README.md (3994b), references/google-calendar/README.md (5266b), references/google-classroom/README.md (2689b), references/google-contacts/README.md (3340b), references/google-docs/README.md (3451b), references/google-drive/README.md (7840b), references/google-forms/README.md (4249b), references/google-mail/README.md (5673b), references/google-meet/README.md (2800b), references/google-merchant/README.md (5110b), references/google-play/README.md (3842b), references/google-search-console/README.md (3917b), references/google-sheets/README.md (7332b), references/google-slides/README.md (4609b), references/google-tag-manager/README.md (3450b), references/google-tasks/README.md (4728b), references/google-workspace-admin/README.md (4708b), references/grafana/README.md (2821b), references/granola-mcp/README.md (5820b), references/granola-mcp/schemas/get_meeting_transcript.json (819b), references/granola-mcp/schemas/get_meetings.json (893b), references/granola-mcp/schemas/list_meetings.json (1585b), references/granola-mcp/schemas/query_granola_meetings.json (1689b), references/gumroad/README.md (3378b), references/highlevel-pit/README.md (7218b), references/hubspot/README.md (12748b), references/instantly/README.md (3024b), references/jira/README.md (6120b), references/jobber/README.md (3694b), references/jotform/README.md (3717b), references/kaggle/README.md (2571b), references/keap/README.md (3134b), references/kibana/README.md (2731b), references/kit/README.md (3415b)\n\nFile v1.0.117:SKILL.md\n\n---\nname: api-gateway\ndescription: |\n  Connect to external services through Maton-managed API routes.\n  Use this skill only after the user names the target app, account, and task.\n  Start with read/list calls when possible and follow the app-specific reference before any change.\ncompatibility: Requires network access and Maton account setup\nmetadata:\n  author: maton\n  version: \"1.0\"\n  clawdbot:\n    emoji: 🧠\n    homepage: \"https://maton.ai\"\n---\n\n# API Gateway\n\nManaged API routing for third-party services, provided by [Maton](https://maton.ai). Use this only for a user-requested app, account, and task.\n\n## Quick Start\n\n**CLI:**\n\n```bash\nmaton slack channel list --types public_channel --limit 10\n```\n\n```bash\nmaton api '/slack/api/conversations.list?types=public_channel&limit=10'\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n## Routing\n\nUse `https://api.maton.ai/` with the app-prefixed routes documented in the examples below or in the matching reference file.\n\n**Usage protocol:**\n1. Only invoke after the user specifies the exact app, account, and task.\n2. Always start with read-only (GET) calls to verify the target account, resource identifiers, and current state.\n3. **All non-GET requests are denied unless the user explicitly approves each one.** Before any POST, PUT, PATCH, or DELETE call, present the user with: the exact connection ID, the full endpoint path, the request body, and the expected outcome — then wait for approval.\n4. If the user's request implies a non-GET operation, first show them what you intend to call and ask for confirmation. Do not infer approval from the original request.\n\nRead-only route examples:\n\n```text\nhttps://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10\nhttps://api.maton.ai/google-mail/gmail/v1/users/me/messages\n```\n\nThe first path segment is the app identifier listed in Supported Services. For Gmail, use `/google-mail/gmail/v1/users/me/messages`.\n\n## Installation\n\n**NPM:**\n```bash\nnpm install -g @maton-ai/cli\n```\n\n**Homebrew:**\n```bash\nbrew install maton-ai/cli/maton\n```\n\n## Authentication\n\n**IMPORTANT — Credential Safety:**\n- Treat `MATON_API_KEY` as a secret. Never log it, echo it, paste it into prompts, or expose it in shared files, command output, or tool results.\n- **Connection creation requires explicit user approval.** Before creating any connection, ask the user to confirm the specific service and confirm they intend to authorize access. Never create connections on the agent's own initiative.\n- **Least-privilege scopes:** When a service offers scope selection during OAuth, select only the scopes the current task requires. Do not accept broader scopes for convenience.\n- Remove connections immediately after the task is complete if they are no longer needed (`maton connection delete {id}`).\n- If the key may have been exposed (logs, screenshots, shared terminals), rotate it immediately at [maton.ai/settings](https://maton.ai/settings).\n- Never share the key across users, workflows, or environments that do not require it.\n\n**CLI:**\n\n```bash\nmaton login                          # Opens browser for API key\nmaton login --interactive            # Skip browser, paste API key directly\nmaton whoami                         # Show current auth state\n```\n\n**Manual:**\n\n1. Sign in or create an account at [maton.ai](https://maton.ai)\n2. Go to [maton.ai/settings](https://maton.ai/settings)\n3. Click the copy button on the right side of API Key section to copy it\n4. Set your API key as `MATON_API_KEY`:\n\n```bash\nexport MATON_API_KEY=\"YOUR_API_KEY\"\n```\n\n## Connection Management\n\nConnection management uses a separate base URL: `https://api.maton.ai`\n\n### List Connections\n\n**CLI:**\n\n```bash\nmaton connection list slack --status ACTIVE\n```\n\n```bash\nmaton api -X GET /connections -f app=slack -f status=ACTIVE\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections?app=slack&status=ACTIVE')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n**Query Parameters (optional):**\n- `app` - Filter by service name (e.g., `slack`, `hubspot`, `salesforce`)\n- `status` - Filter by connection status (`ACTIVE`, `PENDING`, `FAILED`)\n\n**Response:**\n```json\n{\n  \"connections\": [\n    {\n      \"connection_id\": \"{connection_id}\",\n      \"status\": \"ACTIVE\",\n      \"creation_time\": \"2025-12-08T07:20:53.488460Z\",\n      \"last_updated_time\": \"2026-01-31T20:03:32.593153Z\",\n      \"url\": \"https://connect.maton.ai/?session_token=5e9...\",\n      \"app\": \"slack\",\n      \"method\": \"OAUTH2\",\n      \"metadata\": {}\n    }\n  ]\n}\n```\n\n### Create Connection\n\n**CLI:**\n\n```bash\nmaton connection create slack\n```\n\n```bash\nmaton api /connections -f app=slack\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\ndata = json.dumps({'app': 'slack'}).encode()\nreq = urllib.request.Request('https://api.maton.ai/connections', data=data, method='POST')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nreq.add_header('Content-Type', 'application/json')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n**Request Body:**\n- `app` (required) - Service name (e.g., `slack`, `notion`)\n- `method` (optional) - Connection method (`API_KEY`, `BASIC`, `OAUTH1`, `OAUTH2`, `MCP`)\n\n### Get Connection\n\n**CLI:**\n\n```bash\nmaton connection view {connection_id}\n```\n\n```bash\nmaton api /connections/{connection_id}\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections/{connection_id}')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n**Response:**\n```json\n{\n  \"connection\": {\n    \"connection_id\": \"{connection_id}\",\n    \"status\": \"ACTIVE\",\n    \"creation_time\": \"2025-12-08T07:20:53.488460Z\",\n    \"last_updated_time\": \"2026-01-31T20:03:32.593153Z\",\n    \"url\": \"https://connect.maton.ai/?session_token=5e9...\",\n    \"app\": \"slack\",\n    \"metadata\": {}\n  }\n}\n```\n\nOpen the returned URL in a browser to complete service authorization.\n\n### Delete Connection\n\n**CLI:**\n\n```bash\nmaton connection delete {connection_id}\n```\n\n```bash\nmaton api -X DELETE /connections/{connection_id}\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/connections/{connection_id}', method='DELETE')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n### Specifying Connection\n\nIf you have multiple connections for the same app, specify which connection to use:\n\n**CLI:**\n\n```bash\nmaton slack channel list --types public_channel --limit 10 --connection {connection_id}\n```\n\n```bash\nmaton api '/slack/api/conversations.list?types=public_channel&limit=10' --connection {connection_id}\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nreq.add_header('Maton-Connection', '{connection_id}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\nIf you have multiple connections, always specify the connection to ensure requests go to the intended account.\n\n## Security & Permissions\n\n- Access is scoped to the specific third-party service connected through each Maton connection and the scopes the user authorized.\n- **Use least privilege.** Connect only the services needed for the current task. Prefer read-only scopes and revoke unused connections promptly.\n- **Default to read/list calls.** Retrieve or list resources first to verify identifiers, account context, and current state before proposing any change.\n- **All operations that modify data require explicit user approval.** Before executing any POST, PUT, PATCH, or DELETE call, confirm the target service, resource, payload, and intended effect with the user. This includes sending messages, creating records, modifying content, deleting resources, and triggering workflows.\n- **High-impact operations require extra caution.** Actions such as bulk deletions, publishing content, sending emails/messages to external recipients, modifying billing or financial data, or changing permissions must be clearly described with specific resource identifiers and confirmed before execution.\n- **Always specify the connection.** Use the `--connection` flag (CLI) or `Maton-Connection` header to ensure requests go to the intended account, especially when the user has multiple connections for the same service.\n\n## Supported Services\n\n| Service | App Name | Service API Host |\n|---------|----------|------------------|\n| ActiveCampaign | `active-campaign` | `{account}.api-us1.com` |\n| Acuity Scheduling | `acuity-scheduling` | `acuityscheduling.com` |\n| Airtable | `airtable` | `api.airtable.com` |\n| Apify | `apify` | `api.apify.com` |\n| Apollo | `apollo` | `api.apollo.io` |\n| Asana | `asana` | `app.asana.com` |\n| Attio | `attio` | `api.attio.com` |\n| Basecamp | `basecamp` | `3.basecampapi.com` |\n| Baserow | `baserow` | `api.baserow.io` |\n| beehiiv | `beehiiv` | `api.beehiiv.com` |\n| Box | `box` | `api.box.com` |\n| Brevo | `brevo` | `api.brevo.com` |\n| Brave Search | `brave-search` | `api.search.brave.com` |\n| Buffer | `buffer` | `api.buffer.com` |\n| Calendly | `calendly` | `api.calendly.com` |\n| Cal.com | `cal-com` | `api.cal.com` |\n| CallRail | `callrail` | `api.callrail.com` |\n| Chargebee | `chargebee` | `{subdomain}.chargebee.com` |\n| ClickFunnels | `clickfunnels` | `{subdomain}.myclickfunnels.com` |\n| ClickSend | `clicksend` | `rest.clicksend.com` |\n| ClickUp | `clickup` | `api.clickup.com` |\n| Clio | `clio` | `app.clio.com` |\n| Clockify | `clockify` | `api.clockify.me` |\n| Coda | `coda` | `coda.io` |\n| Confluence | `confluence` | `api.atlassian.com` |\n| CompanyCam | `companycam` | `api.companycam.com` |\n| Cognito Forms | `cognito-forms` | `www.cognitoforms.com` |\n| Constant Contact | `constant-contact` | `api.cc.email` |\n| Dropbox | `dropbox` | `api.dropboxapi.com` |\n| Dropbox Business | `dropbox-business` | `api.dropboxapi.com` |\n| ElevenLabs | `elevenlabs` | `api.elevenlabs.io` |\n| Eventbrite | `eventbrite` | `www.eventbriteapi.com` |\n| Exa | `exa` | `api.exa.ai` |\n| Facebook Page | `facebook-page` | `graph.facebook.com` |\n| fal.ai | `fal-ai` | `queue.fal.run` |\n| Fathom | `fathom` | `api.fathom.ai` |\n| Firecrawl | `firecrawl` | `api.firecrawl.dev` |\n| Firebase | `firebase` | `firebase.googleapis.com` |\n| Fireflies | `fireflies` | `api.fireflies.ai` |\n| Front | `front` | `api2.frontapp.com` |\n| GetResponse | `getresponse` | `api.getresponse.com` |\n| Grafana | `grafana` | User's Grafana instance |\n| GitHub | `github` | `api.github.com` |\n| Gumroad | `gumroad` | `api.gumroad.com` |\n| Granola MCP | `granola` | `mcp.granola.ai` |\n| Google Ads | `google-ads` | `googleads.googleapis.com` |\n| Google BigQuery | `google-bigquery` | `bigquery.googleapis.com` |\n| Google Analytics Admin | `google-analytics-admin` | `analyticsadmin.googleapis.com` |\n| Google Analytics Data | `google-analytics-data` | `analyticsdata.googleapis.com` |\n| Google Apps Script | `google-apps-script` | `script.googleapis.com` |\n| Google Calendar | `google-calendar` | `www.googleapis.com` |\n| Google Classroom | `google-classroom` | `classroom.googleapis.com` |\n| Google Contacts | `google-contacts` | `people.googleapis.com` |\n| Google Docs | `google-docs` | `docs.googleapis.com` |\n| Google Drive | `google-drive` | `www.googleapis.com` |\n| Google Forms | `google-forms` | `forms.googleapis.com` |\n| Gmail | `google-mail` | `gmail.googleapis.com` |\n| Google Merchant | `google-merchant` | `merchantapi.googleapis.com` |\n| Google Meet | `google-meet` | `meet.googleapis.com` |\n| Google Play | `google-play` | `androidpublisher.googleapis.com` |\n| Google Search Console | `google-search-console` | `www.googleapis.com` |\n| Google Sheets | `google-sheets` | `sheets.googleapis.com` |\n| Google Slides | `google-slides` | `slides.googleapis.com` |\n| Google Tag Manager | `google-tag-manager` | `tagmanager.googleapis.com` |\n| Google Tasks | `google-tasks` | `tasks.googleapis.com` |\n| Google Workspace Admin | `google-workspace-admin` | `admin.googleapis.com` |\n| GoHighLevel (PIT) | `highlevel-pit` | `services.leadconnectorhq.com` |\n| HubSpot | `hubspot` | `api.hubapi.com` |\n| Instantly | `instantly` | `api.instantly.ai` |\n| Jira | `jira` | `api.atlassian.com` |\n| Jobber | `jobber` | `api.getjobber.com` |\n| JotForm | `jotform` | `api.jotform.com` |\n| Kaggle | `kaggle` | `api.kaggle.com` |\n| Keap | `keap` | `api.infusionsoft.com` |\n| Kibana | `kibana` | User's Kibana instance |\n| Kit | `kit` | `api.kit.com` |\n| Klaviyo | `klaviyo` | `a.klaviyo.com` |\n| Lemlist | `lemlist` | `api.lemlist.com` |\n| Linear | `linear` | `api.linear.app` |\n| LinkedIn | `linkedin` | `api.linkedin.com` |\n| LinkedIn Community Management | `linkedin-community-management` | `api.linkedin.com` |\n| Mailchimp | `mailchimp` | `{dc}.api.mailchimp.com` |\n| MailerLite | `mailerlite` | `connect.mailerlite.com` |\n| Mailgun | `mailgun` | `api.mailgun.net` |\n| Make | `make` | `{zone}.make.com` |\n| ManyChat | `manychat` | `api.manychat.com` |\n| Manus | `manus` | `api.manus.ai` |\n| Memelord | `memelord` | `www.memelord.com` |\n| Meta Ads | `meta-ads` | `graph.facebook.com` |\n| Microsoft Excel | `microsoft-excel` | `graph.microsoft.com` |\n| Microsoft Teams | `microsoft-teams` | `graph.microsoft.com` |\n| Microsoft To Do | `microsoft-to-do` | `graph.microsoft.com` |\n| Monday.com | `monday` | `api.monday.com` |\n| Motion | `motion` | `api.usemotion.com` |\n| Netlify | `netlify` | `api.netlify.com` |\n| Notion | `notion` | `api.notion.com` |\n| Notion MCP | `notion` | `mcp.notion.com` |\n| OneNote | `one-note` | `graph.microsoft.com` |\n| OneDrive | `one-drive` | `graph.microsoft.com` |\n| Outlook | `outlook` | `graph.microsoft.com` |\n| PDF.co | `pdf-co` | `api.pdf.co` |\n| Pipedrive | `pipedrive` | `api.pipedrive.com` |\n| Podio | `podio` | `api.podio.com` |\n| PostHog | `posthog` | `{subdomain}.posthog.com` |\n| QuickBooks | `quickbooks` | `quickbooks.api.intuit.com` |\n| Quo | `quo` | `api.openphone.com` |\n| Reducto | `reducto` | `platform.reducto.ai` |\n| Resend | `resend` | `api.resend.com` |\n| Salesforce | `salesforce` | `{instance}.salesforce.com` |\n| Sentry | `sentry` | `{subdomain}.sentry.io` |\n| SharePoint | `sharepoint` | `graph.microsoft.com` |\n| SignNow | `signnow` | `api.signnow.com` |\n| Slack | `slack` | `slack.com` |\n| Snapchat | `snapchat` | `adsapi.snapchat.com` |\n| Square | `squareup` | `connect.squareup.com` |\n| Squarespace | `squarespace` | `api.squarespace.com` |\n| Stripe | `stripe` | `api.stripe.com` |\n| Sunsama MCP | `sunsama` | MCP server |\n| Supabase | `supabase` | `{project_ref}.supabase.co` |\n| Systeme.io | `systeme` | `api.systeme.io` |\n| Tally | `tally` | `api.tally.so` |\n| Tavily | `tavily` | `api.tavily.com` |\n| Telegram | `telegram` | `api.telegram.org` |\n| TickTick | `ticktick` | `api.ticktick.com` |\n| Todoist | `todoist` | `api.todoist.com` |\n| Toggl Track | `toggl-track` | `api.track.toggl.com` |\n| Trello | `trello` | `api.trello.com` |\n| Twilio | `twilio` | `api.twilio.com` |\n| Twenty CRM | `twenty` | `api.twenty.com` |\n| Typeform | `typeform` | `api.typeform.com` |\n| Unbounce | `unbounce` | `api.unbounce.com` |\n| Vercel | `vercel` | `api.vercel.com` |\n| Vimeo | `vimeo` | `api.vimeo.com` |\n| WATI | `wati` | `{tenant}.wati.io` |\n| WhatsApp Business | `whatsapp-business` | `graph.facebook.com` |\n| WooCommerce | `woocommerce` | `{store-url}/wp-json/wc/v3` |\n| WordPress.com | `wordpress` | `public-api.wordpress.com` |\n| Wrike | `wrike` | `www.wrike.com` |\n| Xero | `xero` | `api.xero.com` |\n| YouTube | `youtube` | `www.googleapis.com` |\n| YouTube Analytics | `youtube-analytics` | `youtubeanalytics.googleapis.com` |\n| YouTube Reporting | `youtube-reporting` | `youtubereporting.googleapis.com` |\n| Zoom | `zoom` | `api.zoom.us` |\n| Zoom Admin | `zoom-admin` | `api.zoom.us` |\n| Zoho Bigin | `zoho-bigin` | `www.zohoapis.com` |\n| Zoho Bookings | `zoho-bookings` | `www.zohoapis.com` |\n| Zoho Books | `zoho-books` | `www.zohoapis.com` |\n| Zoho Calendar | `zoho-calendar` | `calendar.zoho.com` |\n| Zoho CRM | `zoho-crm` | `www.zohoapis.com` |\n| Zoho Inventory | `zoho-inventory` | `www.zohoapis.com` |\n| Zoho Mail | `zoho-mail` | `mail.zoho.com` |\n| Zoho People | `zoho-people` | `people.zoho.com` |\n| Zoho Projects | `zoho-projects` | `projectsapi.zoho.com` |\n| Zoho Recruit | `zoho-recruit` | `recruit.zoho.com` |\n\nSee [references/](https://github.com/maton-ai/api-gateway-skill/tree/main/references/) for detailed routing guides per provider:\n- [ActiveCampaign](https://github.com/maton-ai/api-gateway-skill/tree/main/references/active-campaign/README.md) - Contacts, deals, tags, lists, automations, campaigns\n- [Acuity Scheduling](https://github.com/maton-ai/api-gateway-skill/tree/main/references/acuity-scheduling/README.md) - Appointments, calendars, clients, availability\n- [Airtable](https://github.com/maton-ai/api-gateway-skill/tree/main/references/airtable/README.md) - Records, bases, tables\n- [Apify](https://github.com/maton-ai/api-gateway-skill/tree/main/references/apify/README.md) - Actors, runs, datasets, key-value stores, request queues, schedules\n- [Apollo](https://github.com/maton-ai/api-gateway-skill/tree/main/references/apollo/README.md) - People search, enrichment, contacts\n- [Asana](https://github.com/maton-ai/api-gateway-skill/tree/main/references/asana/README.md) - Tasks, projects, workspaces, webhooks\n- [Attio](https://github.com/maton-ai/api-gateway-skill/tree/main/references/attio/README.md) - People, companies, records, tasks\n- [Basecamp](https://github.com/maton-ai/api-gateway-skill/tree/main/references/basecamp/README.md) - Projects, to-dos, messages, schedules, documents\n- [Baserow](https://github.com/maton-ai/api-gateway-skill/tree/main/references/baserow/README.md) - Database rows, fields, tables, batch operations\n- [beehiiv](https://github.com/maton-ai/api-gateway-skill/tree/main/references/beehiiv/README.md) - Publications, subscriptions, posts, custom fields\n- [Box](https://github.com/maton-ai/api-gateway-skill/tree/main/references/box/README.md) - Files, folders, collaborations, shared links\n- [Brevo](https://github.com/maton-ai/api-gateway-skill/tree/main/references/brevo/README.md) - Contacts, email campaigns, transactional emails, templates\n- [Brave Search](https://github.com/maton-ai/api-gateway-skill/tree/main/references/brave-search/README.md) - Web search, image search, news search, video search\n- [Buffer](https://github.com/maton-ai/api-gateway-skill/tree/main/references/buffer/README.md) - Social media posts, channels, organizations, scheduling\n- [Calendly](https://github.com/maton-ai/api-gateway-skill/tree/main/references/calendly/README.md) - Event types, scheduled events, availability, webhooks\n- [Cal.com](https://github.com/maton-ai/api-gateway-skill/tree/main/references/cal-com/README.md) - Event types, bookings, schedules, availability slots, webhooks\n- [CallRail](https://github.com/maton-ai/api-gateway-skill/tree/main/references/callrail/README.md) - Calls, trackers, companies, tags, analytics\n- [Chargebee](https://github.com/maton-ai/api-gateway-skill/tree/main/references/chargebee/README.md) - Subscriptions, customers, invoices\n- [ClickFunnels](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clickfunnels/README.md) - Contacts, products, orders, courses, webhooks\n- [ClickSend](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clicksend/README.md) - SMS, MMS, voice messages, contacts, lists\n- [ClickUp](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clickup/README.md) - Tasks, lists, folders, spaces, webhooks\n- [Clio](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clio/README.md) - Matters, contacts, activities, tasks, calendar entries, documents\n- [Clockify](https://github.com/maton-ai/api-gateway-skill/tree/main/references/clockify/README.md) - Time tracking, projects, clients, tasks, workspaces\n- [Coda](https://github.com/maton-ai/api-gateway-skill/tree/main/references/coda/README.md) - Docs, pages, tables, rows, formulas, controls\n- [Confluence](https://github.com/maton-ai/api-gateway-skill/tree/main/references/confluence/README.md) - Pages, spaces, blogposts, comments, attachments\n- [CompanyCam](https://github.com/maton-ai/api-gateway-skill/tree/main/references/companycam/README.md) - Projects, photos, users, tags, groups, documents\n- [Cognito Forms](https://github.com/maton-ai/api-gateway-skill/tree/main/references/cognito-forms/README.md) - Forms, entries, documents, files\n- [Constant Contact](https://github.com/maton-ai/api-gateway-skill/tree/main/references/constant-contact/README.md) - Contacts, email campaigns, lists, tags, custom fields, segments, bulk activities, reporting\n- [Dropbox](https://github.com/maton-ai/api-gateway-skill/tree/main/references/dropbox/README.md) - Files, folders, search, metadata, revisions, tags\n- [Dropbox Business](https://github.com/maton-ai/api-gateway-skill/tree/main/references/dropbox-business/README.md) - Team members, groups, team folders, devices, audit logs\n- [ElevenLabs](https://github.com/maton-ai/api-gateway-skill/tree/main/references/elevenlabs/README.md) - Text-to-speech, voice cloning, sound effects, audio processing\n- [Eventbrite](https://github.com/maton-ai/api-gateway-skill/tree/main/references/eventbrite/README.md) - Events, venues, tickets, orders, attendees\n- [Exa](https://github.com/maton-ai/api-gateway-skill/tree/main/references/exa/README.md) - Neural web search, content extraction, similar pages, AI answers, research tasks\n- [fal.ai](https://github.com/maton-ai/api-gateway-skill/tree/main/references/fal-ai/README.md) - AI model inference (image generation, video, audio, upscaling)\n- [Facebook Page](https://github.com/maton-ai/api-gateway-skill/tree/main/references/facebook-page/README.md) - Pages, posts, comments, insights, photos, videos, product catalogs\n- [Fathom](https://github.com/maton-ai/api-gateway-skill/tree/main/references/fathom/README.md) - Meeting recordings, transcripts, summaries, webhooks\n- [Firecrawl](https://github.com/maton-ai/api-gateway-skill/tree/main/references/firecrawl/README.md) - Web scraping, crawling, site mapping, web search\n- [Firebase](https://github.com/maton-ai/api-gateway-skill/tree/main/references/firebase/README.md) - Projects, web apps, Android apps, iOS apps, configurations\n- [Fireflies](https://github.com/maton-ai/api-gateway-skill/tree/main/references/fireflies/README.md) - Meeting transcripts, summaries, AskFred AI, channels\n- [Front](https://github.com/maton-ai/api-gateway-skill/tree/main/references/front/README.md) - Conversations, messages, contacts, tags, inboxes, teammates\n- [GetResponse](https://github.com/maton-ai/api-gateway-skill/tree/main/references/getresponse/README.md) - Campaigns, contacts, newsletters, autoresponders, tags, segments\n- [Grafana](https://github.com/maton-ai/api-gateway-skill/tree/main/references/grafana/README.md) - Dashboards, data sources, folders, annotations, alerts, teams\n- [GitHub](https://github.com/maton-ai/api-gateway-skill/tree/main/references/github/README.md) - Repositories, issues, pull requests, commits\n- [Gumroad](https://github.com/maton-ai/api-gateway-skill/tree/main/references/gumroad/README.md) - Products, sales, subscribers, licenses, webhooks\n- [Granola MCP](https://github.com/maton-ai/api-gateway-skill/tree/main/references/granola-mcp/README.md) - MCP-based interface for meeting notes, transcripts, queries\n- [Google Ads](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-ads/README.md) - Campaigns, ad groups, GAQL queries\n- [Google Analytics Admin](https://github.com/maton-ai/api-gateway-skill/tree/main/references/google-analytics-admin/README.md) - Reports, dimensions, metrics\n- [Google Analytics Data](ht...","readmeExcerpt":"Skill: API Gateway Owner: byungkyu Summary: Connect to external services through Maton-managed API routes. Use this skill only after the user names the target app, account, and task. Start with read/li... Tags: latest:1.0.118 Version history: v1.0.118 | 2026-05-19T05:58:15.504Z | user - Removed the references/meta-ads/README.md file from the project. - No user-facing changes to core skill behavior or documentation. -","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"maton slack channel list --types public_channel --limit 10"},{"language":"bash","snippet":"maton api '/slack/api/conversations.list?types=public_channel&limit=10'"},{"language":"bash","snippet":"python <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF"},{"language":"text","snippet":"https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10\nhttps://api.maton.ai/google-mail/gmail/v1/users/me/messages"},{"language":"bash","snippet":"npm install -g @maton-ai/cli"},{"language":"bash","snippet":"brew install maton-ai/cli/maton"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: api-gateway\ndescription: |\n  Connect to external services through Maton-managed API routes.\n  Use this skill only after the user names the target app, account, and task.\n  Start with read/list calls when possible and follow the app-specific reference before any change.\ncompatibility: Requires network access and Maton account setup\nmetadata:\n  author: maton\n  version: \"1.0\"\n  clawdbot:\n    emoji: 🧠\n    homepage: \"https://maton.ai\"\n---\n\n# API Gateway\n\nManaged API routing for third-party services, provided by [Maton](https://maton.ai). Use this only for a user-requested app, account, and task.\n\n## Quick Start\n\n**CLI:**\n\n```bash\nmaton slack channel list --types public_channel --limit 10\n```\n\n```bash\nmaton api '/slack/api/conversations.list?types=public_channel&limit=10'\n```\n\n**Python:**\n\n```bash\npython <<'EOF'\nimport urllib.request, os, json\nreq = urllib.request.Request('https://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10')\nreq.add_header('Authorization', f'Bearer {os.environ[\"MATON_API_KEY\"]}')\nprint(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))\nEOF\n```\n\n## Routing\n\nUse `https://api.maton.ai/` with the app-prefixed routes documented in the examples below or in the matching reference file.\n\n**Usage protocol:**\n1. Only invoke after the user specifies the exact app, account, and task.\n2. Always start with read-only (GET) calls to verify the target account, resource identifiers, and current state.\n3. **All non-GET requests are denied unless the user explicitly approves each one.** Before any POST, PUT, PATCH, or DELETE call, present the user with: the exact connection ID, the full endpoint path, the request body, and the expected outcome — then wait for approval.\n4. If the user's request implies a non-GET operation, first show them what you intend to call and ask for confirmation. Do not infer approval from the original request.\n\nRead-only route examples:\n\n```text\nhttps://api.maton.ai/slack/api/conversations.list?types=public_channel&limit=10\nhttps://api.maton.ai/google-mail/gmail/v1/users/me/messages\n```\n\nThe first path segment is the app identifier listed in Supported Services. For Gmail, use `/google-mail/gmail/v1/users/me/messages`.\n\n## Installation\n\n**NPM:**\n```bash\nnpm install -g @maton-ai/cli\n```\n\n**Homebrew:**\n```bash\nbrew install maton-ai/cli/maton\n```\n\n## Authentication\n\n**IMPORTANT — Credential Safety:**\n- Treat `MATON_API_KEY` as a secret. Never log it, echo it, paste it into prompts, or expose it in shared files, command output, or tool results.\n- **Connection creation requires explicit user approval.** Before creating any connection, ask the user to confirm the specific service and confirm they intend to authorize access. Never create connections on the agent's own initiative.\n- **Least-privilege scopes:** When a service offers scope selection during OAuth, select only the scopes the current task requires. Do not accept broader scopes for convenience.\n- Remove connections immediately a"},{"path":"references/active-campaign/README.md","content":"# ActiveCampaign Routing Reference\n\n**App name:** `active-campaign`\n**Base URL proxied:** `{account}.api-us1.com`\n\n## API Path Pattern\n\n```\n/active-campaign/api/3/{resource}\n```\n\n## Common Endpoints\n\n### Contacts\n\n#### List Contacts\n```bash\nGET /active-campaign/api/3/contacts\n```\n\n#### Get Contact\n```bash\nGET /active-campaign/api/3/contacts/{contactId}\n```\n\n#### Create Contact\n```bash\nPOST /active-campaign/api/3/contacts\nContent-Type: application/json\n\n{\n  \"contact\": {\n    \"email\": \"user@example.com\",\n    \"firstName\": \"John\",\n    \"lastName\": \"Doe\"\n  }\n}\n```\n\n#### Update Contact\n```bash\nPUT /active-campaign/api/3/contacts/{contactId}\n```\n\n#### Delete Contact\n```bash\nDELETE /active-campaign/api/3/contacts/{contactId}\n```\n\n### Tags\n\n#### List Tags\n```bash\nGET /active-campaign/api/3/tags\n```\n\n#### Create Tag\n```bash\nPOST /active-campaign/api/3/tags\nContent-Type: application/json\n\n{\n  \"tag\": {\n    \"tag\": \"Tag Name\",\n    \"tagType\": \"contact\"\n  }\n}\n```\n\n### Contact Tags\n\n#### Add Tag to Contact\n```bash\nPOST /active-campaign/api/3/contactTags\nContent-Type: application/json\n\n{\n  \"contactTag\": {\n    \"contact\": \"1\",\n    \"tag\": \"1\"\n  }\n}\n```\n\n#### Remove Tag from Contact\n```bash\nDELETE /active-campaign/api/3/contactTags/{contactTagId}\n```\n\n### Lists\n\n#### List All Lists\n```bash\nGET /active-campaign/api/3/lists\n```\n\n#### Create List\n```bash\nPOST /active-campaign/api/3/lists\n```\n\n### Deals\n\n#### List Deals\n```bash\nGET /active-campaign/api/3/deals\n```\n\n#### Create Deal\n```bash\nPOST /active-campaign/api/3/deals\nContent-Type: application/json\n\n{\n  \"deal\": {\n    \"title\": \"New Deal\",\n    \"value\": \"10000\",\n    \"currency\": \"usd\",\n    \"contact\": \"1\",\n    \"stage\": \"1\"\n  }\n}\n```\n\n### Deal Stages & Pipelines\n\n#### List Deal Stages\n```bash\nGET /active-campaign/api/3/dealStages\n```\n\n#### List Pipelines (Deal Groups)\n```bash\nGET /active-campaign/api/3/dealGroups\n```\n\n### Automations\n\n#### List Automations\n```bash\nGET /active-campaign/api/3/automations\n```\n\n### Campaigns\n\n#### List Campaigns\n```bash\nGET /active-campaign/api/3/campaigns\n```\n\n### Users\n\n#### List Users\n```bash\nGET /active-campaign/api/3/users\n```\n\n### Accounts\n\n#### List Accounts\n```bash\nGET /active-campaign/api/3/accounts\n```\n\n### Custom Fields\n\n#### List Fields\n```bash\nGET /active-campaign/api/3/fields\n```\n\n### Notes\n\n#### List Notes\n```bash\nGET /active-campaign/api/3/notes\n```\n\n### Webhooks\n\n#### List Webhooks\n```bash\nGET /active-campaign/api/3/webhooks\n```\n\n## Pagination\n\nUses offset-based pagination:\n\n```bash\nGET /active-campaign/api/3/contacts?limit=20&offset=0\n```\n\n**Parameters:**\n- `limit` - Results per page (default: 20)\n- `offset` - Starting index\n\nResponse includes meta with total:\n```json\n{\n  \"contacts\": [...],\n  \"meta\": {\n    \"total\": \"150\"\n  }\n}\n```\n\n## Notes\n\n- All endpoints require `/api/3/` prefix\n- Request bodies use singular resource names (e.g., `{\"contact\": {...}}`)\n- IDs returned as strings\n- Rate limit: 5 requests per second per account\n- DELETE returns 200 OK (not 204)\n\n## Resources\n\n- "},{"path":"references/acuity-scheduling/README.md","content":"# Acuity Scheduling Routing Reference\n\n**App name:** `acuity-scheduling`\n**Base URL proxied:** `acuityscheduling.com`\n\n## API Path Pattern\n\n```\n/acuity-scheduling/api/v1/{resource}\n```\n\nMaton automatically prepends `/api/v1` when proxying to Acuity.\n\n## Common Endpoints\n\n### Get Account Info\n```bash\nGET /acuity-scheduling/api/v1/me\n```\n\n### List Appointments\n```bash\nGET /acuity-scheduling/api/v1/appointments?max=100&minDate=2026-02-01\n```\n\n### Get Appointment\n```bash\nGET /acuity-scheduling/api/v1/appointments/{id}\n```\n\n### Create Appointment\n```bash\nPOST /acuity-scheduling/api/v1/appointments\nContent-Type: application/json\n\n{\n  \"datetime\": \"2026-02-15T09:00\",\n  \"appointmentTypeID\": 123,\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john@example.com\"\n}\n```\n\n### Update Appointment\n```bash\nPUT /acuity-scheduling/api/v1/appointments/{id}\nContent-Type: application/json\n\n{\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Smith\"\n}\n```\n\n### Cancel Appointment\n```bash\nPUT /acuity-scheduling/api/v1/appointments/{id}/cancel\n```\n\n### Reschedule Appointment\n```bash\nPUT /acuity-scheduling/api/v1/appointments/{id}/reschedule\nContent-Type: application/json\n\n{\n  \"datetime\": \"2026-02-20T10:00\"\n}\n```\n\n### List Calendars\n```bash\nGET /acuity-scheduling/api/v1/calendars\n```\n\n### List Appointment Types\n```bash\nGET /acuity-scheduling/api/v1/appointment-types\n```\n\n### Get Available Dates\n```bash\nGET /acuity-scheduling/api/v1/availability/dates?month=2026-02&appointmentTypeID=123\n```\n\n### Get Available Times\n```bash\nGET /acuity-scheduling/api/v1/availability/times?date=2026-02-04&appointmentTypeID=123\n```\n\n### List Clients\n```bash\nGET /acuity-scheduling/api/v1/clients?search=John\n```\n\n### Create Client\n```bash\nPOST /acuity-scheduling/api/v1/clients\nContent-Type: application/json\n\n{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"email\": \"john@example.com\"\n}\n```\n\n### List Blocks\n```bash\nGET /acuity-scheduling/api/v1/blocks?calendarID=1234\n```\n\n### Create Block\n```bash\nPOST /acuity-scheduling/api/v1/blocks\nContent-Type: application/json\n\n{\n  \"start\": \"2026-02-15T12:00\",\n  \"end\": \"2026-02-15T13:00\",\n  \"calendarID\": 1234\n}\n```\n\n### Delete Block\n```bash\nDELETE /acuity-scheduling/api/v1/blocks/{id}\n```\n\n### List Forms\n```bash\nGET /acuity-scheduling/api/v1/forms\n```\n\n### List Labels\n```bash\nGET /acuity-scheduling/api/v1/labels\n```\n\n## Notes\n\n- Datetime values must be parseable by PHP's `strtotime()` function\n- Timezones use IANA format (e.g., \"America/New_York\")\n- Use `max` parameter to limit results (default: 100)\n- Use `minDate` and `maxDate` for date-range filtering\n- Client update/delete only works for clients with existing appointments\n- Rescheduling requires the new datetime to be an available time slot\n\n## Resources\n\n- [Acuity Scheduling API Quick Start](https://developers.acuityscheduling.com/reference/quick-start)\n- [Appointments API](https://developers.acuityscheduling.com/reference/get-appointments)\n- [Availability API](https://developers.acuityscheduling.com/reference/"},{"path":"references/airtable/README.md","content":"# Airtable Routing Reference\n\n**App name:** `airtable`\n**Base URL proxied:** `api.airtable.com`\n\n## API Path Pattern\n\n```\n/airtable/v0/{baseId}/{tableIdOrName}\n```\n\n## Common Endpoints\n\n### List Records\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?maxRecords=100\n```\n\nWith view:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?view=Grid%20view&maxRecords=100\n```\n\nWith filter formula:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?filterByFormula={Status}='Active'\n```\n\nWith field selection:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?fields[]=Name&fields[]=Status&fields[]=Email\n```\n\nWith sorting:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?sort[0][field]=Created&sort[0][direction]=desc\n```\n\n### Get Record\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}/{recordId}\n```\n\n### Create Records\n```bash\nPOST /airtable/v0/{baseId}/{tableIdOrName}\nContent-Type: application/json\n\n{\n  \"records\": [\n    {\n      \"fields\": {\n        \"Name\": \"New Record\",\n        \"Status\": \"Active\",\n        \"Email\": \"test@example.com\"\n      }\n    }\n  ]\n}\n```\n\n### Update Records (PATCH - partial update)\n```bash\nPATCH /airtable/v0/{baseId}/{tableIdOrName}\nContent-Type: application/json\n\n{\n  \"records\": [\n    {\n      \"id\": \"recXXXXXXXXXXXXXX\",\n      \"fields\": {\n        \"Status\": \"Completed\"\n      }\n    }\n  ]\n}\n```\n\n### Update Records (PUT - full replace)\n```bash\nPUT /airtable/v0/{baseId}/{tableIdOrName}\nContent-Type: application/json\n\n{\n  \"records\": [\n    {\n      \"id\": \"recXXXXXXXXXXXXXX\",\n      \"fields\": {\n        \"Name\": \"Updated Name\",\n        \"Status\": \"Active\"\n      }\n    }\n  ]\n}\n```\n\n### Delete Records\n```bash\nDELETE /airtable/v0/{baseId}/{tableIdOrName}?records[]=recXXXXX&records[]=recYYYYY\n```\n\n### List Bases\n```bash\nGET /airtable/v0/meta/bases\n```\n\n### Get Base Schema\n```bash\nGET /airtable/v0/meta/bases/{baseId}/tables\n```\n\n## Pagination\n\n**Parameters:**\n- `pageSize` - Number of records per request (max 100, default 100)\n- `maxRecords` - Maximum total records across all pages\n- `offset` - Cursor for next page (returned in response)\n\nResponse includes `offset` when more records exist:\n```json\n{\n  \"records\": [...],\n  \"offset\": \"itrXXXXXXXXXXX\"\n}\n```\n\nUse offset for next page:\n```bash\nGET /airtable/v0/{baseId}/{tableIdOrName}?pageSize=50&offset=itrXXXXXXXXXXX\n```\n\n## Notes\n\n- Authentication is automatic via OAuth\n- Base IDs start with `app`\n- Table IDs start with `tbl` (can also use table name)\n- Record IDs start with `rec`\n- Maximum 100 records per request for create/update\n- Maximum 10 records per delete request\n- Filter formulas use Airtable formula syntax\n\n## Resources\n\n- [API Overview](https://airtable.com/developers/web/api/introduction)\n- [List Records](https://airtable.com/developers/web/api/list-records)\n- [Create Records](https://airtable.com/developers/web/api/create-records)\n- [Update Records](https://airtable.com/developers/web/api/update-record)\n- [Delete Records](https://airtable.com/developers/web/api/delete-record)\n- [Formula Reference](http"},{"path":"references/apify/README.md","content":"# Apify Routing Reference\n\n**App name:** `apify`\n**Base URL proxied:** `api.apify.com`\n\n## API Path Pattern\n\n```\n/apify/v2/{resource}\n```\n\n## Common Endpoints\n\n### Users\n\n#### Get Current User\n```bash\nGET /apify/v2/users/me\n```\n\n### Actors\n\n#### List Actors\n```bash\nGET /apify/v2/acts\nGET /apify/v2/acts?my=true\n```\n\n#### Get Actor\n```bash\nGET /apify/v2/acts/{actorId}\n```\n\n#### Run Actor\n```bash\nPOST /apify/v2/acts/{actorId}/runs\nContent-Type: application/json\n\n{\n  \"startUrls\": [{\"url\": \"https://example.com\"}],\n  \"maxItems\": 100\n}\n```\n\n### Actor Runs\n\n#### List Runs\n```bash\nGET /apify/v2/actor-runs\nGET /apify/v2/actor-runs?status=SUCCEEDED\n```\n\n#### Get Run\n```bash\nGET /apify/v2/actor-runs/{runId}\n```\n\n#### Abort Run\n```bash\nPOST /apify/v2/actor-runs/{runId}/abort\n```\n\n### Actor Tasks\n\n#### List Tasks\n```bash\nGET /apify/v2/actor-tasks\n```\n\n#### Get Task\n```bash\nGET /apify/v2/actor-tasks/{actorTaskId}\n```\n\n#### Run Task\n```bash\nPOST /apify/v2/actor-tasks/{actorTaskId}/runs\n```\n\n### Datasets\n\n#### List Datasets\n```bash\nGET /apify/v2/datasets\n```\n\n#### Get Dataset\n```bash\nGET /apify/v2/datasets/{datasetId}\n```\n\n#### Get Dataset Items\n```bash\nGET /apify/v2/datasets/{datasetId}/items\nGET /apify/v2/datasets/{datasetId}/items?format=json&clean=true\n```\n\n#### Put Items\n```bash\nPOST /apify/v2/datasets/{datasetId}/items\nContent-Type: application/json\n\n[{\"field1\": \"value1\"}, {\"field2\": \"value2\"}]\n```\n\n### Key-Value Stores\n\n#### List Stores\n```bash\nGET /apify/v2/key-value-stores\n```\n\n#### Get Store\n```bash\nGET /apify/v2/key-value-stores/{storeId}\n```\n\n#### Get Record\n```bash\nGET /apify/v2/key-value-stores/{storeId}/records/{key}\n```\n\n#### Set Record\n```bash\nPUT /apify/v2/key-value-stores/{storeId}/records/{key}\nContent-Type: application/json\n\n{\"data\": \"value\"}\n```\n\n### Request Queues\n\n#### List Queues\n```bash\nGET /apify/v2/request-queues\n```\n\n#### Get Queue\n```bash\nGET /apify/v2/request-queues/{queueId}\n```\n\n#### Add Request\n```bash\nPOST /apify/v2/request-queues/{queueId}/requests\nContent-Type: application/json\n\n{\n  \"url\": \"https://example.com\",\n  \"uniqueKey\": \"unique-key\"\n}\n```\n\n### Schedules\n\n#### List Schedules\n```bash\nGET /apify/v2/schedules\n```\n\n#### Get Schedule\n```bash\nGET /apify/v2/schedules/{scheduleId}\n```\n\n#### Create Schedule\n```bash\nPOST /apify/v2/schedules\nContent-Type: application/json\n\n{\n  \"name\": \"My Schedule\",\n  \"cronExpression\": \"0 0 * * *\",\n  \"actorId\": \"actor-id\"\n}\n```\n\n### Webhooks\n\n#### List Webhooks\n```bash\nGET /apify/v2/webhooks\n```\n\n#### Get Webhook\n```bash\nGET /apify/v2/webhooks/{webhookId}\n```\n\n#### Create Webhook\n```bash\nPOST /apify/v2/webhooks\nContent-Type: application/json\n\n{\n  \"eventTypes\": [\"ACTOR.RUN.SUCCEEDED\"],\n  \"requestUrl\": \"https://example.com/webhook\"\n}\n```\n\n## Pagination\n\nOffset-based pagination:\n\n```bash\nGET /apify/v2/acts?offset=0&limit=100\n```\n\nResponse includes:\n```json\n{\n  \"data\": {\n    \"total\": 150,\n    \"offset\": 0,\n    \"limit\": 100,\n    \"count\": 100,\n    \"items\": [...]\n  }\n}\n```\n\n## Query Parameters\n\nCommon para"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Connect to external services through Maton-managed API routes. Use this skill only after the user names the target app, account, and task. Start with read/li... Skill: API Gateway Owner: byungkyu Summary: Connect to external services through Maton-managed API routes. Use this skill only after the user names the target app, account, and task. Start with read/li... Tags: latest:1.0.118 Version history: v1.0.118 | 2026-05-19T05:58:15.504Z | user - Removed the references/meta-ads/README.md file from the project. - No user-facing changes to core skill behavior or documentation. -","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1550,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-05-19T07:01:51.552Z","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-05-19T07:01:51.552Z","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-09T13:24:01.314Z","emptyReason":null},"items":[{"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":"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-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","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"}]}}}