---
title: "Create a Zap"
method: POST
path: "/v2/zaps"
tags: ["Zaps"]
---

# Create a Zap

`POST /v2/zaps`

This URL creates a Zap based on the given steps and title.

#### When using OAuth

This endpoint requires the `zap:write`, or `zap:all` OAuth scopes.

## Query parameters

- `expand` string

## Request body

- ZapRequest
  - `data` CreateZapRequest, required — See our Building a Zap guide to get started.
    - `steps` CreateZapRequestStep[], required — The list of steps that the Zap should consist of
      - `action` string, required — The ID of the Action to be associated with this step
      - `inputs` object, required — The inputs for the Action associated with this step
      - `authentication` string, nullable, required — The authentication, if required, for this Action to run
      - `alias` string, nullable — Optional alias for this step to be referenced by later steps (snake_case, max 64 chars)
    - `title` string, required — The title to be set for this Zap

## Response `201`

- ExpandedZap — A Zap is an automated workflow that connects your apps and services together.
  - `type` string, required — The type of this object.
  - `id` string, required — A unique identifier of the Zap.
  - `is_enabled` boolean — Whether the Zap is enabled (running) or not.
  - `last_successful_run_date` string, nullable, required — The date/time at which this Zap last ran successfully. A null value indicates that a Zap has never run successfully.
  - `updated_at` string, required — The last time this Zap was updated
  - `title` string, required — The human readable name of the Zap.
  - `links` object, required — Link to open this Zap in the Zapier Editor
  - `steps` union[], required — A list of the steps this Zap consists of
    - union
      - ExpandedZapStep — An ordered list of steps that define the logic of the Zap.
        - `action` union, required — Action
          - Action — An Action is an operation that can be performed against a third-party API; either a read or a write. A Zap is composed of a read, followed by one or more writes.
            - `id` string, required — The ID to refer to this action (unstable, may change when referenced app changes)
            - `key` string, required — The developer provided identifier for this Action (stable)
            - `app` union, required — Apps
              - …
            - `type` 'action', required — * `action` - action
            - `action_type` 'action', required — * `action` - action
            - `is_instant` boolean, required — Will be set to `true` if this Action triggers instantly. May only be `true` when `type` is `READ`.
            - `title` string, required — The title of this Action.
            - `description` string, required — A longer description of this Action, usually describing what it does in more detail.
          - string
        - `authentication` Authentication, required — An Authentication contains various fields, often credentials such as API tokens, used to access Partner APIs on behalf of a user. The actual fields are held securely by Zapier
          - `type` 'authentication', required — * `authentication` - authentication
          - `id` string, required — The unique UUID identifier for this specific Authentication. Legacy hashids are still accepted on input for backwards compatibility.
          - `app` union, required — An app that integrates with Zapier.
            - Apps — An app that integrates with Zapier
              - …
            - string
          - `is_expired` boolean, required — If `true`, this Authentication has expired. It will not be usable, and the user needs to be directed to reconnect it.
          - `title` string, required — The title of this specific Authentication
        - `inputs` unknown, required
        - `title` string, nullable, required — The custom title of a Zap Step. If a step has not been given a custom title by the user, then the value will be null.
      - string

## Other responses

- `400` — This schema can be expected for 4xx 'Malformed request.' errors
- `401` — 401 Response
- `403` — 403 Response
- `409` — 409 Response
- `429` — 429 Response
- `500` — This schema can be expected for 5xx 'A server error occurred.' errors
- `503` — 503 Response
- `504` — 504 Response

---

[API](https://skmtc.dev/zapier/apis/trigger-inbox-api.md) · [All operations](https://skmtc.dev/zapier/apis/trigger-inbox-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zapier/trigger-inbox-api/revisions/3fc4c2846ba1/schema)
