Zapier SDK
Let your agent call actions across 9,000+ apps while Zapier holds the OAuth keys.
- Source repo
- zapier/sdk
- Stars
- ★ 253
- Last updated
- 1mo ago
- License
- MIT
- FA score
- 49/100 · Major gaps
At a glance
- Works with
- Portable with changesCodex · Claude CodeClaude.ai (Partial support)
- You'll need
- Typical use
- An automation engineer connecting several SaaS tools who does not want to register and refresh OAuth apps per vendor — create connections once, then chain Notion, Gmail, Google Sheets, and Airtable calls.
- Main limitation
- Core operation depends on the Zapier platform: connections, credentials, and the action catalog are all hosted there, with no self-hosted path
- Source review
- 49/100 · Major gaps 1 safety controls not found
What does this agent do, and when should you use it?
Zapier SDK gives programs access to Zapier's app ecosystem through the npm package @zapier/zapier-sdk, and this repo bundles the SDK's docs, verified examples, and installable agent skills. The execution model is local-first: you authenticate once with npx zapier-sdk login, create an OAuth connection per app with create-connection, then invoke a catalog action with run-action; Zapier stores the credentials and resolves action schemas at runtime, so your code never touches a token. Beyond the SDK and CLI, the repo ships an agentskills.io-conformant zapier-sdk skill, a read-only zapier-sdk-explorer subagent that resolves exact app/action/field IDs, and an examples corpus indexed by app, domain, and pattern. It can be installed as a plugin into Claude Code, OpenAI Codex, and GitHub Copilot CLI, or cloned and referenced from rules files for other assistants. The boundary is clear: your code is portable, but connections and the action catalog live in Zapier.
The repository documents and distributes @zapier/zapier-sdk (runtime) and @zapier/zapier-sdk-cli (companion CLI). The flow: install both packages, run npx zapier-sdk login to store credentials locally, then let createZapierSdk() pick them up automatically. list-connections shows existing grants, create-connection <app> opens a browser to authorize an app such as notion, gmail, google-sheets, or airtable, and run-action <app> <action> --inputs '{...}' executes a catalog action and returns JSON — for example notion search page_by_title, gmail search message, google-sheets search lookup_row, airtable search findRecord. The examples directory is indexed three ways: by-app for single authenticated calls, by-domain READMEs that map a business domain to relevant examples, and by-pattern for end-to-end shapes like notify-on-event, data-sync, lead-routing, and scheduled-report. Every action key in the corpus is checked against listActions before inclusion. skills/zapier-sdk follows the agentskills.io spec, the zapier-sdk-explorer subagent investigates the live catalog before code is written, and sdk.fetch is the escape hatch for arbitrary HTTP APIs.
- An automation engineer connecting several SaaS tools who does not want to register and refresh OAuth apps per vendor — create connections once, then chain Notion, Gmail, Google Sheets, and Airtable calls.
- A developer configuring a coding assistant so it validates real action keys with zapier-sdk-explorer before generating SDK code, instead of inventing method names.
- A sales-ops or growth team doing lead routing: look up an Airtable record with findRecord by email and forward results to the next system.
- A reporting workflow that pulls rows from Google Sheets via lookup_row or messages from Gmail via search message and summarizes them on a schedule (the scheduled-report pattern).
- A support or ops person who wants a fast terminal check against an existing connection, e.g. Gmail query-syntax searches for messages from a specific sender.
- A team building its own agent runtime that loads the agentskills.io-conformant zapier-sdk skill as its tool-calling layer.
How do you install or deploy this agent?
Prerequisites: Node.js and npm (both the SDK and CLI are npm packages) and network access to Zapier.
1) Install the runtime SDK and dev dependencies (README commands as written):
npm install @zapier/zapier-sdk
npm install -D @zapier/zapier-sdk-cli @types/node typescript2) Optional: install as a plugin for an AI coding assistant (commands reproduced from the README, including its spelling):
Claude Code:
/plugin marketplace add zapier/marketplace
/plugin install sdk@zapierOpenAI Codex:
codex plugin marketplace add zapier/marketplace
codex plugin add sdk@zapierGitHub Copilot CLI:
copilot plugin marketplace add zapier/marketplace
copilot plugin install sdk@zapier3) For assistants without agentskills.io support:
git clone https://github.com/zapier/sdk.gitThen reference skills/zapier-sdk/SKILL.md from .cursorrules, AGENTS.md, or .github/copilot-instructions.md.
4) Authenticate with npx zapier-sdk login; credentials are stored on your machine and reused by createZapierSdk().
How do you use this agent?
Authenticate and check the profile:
npx zapier-sdk login
npx zapier-sdk get-profileAdd app connections (each opens a browser for OAuth):
npx zapier-sdk list-connections
npx zapier-sdk create-connection notion
npx zapier-sdk create-connection gmail
npx zapier-sdk create-connection google-sheets
npx zapier-sdk create-connection airtableRun actions (JSON output):
npx zapier-sdk run-action notion search page_by_title --inputs '{"title":"Meeting Notes","exact_match":"no"}'
npx zapier-sdk run-action gmail search message --inputs '{"query":"from:[email protected]"}'
npx zapier-sdk run-action google-sheets search lookup_row --inputs '{"spreadsheet":"<sheet-id>","worksheet":"<tab-id>","lookup_key":"Email","lookup_value":"[email protected]"}'
npx zapier-sdk run-action airtable search findRecord --inputs '{"applicationId":"<base-id>","tableName":"Leads","searchByField":"Email","searchByValue":"[email protected]"}'In code, call createZapierSdk() to reuse stored credentials, and use sdk.fetch for HTTP APIs without a first-class action. Browse examples/by-app/ for single-call patterns, docs.zapier.com/sdk/reference for the full method reference, and skills/zapier-sdk/references/cli-commands.md for the full CLI inventory.
What are this agent's strengths and limitations?
- Zapier holds the OAuth grants, so you skip registering per-vendor OAuth apps and your code never sees a token
- Example action keys are verified against listActions, giving the agent canonical, copy-paste-ready patterns
- Ships both a runtime npm package and a CLI, so you can prototype with run-action and then move into code
- Includes an agentskills.io-conformant skill plus a read-only zapier-sdk-explorer subagent that resolves exact app/action/field IDs first
- Examples are indexed by app, domain, and pattern, covering one-off calls and multi-step automations
- sdk.fetch provides a documented escape hatch for arbitrary HTTP APIs with no first-class action
- Core operation depends on the Zapier platform: connections, credentials, and the action catalog are all hosted there, with no self-hosted path
- Requires Node.js and network access, and using the service is governed separately by Zapier's terms of service
- The repository covers client code, docs, and examples only — the Zapier service itself is not open source
- Pricing and rate limits are not stated in the repo; you must check zapier.com/sdk
- Every app connection needs its own create-connection call and an interactive browser OAuth step, which is manual at scale
- Worked examples require real spreadsheet, worksheet, or base IDs before they run successfully
How does this agent compare with similar options?
The repository names Zapier MCP (github.com/zapier/zapier-mcp) as the alternative: if your tool calling goes through the MCP protocol (Cursor, Claude Desktop, Codex), use the MCP server instead of this SDK and CLI.
Key facts side by side with the most closely related agents.
| Agent | Source review | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|
| Zapier SDK This agent | 49 · Major gaps | ★ 253 | 1mo ago | — | Codex · Claude Code |
| OSS Autopilot | 83 · Good | ★ 16 | 1d ago | TypeScript | Claude Code · Claude.ai |
| Uni-CLI | 72 · Some gaps | ★ 270 | 1d ago | TypeScript | ChatGPT · Codex · Claude Code |
| ZCF - Zero-Config Code Flow | 51 · Major gaps | ★ 6.1k | 24d ago | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
README states OAuth tokens are held by Zapier and code never touches them, with sdk.fetch as a controlled escape hatch, so data-flow transparency is adequate (2). However, the repo is a docs/examples corpus: it shows no least-privilege scope declarations, no per-action user confirmation, no sensitive-data handling policy for Gmail queries or sheet rows, and no rollback/revocation examples, so least_privilege, user_confirmation, sensitive_data_handling, and external_effects score 1, and rollback 0. Dependency security pins only CLI 0.65.5 and typescript@5 with no lockfile or audit evidence, so 1. Source attribution is supported by LICENSE and trademark notice, so 2.
The README's four-step install/auth/connect/run flow is consistent with package.json scripts and the CI validation workflow, so self-consistency is 2. Dependency availability declares only node>=18 and two npm packages, with no lockfile or compatibility matrix, so 1. Failure messages are limited to CI typecheck/audit steps; no runtime error handling or diagnostic guidance is shown, so 1.
Targets multiple AI assistants (Claude Code, Codex, Copilot, Cursor) and backend scenarios, so audience_and_scenarios is 2; capability boundaries explain that the SDK handles OAuth and the action catalog with fetch as an escape hatch, so 2. Trigger precision lacks rules for when to invoke which action beyond examples, so 1. Environment fit declares node>=18 and agentskills.io compatibility, so 2.
Information architecture is clear: README, three-way examples index, skills, and llms.txt are well organized (3). Install notes are complete but depend on external npm packages and browser OAuth, so 2. Naming stability: action keys are resolved from the live catalog, so example keys may drift, giving 2. Examples exist but there is no FAQ, so 2. Known limitations mention only connections and credentials without a systematic list, so 1. License is full MIT (3). Versioning/changelog is absent; package.json is 0.1.0 and private, so 1. Maintenance responsibility points only to CONTRIBUTING and [email protected], and publisher identity is unverified, so 1.
Output usability: examples are copy-paste ready and return JSON, so 2. Marginal value: provides unified access to 9,000+ Zapier apps plus a skill manifest, so 2. Cost benefit: requires a Zapier account, OAuth connections, and potentially paid service, with no cost discussion in the repo, so 1.
claim_traceability: the README claims example action keys are checked against listActions, corroborated by audit.mjs and CI, so 2. cross_source_corroboration: only in-repo self-attestation, no independent third-party source, so 1. fact_inference_separation: docs distinguish captured output from generators and label it as not a mockup, so 2.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- The repo is a docs/examples corpus and shows no least-privilege scopes, per-action user confirmation, or rollback/revocation mechanism; actual authorization behavior must be verified on the Zapier platform side.
- Dependencies pin only CLI 0.65.5 and typescript@5 with no lockfile or dependency audit evidence, so supply-chain risk is not mitigated in-repo.
- Publisher identity is unverified; maintenance responsibility and update path point only to CONTRIBUTING and [email protected] and need independent confirmation.
- Example action keys depend on live catalog resolution and may drift as Zapier's catalog changes; no versioned changelog is provided.
- Usage requires a Zapier account and OAuth connections and may involve paid service; the repo does not discuss cost or quotas.