api-gateway

maton-ai/api-gateway-skill · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/maton-ai/api-gateway-skill --skill api-gateway
0 commentsdiscussion
summary

Unified API gateway for 100+ services with managed OAuth and native endpoint passthrough.

  • Supports 100+ integrations including Google Workspace, Microsoft 365, Slack, Notion, HubSpot, Salesforce, Stripe, and more with automatic OAuth token injection
  • Routes requests directly to native API endpoints via https://gateway.maton.ai/{app}/{native-api-path} , eliminating the need to learn custom abstractions
  • Manages OAuth connections through a separate control API with list, create, get, and
skill.md

API Gateway

Passthrough proxy for direct access to third-party APIs using managed OAuth connections, provided by Maton. The API gateway lets you call native API endpoints directly.

Quick Start

# Native Slack API call
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'channel': 'C0123456', 'text': 'Hello from gateway!'}).encode()
req = urllib.request.Request('https://gateway.maton.ai/slack/api/chat.postMessage', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Base URL

https://gateway.maton.ai/{app}/{native-api-path}

Replace {app} with the service name and {native-api-path} with the actual API endpoint path.

IMPORTANT: The URL path MUST start with the connection's app name (eg. /google-mail/...). This prefix tells the gateway which app connection to use. For example, the native Gmail API path starts with gmail/v1/, so full paths look like /google-mail/gmail/v1/users/me/messages.

Authentication

All requests require the Maton API key in the Authorization header:

Authorization: Bearer $MATON_API_KEY

The API gateway automatically injects the appropriate OAuth token for the target service.

Environment Variable: You can set your API key as the MATON_API_KEY environment variable:

export MATON_API_KEY="YOUR_API_KEY"

Getting Your API Key

  1. Sign in or create an account at maton.ai
  2. Go to maton.ai/settings
  3. Click the copy button on the right side of API Key section to copy it

Connection Management

Connection management uses a separate base URL: https://ctrl.maton.ai

List Connections

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections?app=slack&status=ACTIVE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Query Parameters (optional):

  • app - Filter by service name (e.g., slack, hubspot, salesforce)
  • status - Filter by connection status (ACTIVE, PENDING, FAILED)

Response:

{
  "connections": [
    {
      "connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
      "status": "ACTIVE",
      "creation_time": "2025-12-08T07:20:53.488460Z",
      "last_updated_time": "2026-01-31T20:03:32.593153Z",
      "url": "https://connect.maton.ai/?session_token=5e9...",
      "app": "slack",
      "method": "OAUTH2",
      "metadata": {}
    }
  ]
}

Create Connection

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'app': 'slack'}).encode()
req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Request Body:

  • app (required) - Service name (e.g., slack, notion)
  • method (optional) - Connection method (API_KEY, BASIC, OAUTH1, OAUTH2, MCP)

Get Connection

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Response:

{
  "connection": {
    "connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80",
    "status": "ACTIVE",
    "creation_time": "2025-12-08T07:20:53.488460Z",
    "last_updated_time": "2026-01-31T20:03:32.593153Z",
    "url": "https://connect.maton.ai/?session_token=5e9...",
    "app": "slack",
    "metadata": {}
  }
}

Open the returned URL in a browser to complete OAuth.

Delete Connection

python <<'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Specifying Connection

If you have multiple connections for the same app, you can specify which connection to use by adding the Maton-Connection header with the connection ID:

python <<'EOF'
import urllib.request, os, json
data = json.dumps({'channel': 'C0123456', 'text': 'Hello!'}).encode()
req = urllib.request.Request('https://gateway.maton.ai/slack/api/chat.postMessage', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

If omitted, the gateway uses the default (oldest) active connection for that app.

Supported Services

how to use api-gateway

How to use api-gateway on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add api-gateway
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/maton-ai/api-gateway-skill --skill api-gateway

The skills CLI fetches api-gateway from GitHub repository maton-ai/api-gateway-skill and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/api-gateway

Reload or restart Cursor to activate api-gateway. Access the skill through slash commands (e.g., /api-gateway) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

Task Automation & Efficiency

Automate repetitive workflows and reduce manual effort

Example

Generate reports, summarize documents, draft communications

Save 3-5 hours per week on routine tasks

Knowledge Enhancement

Learn new skills, understand complex topics, get expert guidance

Example

Explain concepts, provide examples, suggest learning resources

Accelerate learning and skill development by 2x

Quality Improvement

Enhance output quality through reviews, suggestions, and refinements

Example

Review drafts, suggest improvements, catch errors

Improve work quality by 30-40% with less effort

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client with skill support
  • Clear understanding of task or problem to solve
  • Willingness to iterate and refine outputs

Time Estimate

15-45 minutes depending on use case complexity

Installation Steps

  1. 1.Install skill using provided installation command
  2. 2.Test with simple use case relevant to your work
  3. 3.Evaluate output quality and relevance
  4. 4.Iterate on prompts to improve results
  5. 5.Integrate into regular workflow if valuable

Common Pitfalls

  • Expecting perfect results without iteration
  • Not providing enough context in prompts
  • Using skill for tasks outside its intended scope
  • Accepting outputs without review and validation

Best Practices

✓ Do

  • +Start with clear, specific prompts
  • +Provide relevant context and constraints
  • +Review and refine all outputs before using
  • +Iterate to improve output quality
  • +Document successful prompt patterns

✗ Don't

  • Don't use without understanding skill limitations
  • Don't skip validation of outputs
  • Don't share sensitive information in prompts
  • Don't expect skill to replace human judgment

💡 Pro Tips

  • Be specific about desired format and style
  • Ask for multiple options to choose from
  • Request explanations to understand reasoning
  • Combine AI efficiency with human expertise

When to Use This

✓ Use When

Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.

✗ Avoid When

Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.

Learning Path

  1. 1Familiarize yourself with skill capabilities and limitations
  2. 2Start with low-risk, non-critical tasks
  3. 3Progress to more complex and valuable use cases
  4. 4Build expertise through regular use and experimentation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.860 reviews
  • Nikhil Park· Dec 28, 2024

    I recommend api-gateway for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Liam Gill· Dec 16, 2024

    We added api-gateway from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Li Malhotra· Dec 16, 2024

    Solid pick for teams standardizing on skills: api-gateway is focused, and the summary matches what you get after install.

  • Hassan Harris· Dec 12, 2024

    api-gateway reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Isabella Wang· Dec 4, 2024

    We added api-gateway from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Sofia Garcia· Nov 27, 2024

    Solid pick for teams standardizing on skills: api-gateway is focused, and the summary matches what you get after install.

  • Nikhil Abbas· Nov 23, 2024

    Keeps context tight: api-gateway is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • James Patel· Nov 19, 2024

    api-gateway reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Lucas Anderson· Nov 7, 2024

    Keeps context tight: api-gateway is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Sakshi Patil· Nov 3, 2024

    api-gateway has been reliable in day-to-day use. Documentation quality is above average for community skills.

showing 1-10 of 60

1 / 6
Service App Name Base URL Proxied
ActiveCampaign active-campaign {account}.api-us1.com
Acuity Scheduling acuity-scheduling acuityscheduling.com
Airtable airtable api.airtable.com
Apollo apollo api.apollo.io
Asana asana app.asana.com
Attio attio api.attio.com
Basecamp basecamp 3.basecampapi.com
Baserow baserow api.baserow.io
beehiiv beehiiv api.beehiiv.com
Box box api.box.com
Brevo brevo api.brevo.com
Brave Search brave-search api.search.brave.com
Buffer buffer api.buffer.com
Calendly calendly api.calendly.com
Cal.com cal-com api.cal.com
CallRail callrail api.callrail.com
Chargebee chargebee {subdomain}.chargebee.com
ClickFunnels clickfunnels {subdomain}.myclickfunnels.com
ClickSend clicksend rest.clicksend.com
ClickUp clickup api.clickup.com
Clockify clockify api.clockify.me
Coda coda coda.io
Confluence confluence api.atlassian.com
CompanyCam companycam api.companycam.com
Cognito Forms cognito-forms www.cognitoforms.com
Constant Contact constant-contact api.cc.email
Dropbox dropbox api.dropboxapi.com
Dropbox Business dropbox-business api.dropboxapi.com
ElevenLabs elevenlabs api.elevenlabs.io
Eventbrite eventbrite www.eventbriteapi.com
Exa exa api.exa.ai
fal.ai fal-ai queue.fal.run
Fathom fathom api.fathom.ai
Firecrawl firecrawl api.firecrawl.dev
Firebase firebase firebase.googleapis.com
Fireflies fireflies api.fireflies.ai
Front front api2.frontapp.com
GetResponse getresponse api.getresponse.com
Grafana grafana User's Grafana instance
GitHub github api.github.com
Gumroad gumroad api.gumroad.com
Granola MCP granola mcp.granola.ai
Google Ads google-ads googleads.googleapis.com
Google BigQuery google-bigquery bigquery.googleapis.com
Google Analytics Admin google-analytics-admin analyticsadmin.googleapis.com
Google Analytics Data google-analytics-data analyticsdata.googleapis.com
Google Calendar google-calendar www.googleapis.com
Google Classroom google-classroom classroom.googleapis.com
Google Contacts google-contacts people.googleapis.com
Google Docs google-docs docs.googleapis.com
Google Drive google-drive www.googleapis.com
Google Forms google-forms forms.googleapis.com
Gmail google-mail gmail.googleapis.com
Google Merchant google-merchant merchantapi.googleapis.com
Google Meet google-meet meet.googleapis.com
Google Play google-play androidpublisher.googleapis.com
Google Search Console google-search-console www.googleapis.com
Google Sheets google-sheets sheets.googleapis.com
Google Slides google-slides slides.googleapis.com
Google Tasks google-tasks tasks.googleapis.com
Google Workspace Admin google-workspace-admin admin.googleapis.com
HubSpot hubspot api.hubapi.com
Instantly instantly api.instantly.ai
Jira jira api.atlassian.com
Jobber jobber api.getjobber.com
JotForm jotform api.jotform.com
Kaggle kaggle api.kaggle.com
Keap keap api.infusionsoft.com
Kibana kibana User's Kibana instance
Kit kit api.kit.com
Klaviyo klaviyo a.klaviyo.com
Lemlist lemlist api.lemlist.com
Linear linear api.linear.app
LinkedIn linkedin api.linkedin.com
Mailchimp mailchimp {dc}.api.mailchimp.com
MailerLite mailerlite connect.mailerlite.com
Mailgun mailgun api.mailgun.net
ManyChat manychat api.manychat.com
Manus manus api.manus.ai
Memelord memelord www.memelord.com
Microsoft Excel microsoft-excel graph.microsoft.com
Microsoft Teams microsoft-teams graph.microsoft.com
Microsoft To Do microsoft-to-do graph.microsoft.com
Monday.com monday api.monday.com
Motion motion api.usemotion.com
Netlify netlify api.netlify.com
Notion notion api.notion.com
Notion MCP notion mcp.notion.com
OneNote one-note graph.microsoft.com
OneDrive one-drive graph.microsoft.com
Outlook outlook graph.microsoft.com
PDF.co pdf-co api.pdf.co
Pipedrive pipedrive api.pipedrive.com
Podio podio api.podio.com
PostHog posthog {subdomain}.posthog.com
QuickBooks quickbooks quickbooks.api.intuit.com
Quo quo api.openphone.com
Reducto reducto platform.reducto.ai
Resend resend api.resend.com
Salesforce salesforce {instance}.salesforce.com
Sentry sentry