Official agent skill

Zapier SDK

by zapier in zapier/sdk

Zapier SDK for TypeScript. An agent skill from zapier/sdk.

OfficialMITAuto-check passedProductivity & Automation

Install Zapier SDK

skills CLI
$ npx skills add zapier/sdk --skill zapier-sdk -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install zapier/sdk zapier-sdk --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/zapier/sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/zapier-sdk .claude/skills/zapier-sdk && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
zapier-sdk
GitHub stars
263
Token cost
~2.9k tokens
SKILL.md length
1,065 words
Files
6 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Zapier SDK for TypeScript. An agent skill from zapier/sdk.

  • Works in 3 steps: Find or create a connection → Run an action → Discover actions at runtime
  • Writing code that needs to run actions in third-party apps (send an email
  • SKILL.md covers When to use the SDK, Prerequisites, Critical: do not trust… and Shell discovery (agents…, plus 7 more sections
  • Calls npx, npm and jq

What it does

Zapier SDK is an agent skill from zapier/sdk, published by the product's own GitHub organization. Zapier SDK for TypeScript. Programmatic access to 9,000+ apps on a user's behalf via Zapier's OAuth and audit layer. Use when writing code that needs to run actions in third-party apps (send an email, upsert a CRM record, look up a spreadsheet row, post to a chat) without managing per-app OAuth or vendor SDKs. Triggers: "zapier sdk", "zapier-sdk", "@zapier/zapier-sdk", "runAction", "run zapier action", "connect to app via zapier", "zapier connection", "zapier tables", "list actions for zapier app"…

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/cli-commands.md`, `references/cli.md` and `references/examples.md`).

It sits in Productivity & Automation, covering Workflow automation. It works with Zapier and TypeScript. The repository describes itself as: Agent-readable docs, verified examples, and skill manifest for @zapier/zapier-sdk. The licence is MIT.

When your agent uses it

  • Writing code that needs to run actions in third-party apps (send an email
  • Upsert a CRM record
  • Look up a spreadsheet row
  • Post to a chat) without managing per-app OAuth

Example prompts

  • “s behalf via Zapier”
  • “zapier sdk”
  • “zapier-sdk”
  • “/zapier-sdk”

Requirements

  • Node.js

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Find or create a connection
  2. Run an action
  3. Discover actions at runtime

What it can do on your machine

Read from SKILL.md and the folder at commit b459897. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • npm
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.zapier.com
    • zapier.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Zapier SDK loads about 2.9k tokens when it runs, and up to ~25k if it reads all its reference files. Until then it costs about 141 tokens; SKILL.md has 1,065 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~141
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~25k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from zapier/sdk at commit b459897, republished under its MIT licence (© zapier). 1,065 words, ~2,929 tokens.

Download SKILL.mdSave it as .claude/skills/zapier-sdk/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
zapier-sdk
description
Zapier SDK for TypeScript. Programmatic access to 9,000+ apps on a user's behalf via Zapier's OAuth and audit layer. Use when writing code that needs to run actions in third-party apps (send an email, upsert a CRM record, look up a spreadsheet row, post to a chat) without managing per-app OAuth or vendor SDKs. Triggers: "zapier sdk", "zapier-sdk", "@zapier/zapier-sdk", "runAction", "run zapier action", "connect to app via zapier", "zapier connection", "zapier tables", "list actions for zapier app", "getActionInputFieldsSchema", "createZapierSdk".
metadata.author
zapier

Zapier SDK

Connect your app, agent, or backend to 9,000+ integrations with a few lines of code. Run actions, manage user connections, chain apps together. The SDK handles token refresh, retries, and API differences.

When to use the SDK

The Zapier SDK is the code interface to Zapier. It gives coding agents and AI builders programmatic, governed access to 9,000+ apps, running inside editors like Cursor, Claude Code, or VS Code.

Two sibling interfaces share the same capabilities:

  • Zapier CLI (@zapier/zapier-sdk-cli package): terminal interface (npx zapier-sdk ...) for one-off commands, exploration, scripting. Read references/cli.md when the user wants shell access instead of code.
  • Zapier MCP (https://zapier.com/mcp): LLM interface (tool-calling inside Claude, ChatGPT, or any MCP client, no code required).

Pick the SDK when the deliverable is code. If the user wants ad-hoc tool calls in an AI chat interface, point them to MCP.

Two SDK shapes to distinguish:

  • Plain SDK script (this file): the user's own code calls the SDK. Runs wherever their code runs (Node script, Next.js route, Lambda, CLI).
  • Durable workflow (@zapier/zapier-durable): the user deploys a workflow that Zapier's infrastructure runs on a trigger (webhook, poll, schedule). Retries stay idempotent via ctx.step. Read references/workflows.md when the user wants deployment on Zapier's infrastructure instead of running the code themselves.

Prerequisites

The SDK ships two packages: a TypeScript library and a CLI. Install whichever you need.

Check what's already installed:

bash
# Is the SDK library present?
ls node_modules/@zapier/zapier-sdk 2>/dev/null && echo "SDK installed" || echo "SDK not installed"

# Is the CLI available?
npx zapier-sdk --version 2>/dev/null && echo "CLI installed" || echo "CLI not installed"

# Are you logged in? (returns email + account on success, non-zero exit if not)
npx zapier-sdk get-profile

There is no whoami, no status, no auth. The command for "who am I logged in as" is get-profile. Use zapier-sdk --help before guessing any other command name.

If missing:

bash
# SDK library.
npm install @zapier/zapier-sdk

# CLI plus TypeScript dev deps.
npm install -D @zapier/zapier-sdk-cli @types/node typescript

# Authenticate (opens a browser).
npx zapier-sdk login

Full quickstart: https://docs.zapier.com/sdk

Setup requires browser-based login via npx zapier-sdk login. Offer to guide setup step-by-step only after user confirmation.

Critical: do not trust internal knowledge

The Zapier SDK (@zapier/zapier-sdk) is new. Your training data does not contain accurate information about this SDK. Do not guess API methods or patterns.

  1. Always verify against the official docs: https://docs.zapier.com/sdk/reference
  2. Never hallucinate method names. Use only methods documented in the reference or shown in this file.
  3. Never invent app keys. Run zapier-sdk list-apps --search <term> or zapier.listApps({ search }) first.
  4. Never invent action keys. Run zapier-sdk list-actions <app> or zapier.listActions({ app }) first.
  5. Never assume input field shapes for dynamic actions. Run zapier-sdk list-action-input-fields <app> <type> <action> against the live connection.

Shell discovery (agents working in the terminal)

Prefer the default output for reading. It already includes slug, key, title, action type, and description in a compact form. Pass --json only when you need to pipe into jq or another tool. --json is a per-command flag (it appears on every subcommand's --help, not on zapier-sdk --help).

bash
# Find apps. --search is a substring match, so `notion` returns Motion,
# Potion, Tree-Nation too. Read the default output to confirm you picked
# the right app before moving on.
npx zapier-sdk list-apps --search notion

# List actions on an app. Short slugs like `notion` work everywhere in
# the CLI. Filter by type to trim the list.
npx zapier-sdk list-actions notion --action-type search

# Inspect an action's inputs. Many are dynamic, so verify against a
# live connection.
npx zapier-sdk list-action-input-fields notion search page_by_title

# Run an action end-to-end. Use --json when you want to parse the result.
CONN=$(npx zapier-sdk find-first-connection notion --json | jq -r '.data.id')

npx zapier-sdk run-action notion search page_by_title \
  --connection "$CONN" \
  --inputs '{"title":"Meeting Notes","exact_match":"no"}' \
  --json

The CLI's run-action accepts the short slug (notion, slack, github), the CLIAPI-suffixed form (NotionCLIAPI), or a versioned ID. The CLIAPI-suffix requirement in the "Gotchas" section applies to the typed SDK library method (sdk.runAction), not the CLI.

Full CLI walkthrough: references/cli.md. Complete command inventory: references/cli-commands.md.

Authentication

The SDK supports two auth modes. Browser login is the default for local development:

typescript
import { createZapierSdk } from "@zapier/zapier-sdk";

// Option 1: browser-based (local dev). Requires `npx zapier-sdk login` first.
const zapier = createZapierSdk();

// Option 2: client credentials (server / CI).
const zapier = createZapierSdk({
  credentials: { clientId: "...", clientSecret: "..." },
});

Core workflow

1. Find or create a connection

Every action needs a connection (an OAuth grant Zapier holds for a specific app + user). Check if one exists:

typescript
// Throws ZapierResourceNotFoundError if no match. Wrap in try/catch, or listConnections() first.
const { data: connection } = await zapier.findFirstConnection({
  app: "notion",
  owner: "me",
  expired: false,
});

If none exists, the user has to complete OAuth in a browser. This step cannot be fully automated: a human must click "authorize" for their account.

bash
npx zapier-sdk create-connection notion   # opens a browser, waits for OAuth

For agent-driven flows: use get-connection-start-url <app> to fetch the URL, present it to the user, then wait-for-new-connection <app> <started-at> to block until they finish.

2. Run an action

Action types: read (list data), write (create/update), search (find specific records).

typescript
// Generic form (works for any app + action). Preferred.
const { data } = await zapier.runAction({
  appKey: "NotionCLIAPI",
  actionType: "search",
  actionKey: "page_by_title",
  connection: connection.id,
  inputs: { title: "Meeting Notes", exact_match: "no" },
});

For actions on the stable typed surface (documented in the SDK reference), a typed shorthand zapier.apps.<app>.<type>.<action>({ inputs }) is available. Check the reference for coverage; not every app is typed.

3. Discover actions at runtime
typescript
// What can this app do?
for await (const action of zapier.listActions({ app: "notion" }).items()) {
  console.log(action.key, action.action_type, action.label);
}

// What inputs does an action need?
const { data: schema } = await zapier.getActionInputFieldsSchema({
  app: "notion",
  actionType: "search",
  action: "page_by_title",
});
Show full SKILL.md (445 more words)Show less

Gotchas

  • OAuth cannot be automated. If no connection exists, create-connection opens a browser for the user. Agents must surface the URL and wait for the human. See "1. Find or create a connection" above.
  • is_hidden: true actions are not on the stable surface. They may work at runtime, but Zapier makes no promises they'll keep working. Filter them out of list-actions results before picking an action key.
  • Two connection reference shapes. At runtime, pass connection.id (UUID) to runAction. Inside a durable workflow (@zapier/zapier-durable), pass a string alias like "notion_primary" that the runtime resolves at deploy time. Don't mix them up.
  • runAction returns { data: T[] }, always an array. Search-style actions typically return one row; downstream code destructures data: [result]. Write actions also return an array (usually one element).
  • Dynamic input fields. Notion database properties, HubSpot custom fields, Jira per-project schemas: none of these are knowable ahead of time. Always run list-action-input-fields against the live connection before authoring.
  • App keys: the SDK's runAction wants the CLIAPI-suffixed form. In TypeScript, sdk.runAction({ appKey }) requires "NotionCLIAPI". Get it from list-apps or list-actions. Everywhere else (the CLI's run-action, sdk.findFirstConnection, sdk.listActions, and so on) accepts either the short slug ("notion") or the CLIAPI form.
  • Multiple connections per app is normal. Users often have several (personal + work Gmail, multiple Slack workspaces). Default to findFirstConnection / find-first-connection and take the first result. Don't stop to disambiguate unless the user explicitly asks; filter by title or owner if you need a specific one.
  • Vendor 429s reach your code. On run-action, upstream rate limits (Slack, HubSpot, Notion) come back as ZAPIER_ACTION_ERROR with a message ending ..., N) where N is Retry-After in seconds. Sleep N, then retry. Throttle bursts; don't rely on --max-network-retries to catch these.

SDK method reference

The SDK covers these categories: Apps, Actions, Connections, HTTP, Tables, Auth (client credentials), Profile.

Do not guess method signatures. Look them up in the canonical reference. Prefer the bundled README when @zapier/zapier-sdk is already installed (version-locked to the installed package, grep-able offline):

When paginating a list-* call, see references/pagination.md for the three patterns the SDK supports.

Authenticated HTTP (fetch)

Make raw API calls through Zapier's auth infrastructure when no first-class action exists:

typescript
const response = await zapier.fetch("https://api.example.com/data", {
  connection: connection.id,
  method: "GET",
});

Same auth and audit trail as runAction. Use this when the app's Zapier action catalog doesn't cover what you need (bulk reads, custom endpoints, partner-specific APIs).

Examples

For fill-in-the-blank skeletons (plain script, Zapier Table, durable workflow), see references/examples.md. These are shape-only; the real, action-key-verified corpus is at https://github.com/zapier/sdk/tree/main/examples. Grep the corpus by app or pattern when you need a working reference.

Full documentation

© zapier, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in skills/zapier-sdk of zapier/sdk.

  • SKILL.md
  • references/cli-commands.md
  • references/cli.md
  • references/examples.md
  • references/pagination.md
  • references/workflows.md

Open the folder on GitHubat commit b459897

Compare with similar skills

Zapier SDK next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Zapier SDK compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Zapier SDK this skillzapier/sdk263—~2.9kAutomated safety check: PassMIT
Zapier Demozapier/zapier-mcp430—~2.7kAutomated safety check: PassMIT
Zapier Statuszapier/zapier-mcp430—~1.8kAutomated safety check: PassMIT
Zapier Explorezapier/zapier-mcp430—~4kAutomated safety check: PassMIT
Zapier Onboardzapier/zapier-mcp430—~2.8kAutomated safety check: PassMIT
MCP Urgent Caller Triagezapier/gtm-cheat-codes342—~1kAutomated safety check: PassMIT

Similar skills

  • Zapier Demo

    zapier/zapier-mcp

    Official

    Walk a new user through setting up their first Zapier action and running it live — the smallest possible win.

    430 GitHub stars~2.7k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Zapier Status

    zapier/zapier-mcp

    Official

    Check the health of your Zapier MCP setup. An agent skill from zapier/zapier-mcp.

    430 GitHub stars~1.8k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Zapier Explore

    zapier/zapier-mcp

    Official

    Explore what Zapier MCP can do for the user — interview them about their role and the apps they live in, suggest specific use cases as on-demand prompts, then walk them through enabling the actions…

    430 GitHub stars~4k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Zapier Onboard

    zapier/zapier-mcp

    Official

    Onboard a new user to Zapier MCP — introduce what it can do, walk through authentication, and route into the right flow based on the state of their setup.

    430 GitHub stars~2.8k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • MCP Urgent Caller Triage

    zapier/gtm-cheat-codes

    Official

    Prioritize inbound client calls by reading transcripts, classifying urgency, matching callers to legal client and matter context, and preparing a callback list for human review.

    342 GitHub stars~1k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Zapier

    asgeirtj/system_prompts_leaks

    Connect Muse to actions across apps through Zapier's official MCP server.

    69k GitHub stars~328 tokensUpdated yesterday
    Productivity & AutomationAuto-check passed

Questions about Zapier SDK

What does Zapier SDK do?

Zapier SDK for TypeScript. An agent skill from zapier/sdk. Zapier SDK is an agent skill from zapier/sdk, published by the product's own GitHub organization. Zapier SDK for TypeScript.

When should I use Zapier SDK?

Zapier SDK fits situations like: writing code that needs to run actions in third-party apps (send an email; upsert a CRM record; look up a spreadsheet row; post to a chat) without managing per-app OAuth.

How do I install Zapier SDK in Claude Code?

Run `npx skills add zapier/sdk --skill zapier-sdk -a claude-code`. Or copy the skill folder (skills/zapier-sdk in zapier/sdk) into .claude/skills/zapier-sdk in your project. Claude Code loads it when a task matches its description.

How do I install Zapier SDK in Codex?

Run `npx skills add zapier/sdk --skill zapier-sdk -a codex`. Or copy the skill folder (skills/zapier-sdk in zapier/sdk) into .agents/skills/zapier-sdk in your project. Codex loads it when a task matches its description.

Can I use Zapier SDK in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add zapier/sdk --skill zapier-sdk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zapier-sdk, .gemini/skills/zapier-sdk, .github/skills/zapier-sdk and .opencode/skills/zapier-sdk in your project.

What does Zapier SDK need to run?

Going by SKILL.md and its folder, Zapier SDK needs the command-line tools its instructions call (npx, npm and jq). Our summary lists: Node.js.

Does Zapier SDK access the network?

SKILL.md names 2 domains. As links in the text: docs.zapier.com and zapier.com. This is read from the text; nothing was executed.

Is Zapier SDK safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Zapier SDK use?

Zapier SDK is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Zapier SDK use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 23k tokens, read only when the agent opens those files.

What are the alternatives to Zapier SDK?

Skills that share tags, products or a category with Zapier SDK: Zapier Demo (zapier/zapier-mcp, 430 stars), Zapier Status (zapier/zapier-mcp, 430 stars), Zapier Explore (zapier/zapier-mcp, 430 stars) and Zapier Onboard (zapier/zapier-mcp, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Zapier SDK?

zapier (a GitHub organization, an official publisher) maintains it in zapier/sdk, which has 263 GitHub stars. The repository was last updated on July 31, 2026.

Source: zapier/sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.