Skip to main content
The Zapier SDK is in closed beta. We’re working with a small group of developers and agent builders to shape the SDK before a wider release. Access is free during the beta — try it, break it, tell us what’s missing. Request access
Connect your app, agent, or backend to 8,000+ integrations with a few lines of code. Run actions, manage user authentications, and chain apps together, the SDK handles token refresh, retries, and API differences so you can focus on what to build, not how to connect.

For Developers

Build server-side integrations that execute Zapier actions, manage user authentications, and automate workflows programmatically.

For Agents

Every team is building agents that talk to APIs. The SDK gives those agents a single integration point to act across 8,000+ apps — no custom connectors required.

Key Features

  • 8,000+ App Integrations: Access Zapier’s entire ecosystem of pre-built connectors
  • Type-Safe: Full TypeScript support with generated types for every app and action
  • Simple Authentication: Browser-based login or client credentials for seamless auth
  • Paginated Results: Built-in support for iterating over large datasets
  • Proxy Pattern: Intuitive zapier.apps.slack.write.send_message() syntax
  • HTTP Relay: Make authenticated requests to any API through Zapier’s infrastructure

Get Started

Ready to build? Follow our quickstart guide to run your first action in minutes.

What Can You Build?

Example Use Case: Reschedule a meeting and notify attendees

Your user says: “Move my 2pm meeting to Thursday and let the attendees know.” Your agent finds the meeting in Google Calendar, reschedules it, and messages each attendee in Slack - all via the SDK:
import { createZapierSdk } from "@zapier/zapier-sdk";

const zapier = createZapierSdk();

// Bind the user's connected accounts
const { data: calAuth } = await zapier.findFirstAuthentication({
  appKey: "google-calendar",
  owner: "me",
});
const { data: slackAuth } = await zapier.findFirstAuthentication({
  appKey: "slack",
  owner: "me",
});

const calendar = zapier.apps.google_calendar({ authenticationId: calAuth.id });
const slack = zapier.apps.slack({ authenticationId: slackAuth.id });

// Find the 2pm meeting
const { data: events } = await calendar.search.find_event({
  inputs: {
    search_term: "2pm",
    start_time: "today at 1:30pm",
    end_time: "today at 2:30pm",
  },
});
const meeting = events[0];

// Move it to Thursday
await calendar.write.update_event({
  inputs: {
    id: meeting.id,
    start_time: "Thursday at 2:00pm",
    end_time: "Thursday at 3:00pm",
  },
});

// Notify each attendee via Slack DM
for (const attendee of meeting.attendees) {
  await slack.write.send_direct_message({
    inputs: {
      email: attendee.email,
      message: `Our "${meeting.summary}" meeting has been moved to Thursday at 2pm.`,
    },
  });
}

What’s happening under the hood:

  • findFirstAuthentication retrieves the user’s connected Google Calendar and Slack accounts — no OAuth flows to build
  • apps.google_calendar(...) binds auth once, so every subsequent call uses those credentials
  • search, write, and read map to the type of action: find data, create/update data, or list data
  • The SDK handles token refresh, retries, and API differences across apps — your agent just calls actions

Feedback

We want your feedback. The SDK is still taking shape and your input drives what we build next. Hit a bug? Missing a feature? Have an idea? Tell us about it