master-zapier-plan-draft/vendor/zapier-platform/packages/cli/docs/cli.html
George Lambert b4150c8250 Milestone 0: import zappier billing, Verae middleware, and Zapier research
Compose-ready workspace: packages/zappier (rate card, portal, Stripe),
packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier
(CLI app), vendor/zapier-platform, and research/zapier vendor corpus.

Gate 0 structure checks pass. Product code and research are not yet wired.
2026-09-09 02:37:36 -04:00

1450 lines
87 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-K7GFJTV');</script>
<!-- End Google Tag Manager -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Zapier Platform CLI Reference</title>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/agate.min.css">
<link href="//fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
<link rel="stylesheet" href="./docs.css">
<style>body {
font-family: 'Open Sans', Helvetica, arial, sans-serif;
background-color: #fff;
color: #5F6C72;
font-size: 14px;
font-weight: 400;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
position: relative; }
img {
max-width: 100%; }
h1 {
color: #354147;
font-size: 28px;
font-weight: 400;
line-height: 1.3em;
padding: 20px 0; }
h2 {
color: #354147;
font-size: 20px;
line-height: 1.4em;
font-weight: 600;
padding: 1em 0; }
h3 {
color: #354147;
font-size: 15px;
line-height: 1.5em;
font-weight: 600;
padding: 0 0 0.5em 0; }
h4 {
color: #354147;
font-size: 0.9em;
letter-spacing: 1px;
line-height: 1.2em;
font-weight: 600;
padding: 0 0 10px;
text-transform: uppercase; }
a {
color: #499DF3;
text-decoration: none; }
a:hover {
text-decoration: underline; }
::-webkit-input-placeholder {
color: #969EA2; }
:-moz-placeholder {
color: #969EA2; }
::-moz-placeholder {
color: #969EA2; }
:-ms-input-placeholder {
color: #969EA2; }
p {
line-height: 1.6em;
margin: 0 0 15px; }
small {
font-size: 13px; }
i, em {
font-style: italic; }
strong {
font-weight: 600; }
sup, sub, .sup {
font-size: 13px;
vertical-align: baseline;
position: relative;
top: -0.4em; }
sup.small, sub.small, .sup.small {
font-size: 10px; }
sub {
top: 0.4em; }
pre {
border: none;
line-height: 20px;
font-family: 'Consolas','Liberation Mono',Courier,monospace; }
pre code {
display: block;
white-space: pre; /* no word wrap */
padding: 10px;
line-height: 1.7em; }
p code {
word-break: break-all;
display: inline; }
hr {
color: #DADFE2;
background: #DADFE2;
border: 0;
height: 1px; }
ul {
line-height: 1.75em;
margin: 0 0 20px; }
ol {
line-height: 1.75em;
list-style-type: decimal;
list-style-position: inside;
margin: 0 0 20px; }
blockquote {
border-left: 3px solid #ff4a00;
font-size: 14px;
font-style: italic;
line-height: 2em;
margin: 30px 0;
padding-left: 20px; }
blockquote p {
font-size: inherit;
font-style: inherit;
line-height: inherit; }
.docs-toc {
height: 100%;
width: 230px;
position: fixed;
padding: 40px 20px;
overflow-y: scroll;
overflow-x: hidden; }
.docs-toc ul {
margin: 0;
padding: 0 0 0 10px; }
.generated-by {
font-size: 12px;
color: #969EA2; }
.docs-main {}
.docs-code {
/* see media queries */ }
.docs-code pre {
background: #354147;
color: #ffffff;
line-height: 20px;
font-family: 'Consolas','Liberation Mono',Courier,monospace; }
.docs-code pre code {
display: block;
padding: 10px;
line-height: 1.7em; }
a code {
color: #499DF3;
background-color: #f2f4f9; }
/* targets bootstraps md width */
@media (min-width: 992px) {
.row-height {
display: table;
table-layout: fixed;
height: 100%;
width: 100%; }
.col-height {
display: table-cell;
float: none;
height: 100%; }
.docs-main {
margin-left: 230px; }
.docs-code {
background: #5F6C72;
color: #ffffff; }
}
@media (max-width: 992px) {
.docs-toc {
display: none; }
.is-empty {
display: none; }
}
</style>
</head>
<body>
<!-- Header -->
<div class="docs-header__platform">
<div class="docs-header__container">
<div class="docs-header__logo">
<svg fill="none" height="32" viewBox="0 0 177 32" width="177" xmlns="http://www.w3.org/2000/svg"><path d="M82.8896 25.23C82.0692 25.23 81.3178 25.0805 80.6354 24.7815C79.9607 24.4748 79.3933 24.0071 78.9333 23.3784H78.7953C78.8873 24.1144 78.9333 24.8122 78.9333 25.4715V30.6584H77.0242V12.395H78.5768L78.8413 14.1202H78.9333C79.424 13.4301 79.9952 12.9317 80.6469 12.6251C81.2986 12.3184 82.0462 12.165 82.8896 12.165C84.5611 12.165 85.8492 12.7362 86.7539 13.8787C87.6663 15.0211 88.1225 16.6235 88.1225 18.686C88.1225 20.7562 87.6586 22.3663 86.7309 23.5164C85.8108 24.6588 84.5304 25.23 82.8896 25.23ZM82.6136 13.7866C81.3255 13.7866 80.3939 14.1432 79.8189 14.8562C79.2438 15.5693 78.9486 16.704 78.9333 18.2605V18.686C78.9333 20.4572 79.2285 21.7261 79.8189 22.4928C80.4092 23.2519 81.3562 23.6314 82.6596 23.6314C83.7483 23.6314 84.5994 23.1905 85.2128 22.3088C85.8338 21.4271 86.1444 20.2118 86.1444 18.663C86.1444 17.0912 85.8338 15.8875 85.2128 15.0517C84.5994 14.2083 83.733 13.7866 82.6136 13.7866ZM93.3784 25H91.4693V7.10463H93.3784V25ZM105.178 25L104.799 23.2059H104.707C104.078 23.9956 103.449 24.5323 102.821 24.816C102.2 25.092 101.421 25.23 100.486 25.23C99.2362 25.23 98.2548 24.908 97.5417 24.2639C96.8363 23.6199 96.4836 22.7037 96.4836 21.5152C96.4836 18.9697 98.5193 17.6356 102.591 17.5129L104.73 17.4439V16.6619C104.73 15.6728 104.515 14.9444 104.086 14.4767C103.664 14.0013 102.985 13.7636 102.05 13.7636C101 13.7636 99.8112 14.0857 98.4848 14.7297L97.8982 13.2691C98.5193 12.9317 99.1978 12.6672 99.9339 12.4755C100.678 12.2839 101.421 12.188 102.165 12.188C103.668 12.188 104.78 12.5215 105.5 13.1886C106.229 13.8556 106.593 14.9252 106.593 16.3973V25H105.178ZM100.865 23.6544C102.054 23.6544 102.985 23.3285 103.66 22.6768C104.343 22.0251 104.684 21.1127 104.684 19.9396V18.801L102.775 18.8815C101.257 18.9352 100.16 19.1729 99.4854 19.5946C98.8183 20.0086 98.4848 20.6565 98.4848 21.5382C98.4848 22.2283 98.6918 22.7535 99.1058 23.1139C99.5275 23.4742 100.114 23.6544 100.865 23.6544ZM114.609 23.6544C114.946 23.6544 115.272 23.6314 115.587 23.5854C115.901 23.5317 116.15 23.4781 116.334 23.4244V24.885C116.127 24.9847 115.82 25.0652 115.414 25.1265C115.015 25.1955 114.655 25.23 114.333 25.23C111.895 25.23 110.676 23.9458 110.676 21.3772V13.8787H108.87V12.9586L110.676 12.165L111.481 9.47382H112.585V12.395H116.242V13.8787H112.585V21.2967C112.585 22.0558 112.765 22.6385 113.125 23.0449C113.486 23.4512 113.98 23.6544 114.609 23.6544ZM124.546 13.8787H121.337V25H119.428V13.8787H117.174V13.0161L119.428 12.326V11.6245C119.428 8.52691 120.781 6.97813 123.488 6.97813C124.155 6.97813 124.937 7.1123 125.834 7.38066L125.339 8.91027C124.603 8.67259 123.975 8.55375 123.453 8.55375C122.732 8.55375 122.2 8.79526 121.855 9.2783C121.51 9.75367 121.337 10.5204 121.337 11.5785V12.395H124.546V13.8787ZM137.726 18.686C137.726 20.7408 137.208 22.3471 136.173 23.5049C135.138 24.655 133.708 25.23 131.883 25.23C130.756 25.23 129.756 24.9655 128.882 24.4365C128.008 23.9074 127.333 23.1484 126.857 22.1593C126.382 21.1702 126.144 20.0125 126.144 18.686C126.144 16.6312 126.658 15.0326 127.686 13.8902C128.713 12.7401 130.139 12.165 131.964 12.165C133.727 12.165 135.127 12.7516 136.162 13.9247C137.204 15.0977 137.726 16.6849 137.726 18.686ZM128.123 18.686C128.123 20.2961 128.445 21.5229 129.089 22.3663C129.733 23.2097 130.68 23.6314 131.929 23.6314C133.179 23.6314 134.126 23.2135 134.77 22.3778C135.422 21.5344 135.748 20.3038 135.748 18.686C135.748 17.0836 135.422 15.8683 134.77 15.0402C134.126 14.2045 133.171 13.7866 131.906 13.7866C130.657 13.7866 129.714 14.1968 129.077 15.0172C128.441 15.8376 128.123 17.0606 128.123 18.686ZM146.834 12.165C147.394 12.165 147.896 12.211 148.341 12.303L148.077 14.0742C147.555 13.9592 147.095 13.9017 146.696 13.9017C145.677 13.9017 144.803 14.3157 144.074 15.1437C143.354 15.9718 142.993 17.0031 142.993 18.2375V25H141.084V12.395H142.66L142.878 14.7297H142.97C143.438 13.9093 144.001 13.2768 144.661 12.8321C145.32 12.3874 146.045 12.165 146.834 12.165ZM166.766 25V16.7999C166.766 15.7955 166.551 15.0441 166.121 14.5457C165.692 14.0397 165.025 13.7866 164.12 13.7866C162.932 13.7866 162.054 14.1278 161.487 14.8102C160.919 15.4926 160.636 16.543 160.636 17.9615V25H158.726V16.7999C158.726 15.7955 158.512 15.0441 158.082 14.5457C157.653 14.0397 156.982 13.7866 156.07 13.7866C154.874 13.7866 153.996 14.147 153.436 14.8677C152.884 15.5808 152.608 16.7539 152.608 18.387V25H150.699V12.395H152.251L152.562 14.1202H152.654C153.014 13.5068 153.52 13.0276 154.172 12.6826C154.831 12.3375 155.567 12.165 156.38 12.165C158.351 12.165 159.639 12.8781 160.245 14.3042H160.337C160.712 13.6448 161.257 13.1234 161.97 12.7401C162.683 12.3567 163.495 12.165 164.408 12.165C165.834 12.165 166.9 12.533 167.605 13.2691C168.318 13.9975 168.675 15.1667 168.675 16.7769V25H166.766Z" fill="#dadfe2"></path><path d="M41.4582 13.8944H39.7361C39.7007 13.7517 39.6743 13.5861 39.6568 13.3983C39.6217 13.0325 39.6217 12.6643 39.6568 12.2986C39.6743 12.1111 39.7007 11.9457 39.7361 11.8022H44.0279V25.5626C43.8131 25.6005 43.5965 25.6272 43.3789 25.6427C43.1628 25.6595 42.9462 25.6683 42.7295 25.6693C42.5219 25.6679 42.3144 25.659 42.1074 25.6427C41.8899 25.6271 41.6734 25.6002 41.4586 25.5622V13.8938V13.8941L41.4582 13.8944ZM56.3991 17.3549C56.3991 16.854 56.3328 16.3758 56.2007 15.9194C56.068 15.4637 55.8732 15.066 55.6178 14.726C55.3612 14.3866 55.0347 14.1136 54.6373 13.9081C54.24 13.7024 53.7675 13.5994 53.22 13.5994C52.1428 13.5994 51.317 13.9307 50.7431 14.5921C50.1692 15.2536 49.8205 16.1745 49.6967 17.3549H56.3992H56.3991ZM49.6703 19.3396C49.7057 20.8417 50.0898 21.9417 50.8227 22.6387C51.5554 23.336 52.6373 23.6852 54.0679 23.6852C55.3214 23.6852 56.5136 23.4613 57.6439 23.0143C57.7849 23.2825 57.8996 23.609 57.988 23.9934C58.0748 24.3678 58.128 24.7492 58.1469 25.1333C57.5645 25.3843 56.9238 25.5712 56.2266 25.6967C55.5286 25.8215 54.756 25.8844 53.9088 25.8844C52.6721 25.8844 51.6123 25.7095 50.7297 25.3612C49.8465 25.0121 49.118 24.5203 48.544 23.8858C47.9702 23.2512 47.5505 22.5 47.2856 21.6326C47.0209 20.7656 46.8881 19.8132 46.8881 18.7761C46.8881 17.7568 47.0161 16.8045 47.2722 15.9191C47.5279 15.0345 47.9217 14.2654 48.4509 13.6127C48.981 12.9598 49.6475 12.4414 50.4512 12.0569C51.2544 11.6725 52.2036 11.48 53.299 11.48C54.2349 11.48 55.0561 11.6411 55.7628 11.9629C56.4689 12.2847 57.0607 12.7274 57.5377 13.2907C58.0144 13.8541 58.3764 14.5247 58.6238 15.3021C58.8708 16.0803 58.9949 16.9251 58.9949 17.8373C58.9949 18.0877 58.9855 18.3513 58.968 18.6283C58.9535 18.8655 58.9359 19.1024 58.9152 19.3391H49.6698L49.6701 19.3395L49.6703 19.3396ZM61.884 11.8022C62.0683 11.7683 62.2539 11.7415 62.4403 11.7219C62.6164 11.7044 62.8023 11.6953 62.9966 11.6953C63.1909 11.6953 63.3849 11.7044 63.5794 11.7219C63.7736 11.74 63.9503 11.7669 64.1093 11.8022C64.1618 12.0705 64.2149 12.4241 64.2677 12.8617C64.3206 13.2999 64.3475 13.6707 64.3475 13.9748C64.7183 13.3671 65.2084 12.8392 65.8175 12.392C66.4269 11.9453 67.2083 11.7214 68.1618 11.7214C68.3031 11.7214 68.4487 11.7262 68.5989 11.7352C68.7274 11.7421 68.8559 11.7553 68.983 11.775C69.0181 11.9362 69.0452 12.1063 69.0626 12.2849C69.08 12.4635 69.0889 12.6514 69.0889 12.848C69.0889 13.0627 69.0758 13.2865 69.0494 13.5184C69.0239 13.7426 68.993 13.9662 68.9568 14.1889C68.8137 14.1532 68.6668 14.1352 68.5194 14.1353H68.1616C67.6848 14.1353 67.23 14.2024 66.7973 14.3363C66.3643 14.4707 65.976 14.7077 65.6316 15.0471C65.2876 15.3871 65.0136 15.8521 64.8109 16.4423C64.6073 17.0324 64.506 17.7924 64.506 18.7221V25.5622C64.2912 25.6 64.0745 25.627 63.8569 25.6425C63.6188 25.6604 63.4023 25.6691 63.2081 25.6691C62.9915 25.6682 62.775 25.6594 62.559 25.6425C62.3327 25.6259 62.1072 25.5991 61.8833 25.5624V11.8023L61.884 11.8022ZM43.2914 4.4547C43.2915 4.77575 43.2342 5.09417 43.1224 5.39461C42.8256 5.50779 42.5111 5.5658 42.1939 5.56586H42.19C41.8728 5.5659 41.5583 5.50794 41.2615 5.39475C41.1495 5.09426 41.0922 4.77573 41.0922 4.45456V4.45037C41.0922 4.11948 41.1522 3.80259 41.2608 3.51018C41.5576 3.39684 41.8723 3.33886 42.1896 3.33907H42.1932C42.5201 3.33907 42.833 3.39979 43.1218 3.51018C43.2336 3.81068 43.2909 4.12921 43.2908 4.45037V4.45456H43.2912L43.2914 4.4547ZM46.5284 3.71039H43.9616L45.7764 1.87268C45.4911 1.46687 45.1407 1.11221 44.7398 0.823365L42.9247 2.66107V0.0619797C42.6834 0.0208725 42.439 0.000141251 42.1943 0H42.1896C41.9406 0 41.6967 0.021546 41.459 0.0619797V2.66107L39.6435 0.823225C39.4436 0.967313 39.2559 1.12812 39.0825 1.30395L39.0817 1.30479C38.9083 1.48049 38.7496 1.67049 38.6073 1.87282L40.4228 3.71039H37.8555C37.8555 3.71039 37.7944 4.19867 37.7944 4.45107V4.45414C37.7944 4.70654 37.8155 4.9539 37.8556 5.19468H40.423L38.6072 7.03211C38.8928 7.43787 39.2432 7.79259 39.6439 8.08171L41.4592 6.24414V8.84337C41.6966 8.88367 41.9401 8.90493 42.1888 8.90521H42.195C42.4395 8.90498 42.6835 8.8843 42.9246 8.84337V6.24414L44.74 8.08213C44.9399 7.93791 45.1277 7.77711 45.3014 7.6014H45.3018C45.4751 7.42551 45.6337 7.23537 45.776 7.03295L43.9612 5.19482H46.5286C46.5684 4.95418 46.5894 4.70766 46.5894 4.45582V4.44939C46.5894 4.20175 46.5689 3.95481 46.5286 3.71067V3.71039H46.5284ZM0 25.1873L7.15269 13.9212H0.847589C0.794805 13.5994 0.768413 13.2421 0.768413 12.8485C0.768413 12.4732 0.795219 12.1241 0.848142 11.802H11.0471L11.1798 12.1514L3.97416 23.4437H10.7292C10.7821 23.8015 10.8088 24.1678 10.8088 24.5431C10.8088 24.9013 10.7822 25.2409 10.7293 25.5626H0.132652L0 25.1868V25.1873ZM20.6365 19.098C20.3716 19.0626 20.0359 19.0272 19.6298 18.991C19.2236 18.9556 18.8792 18.9374 18.5971 18.9374C17.5019 18.9374 16.6674 19.1431 16.0938 19.5544C15.5194 19.966 15.233 20.5915 15.233 21.432C15.233 21.9684 15.3297 22.3887 15.5241 22.6926C15.7181 22.997 15.9612 23.229 16.2526 23.39C16.5442 23.5509 16.8661 23.6494 17.2192 23.6852C17.5722 23.7209 17.908 23.7386 18.2258 23.7386C18.632 23.7386 19.0514 23.7163 19.4842 23.6715C19.9167 23.6271 20.3008 23.5598 20.6366 23.4704V19.098H20.6365ZM20.6365 16.4965C20.6365 15.4411 20.3716 14.7079 19.8419 14.2966C19.3119 13.8853 18.5437 13.6796 17.5371 13.6796C16.9185 13.6796 16.3405 13.7291 15.802 13.8274C15.2691 13.9242 14.7426 14.0539 14.2254 14.2159C13.8896 13.6257 13.7224 12.9199 13.7224 12.0968C14.3221 11.9004 14.9843 11.7484 15.7087 11.6411C16.4328 11.5337 17.1303 11.48 17.8017 11.48C19.5676 11.48 20.9098 11.8871 21.8283 12.7007C22.7463 13.5149 23.2059 14.8157 23.2059 16.6036V25.2139C22.5874 25.3568 21.8371 25.5043 20.9541 25.6564C20.0614 25.809 19.1575 25.8853 18.252 25.8844C17.3868 25.8844 16.605 25.8043 15.9077 25.6432C15.2099 25.4819 14.6182 25.2232 14.1327 24.8651C13.6465 24.5077 13.2718 24.0516 13.0065 23.4974C12.7417 22.943 12.6092 22.2725 12.6092 21.4856C12.6092 20.7169 12.7637 20.0417 13.0728 19.4602C13.3766 18.8857 13.8073 18.3901 14.3314 18.0119C14.8611 17.628 15.4704 17.3414 16.1592 17.154C16.8482 16.9661 17.5719 16.8721 18.3314 16.8721C18.8965 16.8721 19.3601 16.8858 19.7223 16.9126C20.084 16.9392 20.3888 16.9705 20.6362 17.0064V16.4967L20.6365 16.4965ZM28.6895 23.309C29.024 23.4341 29.3702 23.524 29.7228 23.5773C30.076 23.6312 30.5348 23.6579 31.1005 23.6579C31.7361 23.6579 32.3187 23.5554 32.8484 23.3497C33.3785 23.1445 33.8331 22.8267 34.2128 22.3973C34.5925 21.9684 34.8927 21.4278 35.1135 20.7744C35.3341 20.1221 35.4448 19.349 35.4448 18.4544C35.4448 17.024 35.1839 15.8885 34.6633 15.0479C34.1419 14.2076 33.2898 13.7873 32.107 13.7873C31.6655 13.7873 31.2413 13.8676 30.8357 14.0288C30.4289 14.1897 30.0672 14.4312 29.7492 14.753C29.4314 15.0748 29.1754 15.4819 28.9812 15.9736C28.7864 16.4658 28.6897 17.0509 28.6897 17.7305V23.3094V23.3091L28.6895 23.309ZM26.0669 11.8019C26.2465 11.7661 26.4275 11.7393 26.6099 11.7216C26.7993 11.7038 26.9894 11.695 27.1796 11.695C27.3557 11.695 27.541 11.7042 27.7357 11.7216C27.9297 11.7398 28.1151 11.7668 28.292 11.802C28.3094 11.8384 28.3318 11.9496 28.3583 12.1375C28.3846 12.3254 28.4111 12.5265 28.4378 12.7408C28.4643 12.9556 28.4907 13.1617 28.5172 13.3578C28.5437 13.5548 28.557 13.68 28.557 13.7336C28.7332 13.4478 28.9453 13.1703 29.1926 12.9021C29.44 12.6338 29.7361 12.3924 30.0804 12.1781C30.4248 11.9633 30.8131 11.7936 31.246 11.6683C31.6785 11.5432 32.1597 11.4801 32.6897 11.4801C33.4842 11.4801 34.2217 11.6144 34.9019 11.8828C35.5815 12.1514 36.1639 12.5665 36.6499 13.1299C37.1353 13.6933 37.5149 14.4087 37.7889 15.2757C38.0625 16.1437 38.1993 17.1673 38.1993 18.3473C38.1993 20.7075 37.5678 22.5543 36.3048 23.8863C35.0419 25.2186 33.2543 25.8844 30.9407 25.8844C30.552 25.8844 30.1549 25.8576 29.7487 25.804C29.3421 25.7501 28.9892 25.6785 28.6888 25.5895V31.893C28.4651 31.9298 28.2398 31.9567 28.0137 31.9734C27.7751 31.9909 27.5585 32 27.3643 32C27.1477 31.9991 26.9313 31.9902 26.7154 31.9734C26.4979 31.9578 26.2813 31.931 26.0665 31.893V11.802L26.0669 11.8019Z" fill="#ffffff"></path></svg>
</div>
<div class="docs-header__links">
<a href="https://zapier.com/app/developer">My Integrations</a>
<a href="https://zapier.com/developer/zap-templates">Zap Templates</a>
</div>
</div>
</div>
<!-- End Header -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-K7GFJTV"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div class="docs-toc">
<ul>
<li><a href="#zapier-cli-reference">Zapier CLI Reference</a></li>
<li><a href="#commands">Commands</a><ul>
<li><a href="#analytics">analytics</a></li>
<li><a href="#build">build</a></li>
<li><a href="#canarycreate">canary:create</a></li>
<li><a href="#canarydelete">canary:delete</a></li>
<li><a href="#canarylist">canary:list</a></li>
<li><a href="#convert">convert</a></li>
<li><a href="#deleteintegration">delete:integration</a></li>
<li><a href="#deleteversion">delete:version</a></li>
<li><a href="#deprecate">deprecate</a></li>
<li><a href="#describe">describe</a></li>
<li><a href="#envget">env:get</a></li>
<li><a href="#envset">env:set</a></li>
<li><a href="#envunset">env:unset</a></li>
<li><a href="#history">history</a></li>
<li><a href="#init">init</a></li>
<li><a href="#integrations">integrations</a></li>
<li><a href="#invoke">invoke</a></li>
<li><a href="#jobs">jobs</a></li>
<li><a href="#link">link</a></li>
<li><a href="#login">login</a></li>
<li><a href="#logout">logout</a></li>
<li><a href="#logs">logs</a></li>
<li><a href="#migrate">migrate</a></li>
<li><a href="#promote">promote</a></li>
<li><a href="#pull">pull</a></li>
<li><a href="#push">push</a></li>
<li><a href="#register">register</a></li>
<li><a href="#scaffold">scaffold</a></li>
<li><a href="#teamadd">team:add</a></li>
<li><a href="#teamget">team:get</a></li>
<li><a href="#teamremove">team:remove</a></li>
<li><a href="#test">test</a></li>
<li><a href="#upload">upload</a></li>
<li><a href="#usersadd">users:add</a></li>
<li><a href="#usersget">users:get</a></li>
<li><a href="#userslinks">users:links</a></li>
<li><a href="#usersremove">users:remove</a></li>
<li><a href="#validate">validate</a></li>
<li><a href="#versions">versions</a></li>
</ul>
</li>
</ul>
<hr />
<small><a class="generated-by" href="https://github.com/zapier/litdoc">generated by litdoc</a></small>
</div>
<div class="docs-main container-fluid">
<div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h1 id="zapier-cli-reference">Zapier CLI Reference</h1>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<p>These are the generated docs for all Zapier platform CLI commands.</p><p>You can install the CLI with <code>npm install -g zapier-platform-cli</code>.</p>
</div>
<div class="col-md-7 col-sm-12 col-height docs-code">
<pre><code class="lang-bash">$ npm install -g zapier-platform-cli
</code></pre>
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h1 id="commands">Commands</h1>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="analytics">analytics</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Show the status of the analytics that are collected. Also used to change what is collected.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform analytics</code></p><p><strong>Flags</strong></p><ul>
<li><code>-m, --mode</code> | Choose how much information to share. Anonymous mode drops the OS type and Zapier user id, but keeps command info. Identifying information is used only for debugging purposes. One of <code>[enabled | anonymous | disabled]</code>.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform analytics --mode enabled</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="build">build</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Build a pushable zip from the current directory.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform build</code></p><p>This command does the following:</p><ul>
<li>Creates a temporary folder</li>
<li>Copies all code into the temporary folder</li>
<li>Adds an entry point: <code>zapierwrapper.js</code></li>
<li>Generates and validates app definition.</li>
<li>Detects dependencies via esbuild (optional, on by default)</li>
<li>Zips up all needed <code>.js</code> files. If you want to include more files, add a &quot;includeInBuild&quot; property (array with strings of regexp paths) to your <code>.zapierapprc</code>.</li>
<li>Moves the zip to <code>build/build.zip</code> and <code>build/source.zip</code> and deletes the temp folder</li>
</ul><p>This command is typically followed by <code>zapier-platform upload</code>.</p><p><strong>Flags</strong></p><ul>
<li><code>--disable-dependency-detection</code> | Disable &quot;smart&quot; file inclusion. By default, Zapier only includes files that are required by <code>index.js</code>. If you (or your dependencies) require files dynamically (such as with <code>require(someVar)</code>), then you may see &quot;Cannot find module&quot; errors. Disabling this may make your <code>build.zip</code> too large. If that&apos;s the case, try using the <code>includeInBuild</code> option in your <code>.zapierapprc</code>. See the docs about <code>includeInBuild</code> for more info.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="canarycreate">canary:create</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Create a new canary deployment, diverting a specified percentage of traffic from one version to another for a specified duration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform canary:create VERSIONFROM VERSIONTO</code></p><p>Only one canary can be active at the same time. You can run <code>zapier-platform canary:list</code> to check. If you would like to create a new canary with different parameters, you can wait for the canary to finish, or delete it using <code>zapier-platform canary:delete a.b.c x.y.z</code>.</p><p>Note: this is similar to <code>zapier-platform migrate</code> but different in that this is temporary and will &quot;revert&quot; the changes once the specified duration is expired.</p><p><strong>Only use this command to canary traffic between non-breaking versions!</strong></p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>versionFrom</code> | Version to route traffic from</li>
<li>(required) <code>versionTo</code> | Version to canary traffic to</li>
</ul><p><strong>Flags</strong></p><ul>
<li>(required) <code>-p, --percent</code> | Percent of traffic to route to new version</li>
<li>(required) <code>-d, --duration</code> | Duration of the canary in seconds</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform canary:create 1.0.0 1.1.0 -p 25 -d 720</code></li>
<li><code>zapier-platform canary:create 2.0.0 2.1.0 --percent 50 --duration 300</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="canarydelete">canary:delete</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Delete an active canary deployment</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform canary:delete VERSIONFROM VERSIONTO</code></p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>versionFrom</code> | Version to route traffic from</li>
<li>(required) <code>versionTo</code> | Version canary traffic is routed to</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform canary:delete 1.0.0 1.1.0</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="canarylist">canary:list</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>List all active canary deployments</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform canary:list</code></p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform canary:list</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="convert">convert</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Convert a Visual Builder integration to a CLI integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform convert INTEGRATIONID PATH</code></p><p>The resulting CLI integration will be identical to its Visual Builder version and ready to push and use immediately!</p><p>If you re-run this command on an existing directory it will leave existing files alone and not clobber them.</p><p>You&apos;ll need to do a <code>zapier-platform push</code> before the new version is visible in the editor, but otherwise you&apos;re good to go.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>integrationId</code> | To get the integration/app ID, go to &quot;<a href="https://developer.zapier.com&quot;">https://developer.zapier.com&quot;</a>, click on an integration, and copy the number directly after &quot;/app/&quot; in the URL.</li>
<li>(required) <code>path</code> | Relative to your current path - IE: <code>.</code> for current directory.</li>
</ul><p><strong>Flags</strong></p><ul>
<li>(required) <code>-v, --version</code> | Convert a specific version. Required when converting a Visual Builder integration.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="deleteintegration">delete:integration</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Delete your integration (including all versions).</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform delete:integration</code></p><p>This only works if there are no active users or Zaps on any version. If you only want to delete certain versions, use the <code>zapier-platform delete:version</code> command instead. It&apos;s unlikely that you&apos;ll be able to run this on an app that you&apos;ve pushed publicly, since there are usually still users.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>delete:app</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="deleteversion">delete:version</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Delete a specific version of your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform delete:version VERSION</code></p><p>This only works if there are no users or Zaps on that version. You will probably need to have run <code>zapier-platform migrate</code> and <code>zapier-platform deprecate</code> before this command will work.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>version</code> | Specify the version to delete. It must have no users or Zaps.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="deprecate">deprecate</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Mark a non-production version of your integration as deprecated, with removal by a certain date.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform deprecate VERSION DATE</code></p><p>Use this when an integration version will not be supported or start breaking at a known date.</p><p>Zapier will send an email warning users of the deprecation once a date is set, they&apos;ll start seeing it as &quot;Deprecated&quot; in the UI, and once the deprecation date arrives, if the Zaps weren&apos;t updated, they&apos;ll be paused and the users will be emailed again explaining what happened.</p><p>After the deprecation date has passed it will be safe to delete that integration version.</p><p>Do not use this if you have non-breaking changes, such as fixing help text.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>version</code> | The version to deprecate.</li>
<li>(required) <code>date</code> | The date (YYYY-MM-DD) when Zapier will make the specified version unavailable.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform deprecate 1.2.3 2011-10-01</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="describe">describe</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Describe the current integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform describe</code></p><p>This command prints a human readable enumeration of your integrations&apos;s
triggers, searches, and creates as seen by Zapier. Useful to understand how your
resources convert and relate to different actions.</p><ul>
<li><strong>Noun</strong>: your action&apos;s noun</li>
<li><strong>Label</strong>: your action&apos;s label</li>
<li><strong>Resource</strong>: the resource (if any) this action is tied to</li>
<li><strong>Available Methods</strong>: testable methods for this action</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="envget">env:get</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Get environment variables for a version.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform env:get VERSION</code></p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>version</code> | The version to get the environment for.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform env:get 1.2.3</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="envset">env:set</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Set environment variables for a version.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform env:set VERSION [KEY-VALUE PAIRS...]</code></p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>version</code> | The version to set the environment for. Values are copied forward when a new version is created, but this command will only ever affect the specified version.</li>
<li><code>key-value pairs...</code> | The key-value pairs to set. Keys are case-insensitive. Each pair should be space separated and pairs should be separated by an <code>=</code>. For example: <code>A=123 B=456</code></li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform env:set 1.2.3 SECRET=12345 OTHER=4321</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="envunset">env:unset</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Unset environment variables for a version.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform env:unset VERSION [KEYS...]</code></p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>version</code> | The version to set the environment for.</li>
<li><code>keys...</code> | The keys to unset. Keys are case-insensitive.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform env:unset 1.2.3 SECRET OTHER</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="history">history</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Get the history of your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform history</code></p><p>History includes all the changes made over the lifetime of your integration. This includes everything from creation, updates, migrations, admins, and invitee changes, as well as who made the change and when.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="init">init</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Initialize a new Zapier integration with a project template.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform init PATH</code></p><p>After running this, you&apos;ll have a new integration in the specified directory. If you re-run this command on an existing directory, it will prompt before overwriting any existing files.</p><p>This doesn&apos;t register or deploy the integration with Zapier - try the <code>zapier-platform register</code> and <code>zapier-platform push</code> commands for that!</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>path</code> | Where to create the new integration. If the directory doesn&apos;t exist, it will be created. If the directory isn&apos;t empty, we&apos;ll ask for confirmation</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-t, --template</code> | The template to start your integration with. One of <code>[basic-auth | callback | custom-auth | digest-auth | dynamic-dropdown | files | minimal | oauth1-trello | oauth2 | search-or-create | session-auth | typescript]</code>.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform init myapp</code></li>
<li><code>zapier-platform init ./path/myapp --template oauth2</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="integrations">integrations</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>List integrations you have admin access to.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform integrations</code></p><p>This command also checks the current directory for a linked integration.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>apps</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="invoke">invoke</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Invoke an auth operation, a trigger, or a create/search action locally.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform invoke [ACTIONTYPE] [ACTIONKEY]</code></p><p>This command emulates how Zapier production environment would invoke your integration. It runs code locally, so you can use this command to quickly test your integration without deploying it to Zapier. This is especially useful for debugging and development.</p><p>This command loads environment variables and <code>authData</code> from the <code>.env</code> file in the current directory. If you don&apos;t have a <code>.env</code> file yet, you can use the <code>zapier-platform invoke auth start</code> command to help you initialize it, or you can manually create it.</p><p>The <code>zapier-platform invoke auth start</code> subcommand will prompt you for the necessary auth fields and save them to the <code>.env</code> file. For OAuth2, it will start a local HTTP server, open the authorization URL in the browser, wait for the OAuth2 redirect, and get the access token.</p><p>Each line in the <code>.env</code> file should follow one of these formats:</p><ul>
<li><code>VAR_NAME=VALUE</code> for environment variables</li>
<li><code>authData_FIELD_KEY=VALUE</code> for auth data fields</li>
</ul><p>For example, a <code>.env</code> file for an OAuth2 integration might look like this:</p>
</div>
<div class="col-md-7 col-sm-12 col-height docs-code">
<pre><code>CLIENT_ID=&apos;your_client_id&apos;
CLIENT_SECRET=&apos;your_client_secret&apos;
authData_access_token=&apos;1234567890&apos;
authData_refresh_token=&apos;abcdefg&apos;
authData_account_name=&apos;zapier&apos;
</code></pre>
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<p>To test if the auth data is correct, run either one of these:</p>
</div>
<div class="col-md-7 col-sm-12 col-height docs-code">
<pre><code>zapier-platform invoke auth test # invokes authentication.test method
zapier invoke auth label # invokes authentication.test and renders connection label
</code></pre>
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<p>To refresh stale auth data for OAuth2 or session auth, run <code>zapier-platform invoke auth refresh</code>.</p><p>Once you have the correct auth data, you can test an trigger, a search, or a create action. For example, here&apos;s how you invoke a trigger with the key <code>new_recipe</code>:</p>
</div>
<div class="col-md-7 col-sm-12 col-height docs-code">
<pre><code>zapier-platform invoke trigger new_recipe
</code></pre>
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<p>To add input data, use the <code>--inputData</code> flag. The input data can come from the command directly, a file, or stdin. See <strong>EXAMPLES</strong> below.</p><p>When you miss any command arguments, such as ACTIONTYPE or ACTIONKEY, the command will prompt you interactively. If you don&apos;t want to get interactive prompts, use the <code>--non-interactive</code> flag.</p><p>The <code>--debug</code> flag will show you the HTTP request logs and any console logs you have in your code.</p><p>The following is a non-exhaustive list of current limitations and may be supported in the future:</p><ul>
<li>Hook triggers, including REST hook subscribe/unsubscribe</li>
<li>Line items</li>
<li>Output hydration</li>
<li>File upload</li>
<li>Dynamic dropdown pagination</li>
<li>Function-based connection label</li>
<li>Buffered create actions</li>
<li>Search-or-create actions</li>
<li>Search-powered fields</li>
<li>Field choices</li>
<li>autoRefresh for OAuth2 and session auth</li>
</ul><p><strong>Arguments</strong></p><ul>
<li><code>actionType</code> | The action type you want to invoke.</li>
<li><code>actionKey</code> | The trigger/action key you want to invoke. If ACTIONTYPE is &quot;auth&quot;, this can be &quot;label&quot;, &quot;refresh&quot;, &quot;start&quot;, or &quot;test&quot;.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-i, --inputData</code> | The input data to pass to the action. Must be a JSON-encoded object. The data can be passed from the command directly like &apos;{&quot;key&quot;: &quot;value&quot;}&apos;, read from a file like @file.json, or read from stdin like @-.</li>
<li><code>--isFillingDynamicDropdown</code> | Set bundle.meta.isFillingDynamicDropdown to true. Only makes sense for a polling trigger. When true in production, this poll is being used to populate a dynamic dropdown.</li>
<li><code>--isLoadingSample</code> | Set bundle.meta.isLoadingSample to true. When true in production, this run is initiated by the user in the Zap editor trying to pull a sample.</li>
<li><code>--isPopulatingDedupe</code> | Set bundle.meta.isPopulatingDedupe to true. Only makes sense for a polling trigger. When true in production, the results of this poll will be used initialize the deduplication list rather than trigger a Zap. This happens when a user enables a Zap.</li>
<li><code>--limit</code> | Set bundle.meta.limit. Only makes sense for a trigger. When used in production, this indicates the number of items you should fetch. -1 means no limit. Defaults to <code>-1</code>.</li>
<li><code>-p, --page</code> | Set bundle.meta.page. Only makes sense for a trigger. When used in production, this indicates which page of items you should fetch. First page is 0.</li>
<li><code>--non-interactive</code> | Do not show interactive prompts.</li>
<li><code>-z, --timezone</code> | Set the default timezone for datetime field interpretation. If not set, defaults to America/Chicago, which matches Zapier production behavior. Find the list timezone names at <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">https://en.wikipedia.org/wiki/List_of_tz_database_time_zones</a>. Defaults to <code>America/Chicago</code>.</li>
<li><code>--redirect-uri</code> | Only used by <code>auth start</code> subcommand. The redirect URI that will be passed to the OAuth2 authorization URL. Usually this should match the one configured in your server&apos;s OAuth2 application settings. A local HTTP server will be started to listen for the OAuth2 callback. If your server requires a non-localhost or HTTPS address for the redirect URI, you can set up port forwarding to route the non-localhost or HTTPS address to localhost. Defaults to <code>http://localhost:9000</code>.</li>
<li><code>--local-port</code> | Only used by <code>auth start</code> subcommand. The local port that will be used to start the local HTTP server to listen for the OAuth2 callback. This port can be different from the one in the redirect URI if you have port forwarding set up. Defaults to <code>9000</code>.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform invoke</code></li>
<li><code>zapier-platform invoke auth start</code></li>
<li><code>zapier-platform invoke auth refresh</code></li>
<li><code>zapier-platform invoke auth test</code></li>
<li><code>zapier-platform invoke auth label</code></li>
<li><code>zapier-platform invoke trigger new_recipe</code></li>
<li><code>zapier-platform invoke create add_recipe --inputData &apos;{&quot;title&quot;: &quot;Pancakes&quot;}&apos;</code></li>
<li><code>zapier-platform invoke search find_recipe -i @file.json</code></li>
<li><code>cat file.json | zapier invoke trigger new_recipe -i @-</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="jobs">jobs</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Lists ongoing migration or promotion jobs for the current integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform jobs</code></p><p>A job represents a background process that will be queued up when users execute a &quot;migrate&quot; or &quot;promote&quot; command for the current integration.</p><p>Each job will be added to the end of a queue of &quot;promote&quot; and &quot;migration&quot; jobs where the &quot;Job Stage&quot; will then be initialized with &quot;requested&quot;.</p><p>Job stages will then move to &quot;estimating&quot;, &quot;in_progress&quot; and finally one of four &quot;end&quot; stages: &quot;complete&quot;, &quot;aborted&quot;, &quot;errored&quot; or &quot;paused&quot;.</p><p>Job times will vary as it depends on the size of the queue and how many users your integration has.</p><p>Jobs are returned from oldest to newest.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform jobs</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="link">link</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Link the current directory with an existing integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform link</code></p><p>This command generates a <code>.zapierapprc</code> file in the directory in which it&apos;s ran. This file ties this code to an integration and is referenced frequently during <code>push</code> and <code>validate</code> operations. This file should be checked into source control.</p><p>If you&apos;re starting an integration from scratch, use <code>zapier-platform init</code> instead.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="login">login</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Configure your <code>~/.zapierrc</code> with a deploy key.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform login</code></p><p><strong>Flags</strong></p><ul>
<li><code>-s, --sso</code> | Use this flag if you log into Zapier a Single Sign-On (SSO) button and don&apos;t have a Zapier password.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="logout">logout</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Deactivate your active deploy key and reset <code>~/.zapierrc</code>.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform logout</code></p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="logs">logs</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Print recent logs.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform logs</code></p><p>Logs are created when your integration is run as part of a Zap. They come from explicit calls to <code>z.console.log()</code>, usage of <code>z.request()</code>, and any runtime errors.</p><p>This won&apos;t show logs from running locally with <code>zapier-platform test</code>, since those never hit our server.</p><p><strong>Flags</strong></p><ul>
<li><code>-v, --version</code> | Filter logs to the specified version.</li>
<li><code>-s, --status</code> | Filter logs to only see errors or successes One of <code>[any | success | error]</code>. Defaults to <code>any</code>.</li>
<li><code>-t, --type</code> | See logs of the specified type One of <code>[console | bundle | http]</code>. Defaults to <code>console</code>.</li>
<li><code>--detailed</code> | See extra info, like request/response body and headers.</li>
<li><code>-u, --user</code> | Only show logs for this user. Defaults to your account. Defaults to <code>me</code>.</li>
<li><code>--limit</code> | Cap the number of logs returned. Max is 50 (also the default) Defaults to <code>50</code>.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="migrate">migrate</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Migrate a percentage of users or a single user from one version of your integration to another.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform migrate FROMVERSION TOVERSION [PERCENT]</code></p><p>Start a migration to move users between different versions of your integration. You may also &quot;revert&quot; by simply swapping the from/to verion strings in the command line arguments (i.e. <code>zapier-platform migrate 1.0.1 1.0.0</code>).</p><p><strong>Only use this command to migrate users between non-breaking versions, use <code>zapier-platform deprecate</code> if you have breaking changes!</strong></p><p>Migration time varies based on the number of affected Zaps. Be patient and check <code>zapier-platform jobs</code> to track the status. Or use <code>zapier-platform history</code> if you want to see older jobs.</p><p>Since a migration is only for non-breaking changes, users are not emailed about the update/migration. It will be a transparent process for them.</p><p>We recommend migrating a small subset of users first, via the percent argument, then watching error logs of the new version for any sort of odd behavior. When you feel confident there are no bugs, go ahead and migrate everyone. If you see unexpected errors, you can revert.</p><p>You can migrate a specific user&apos;s Zaps by using <code>--user</code> (i.e. <code>zapier-platform migrate 1.0.0 1.0.1 --user=user@example.com</code>). This will migrate Zaps that are private for that user. Zaps that are</p><ul>
<li><a href="https://help.zapier.com/hc/en-us/articles/8496277647629">shared across the team</a>,</li>
<li><a href="https://help.zapier.com/hc/en-us/articles/8496326497037-Share-app-connections-with-your-team">shared app connections</a>, or</li>
<li>in a <a href="https://help.zapier.com/hc/en-us/articles/22330977078157-Collaborate-with-members-of-your-Team-or-Company-account">team/company account</a></li>
</ul><p>will <strong>not</strong> be migrated.</p><p>Alternatively, you can pass the <code>--account</code> flag, (i.e. <code>zapier-platform migrate 1.0.0 1.0.1 --account=account@example.com</code>). This will migrate all Zaps owned by the user, Private &amp; Shared, within all accounts for which the specified user is a member.</p><p><strong>The <code>--account</code> flag should be used cautiously as it can break shared Zaps for other users in Team or Enterprise accounts.</strong></p><p>You cannot pass both <code>PERCENT</code> and <code>--user</code> or <code>--account</code>.</p><p>You cannot pass both <code>--user</code> and <code>--account</code>.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>fromVersion</code> | The version FROM which to migrate users.</li>
<li>(required) <code>toVersion</code> | The version TO which to migrate users.</li>
<li><code>percent</code> | Percentage (between 1 and 100) of users to migrate.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>--user</code> | Migrates all of a users&apos; Private Zaps within all accounts for which the specified user is a member</li>
<li><code>--account</code> | Migrates all of a users&apos; Zaps, Private &amp; Shared, within all accounts for which the specified user is a member</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform migrate 1.0.0 1.0.1</code></li>
<li><code>zapier-platform migrate 1.0.1 2.0.0 10</code></li>
<li><code>zapier-platform migrate 2.0.0 2.0.1 --user=user@example.com</code></li>
<li><code>zapier-platform migrate 2.0.0 2.0.1 --account=account@example.com</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="promote">promote</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Promote a specific version to public access.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform promote VERSION</code></p><p>Promote an integration version into production (non-private) rotation, which means new users can use this integration version.</p><ul>
<li>This <strong>does</strong> mark the version as the official public version - all other versions &amp; users are grandfathered.</li>
<li>This does <strong>NOT</strong> build/upload or deploy a version to Zapier - you should <code>zapier-platform push</code> first.</li>
<li>This does <strong>NOT</strong> move old users over to this version - <code>zapier-platform migrate 1.0.0 1.0.1</code> does that.</li>
<li>This does <strong>NOT</strong> recommend old users stop using this version - <code>zapier-platform deprecate 1.0.0 2017-01-01</code> does that.</li>
</ul><p>Promotes are an inherently safe operation for all existing users of your integration.</p><p>After a promotion, go to your developer platform to <a href="https://platform.zapier.com/manage/user-feedback#3-close-resolved-issues">close issues that were resolved</a> in the updated version.</p><p>If your integration is private and passes our integration checks, this will give you a URL to a form where you can fill in additional information for your integration to go public. After reviewing, the Zapier team will approve to make it public if there are no issues or decline with feedback.</p><p>Check <code>zapier-platform jobs</code> to track the status of the promotion. Or use <code>zapier-platform history</code> if you want to see older jobs.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>version</code> | The version you want to promote.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-y, --yes</code> | Automatically answer &quot;yes&quot; to any prompts. Useful if you want to avoid interactive prompts to run this command in CI.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform promote 1.0.0</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="pull">pull</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Retrieve and update your local integration files with the latest version.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform pull</code></p><p>This command updates your local integration files with the latest version. You will be prompted with a confirmation dialog before continuing if there any destructive file changes.</p><p>Zapier may release new versions of your integration with bug fixes or new features. In the event this occurs, you will be unable to do the following until your local files are updated by running <code>zapier-platform pull</code>:</p><ul>
<li>push to the promoted version</li>
<li>promote a new version</li>
<li>migrate users from one version to another</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="push">push</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Build and upload the current integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform push</code></p><p>This command is the same as running <code>zapier-platform build</code> and <code>zapier-platform upload</code> in sequence. See those for more info.</p><p><strong>Flags</strong></p><ul>
<li><code>--disable-dependency-detection</code> | Disable &quot;smart&quot; file inclusion. By default, Zapier only includes files that are required by <code>index.js</code>. If you (or your dependencies) require files dynamically (such as with <code>require(someVar)</code>), then you may see &quot;Cannot find module&quot; errors. Disabling this may make your <code>build.zip</code> too large. If that&apos;s the case, try using the <code>includeInBuild</code> option in your <code>.zapierapprc</code>. See the docs about <code>includeInBuild</code> for more info.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="register">register</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Register a new integration in your account, or update the existing one if a <code>.zapierapprc</code> file is found.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform register [TITLE]</code></p><p>This command creates a new integration and links it in the <code>./.zapierapprc</code> file. If <code>.zapierapprc</code> already exists, it will ask you if you want to update the currently-linked integration, as opposed to creating a new one.</p><p>After registering a new integration, you can run <code>zapier-platform push</code> to build and upload your integration for use in the Zapier editor. This will change <code>.zapierapprc</code>, which identifies this directory as holding code for a specific integration.</p><p><strong>Arguments</strong></p><ul>
<li><code>title</code> | Your integration&apos;s public title. Asked interactively if not present.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-D, --desc</code> | A sentence describing your app in 140 characters or less, e.g. &quot;Trello is a team collaboration tool to organize tasks and keep projects on track.&quot;</li>
<li><code>-u, --url</code> | The homepage URL of your app, e.g., <a href="https://example.com">https://example.com</a>.</li>
<li><code>-a, --audience</code> | Are you building a public or private integration?</li>
<li><code>-r, --role</code> | What is your relationship with the app you&apos;re integrating with Zapier?</li>
<li><code>-c, --category</code> | How would you categorize your app? Choose the most appropriate option for your app&apos;s core features.</li>
<li><code>-s, --subscribe</code> | Get tips and recommendations about this integration along with our monthly newsletter that details the performance of your integration and the latest Zapier news.</li>
<li><code>-y, --yes</code> | Assume yes for all yes/no prompts. This flag will also update an existing integration (as opposed to registering a new one) if a .zapierapprc file is found.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform register</code></li>
<li><code>zapier-platform register &quot;My Cool Integration&quot;</code></li>
<li><code>zapier-platform register &quot;My Cool Integration&quot; --desc &quot;My Cool Integration helps you integrate your apps with the apps that you need.&quot; --no-subscribe</code></li>
<li><code>zapier-platform register &quot;My Cool Integration&quot; --url &quot;https://www.zapier.com&quot; --audience private --role employee --category marketing-automation</code></li>
<li><code>zapier-platform register --subscribe</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="scaffold">scaffold</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Add a starting trigger, create, search, or resource to your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform scaffold ACTIONTYPE NOUN</code></p><p>The first argument should be one of <code>trigger|search|create|resource</code> followed by the noun that this will act on (something like &quot;contact&quot; or &quot;deal&quot;).</p><p>The scaffold command does two general things:</p><ul>
<li>Creates a new file (such as <code>triggers/contact.js</code>)</li>
<li>Imports and registers it inside your <code>index.js</code></li>
</ul><p>You can mix and match several options to customize the created scaffold for your project.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>actionType</code> | undefined</li>
<li>(required) <code>noun</code> | undefined</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --dest</code> | Specify the new file&apos;s directory. Use this flag when you want to create a different folder structure such as <code>src/triggers</code> instead of the default <code>triggers</code>. Defaults to <code>[triggers|searches|creates]/{noun}</code>.</li>
<li><code>--test-dest</code> | Specify the new test file&apos;s directory. Use this flag when you want to create a different folder structure such as <code>src/triggers</code> instead of the default <code>triggers</code>. Defaults to <code>test/[triggers|searches|creates]/{noun}</code>.</li>
<li><code>-e, --entry</code> | Supply the path to your integration&apos;s root (<code>index.js</code>). Only needed if your <code>index.js</code> is in a subfolder, like <code>src</code>. Defaults to <code>index.js</code>.</li>
<li><code>-f, --force</code> | Should we overwrite an exisiting trigger/search/create file?</li>
<li><code>--no-help</code> | When scaffolding, should we skip adding helpful intro comments? Useful if this isn&apos;t your first rodeo.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform scaffold trigger contact</code></li>
<li><code>zapier-platform scaffold search contact --dest=my_src/searches</code></li>
<li><code>zapier-platform scaffold create contact --entry=src/index.js</code></li>
<li><code>zapier-platform scaffold resource contact --force</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="teamadd">team:add</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Add a team member to your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform team:add EMAIL ROLE [MESSAGE]</code></p><p>These users come in three levels:</p><ul>
<li><code>admin</code>, who can edit everything about the integration</li>
<li><code>collaborator</code>, who has read-only access for the app, and will receive periodic email updates. These updates include quarterly health scores and more.</li>
<li><code>subscriber</code>, who can&apos;t directly access the app, but will receive periodic email updates. These updates include quarterly health scores and more.</li>
</ul><p>Team members can be freely added and removed.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>email</code> | The user to be invited. If they don&apos;t have a Zapier account, they&apos;ll be prompted to create one.</li>
<li>(required) <code>role</code> | The level the invited team member should be at. Admins can edit everything and get email updates. Collaborators have read-access to the app and get email updates. Subscribers only get email updates.</li>
<li><code>message</code> | A message sent in the email to your team member, if you need to provide context. Wrap the message in quotes to ensure spaces get saved.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform team:add bruce@wayne.com admin</code></li>
<li><code>zapier-platform team:add robin@wayne.com collaborator &quot;Hey Robin, check out this app.&quot;</code></li>
<li><code>zapier-platform team:add alfred@wayne.com subscriber &quot;Hey Alfred, check out this app.&quot;</code></li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>team:invite</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="teamget">team:get</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Get team members involved with your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform team:get</code></p><p>These users come in three levels:</p><ul>
<li><code>admin</code>, who can edit everything about the integration</li>
<li><code>collaborator</code>, who has read-only access for the app, and will receive periodic email updates. These updates include quarterly health scores and more.</li>
<li><code>subscriber</code>, who can&apos;t directly access the app, but will receive periodic email updates. These updates include quarterly health scores and more.</li>
</ul><p>Use the <code>zapier-platform team:add</code> and <code>zapier-platform team:remove</code> commands to modify your team.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>team:list</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="teamremove">team:remove</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Remove a team member from all versions of your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform team:remove</code></p><p>Admins will immediately lose write access to the integration.
Collaborators will immediately lose read access to the integration.
Subscribers won&apos;t receive future email updates.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>team:delete</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="test">test</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Test your integration via the &quot;test&quot; script in your &quot;package.json&quot;.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform test</code></p><p>This command is a wrapper around <code>npm test</code> that also validates the structure of your integration and sets up extra environment variables.</p><p>You can pass any args/flags after a <code>--</code>; they will get forwarded onto your test script.</p><p><strong>Flags</strong></p><ul>
<li><code>--skip-validate</code> | Forgo running <code>zapier-platform validate</code> before tests are run. This will speed up tests if you&apos;re modifying functionality of an existing integration rather than adding new actions.</li>
<li><code>--yarn</code> | Use <code>yarn</code> instead of <code>npm</code>. This happens automatically if there&apos;s a <code>yarn.lock</code> file, but you can manually force <code>yarn</code> if you run tests from a sub-directory.</li>
<li><code>--pnpm</code> | Use <code>pnpm</code> instead of <code>npm</code>. This happens automatically if there&apos;s a <code>pnpm-lock.yaml</code> file, but you can manually force <code>pnpm</code> if you run tests from a sub-directory.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform test</code></li>
<li><code>zapier-platform test --skip-validate -- -t 30000 --grep api</code></li>
<li><code>zapier-platform test -- -fo --testNamePattern &quot;auth pass&quot;</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="upload">upload</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Upload the latest build of your integration to Zapier.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform upload</code></p><p>This command sends both build/build.zip and build/source.zip to Zapier for use.</p><p>Typically we recommend using <code>zapier-platform push</code>, which does a build and upload, rather than <code>upload</code> by itself.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="usersadd">users:add</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Add a user to some or all versions of your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform users:add EMAIL [VERSION]</code></p><p>When this command is run, we&apos;ll send an email to the user inviting them to try your integration. You can track the status of that invite using the <code>zapier-platform users:get</code> command.</p><p>Invited users will be able to see your integration&apos;s name, logo, and description. They&apos;ll also be able to create Zaps using any available triggers and actions.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>email</code> | The user to be invited. If they don&apos;t have a Zapier account, they&apos;ll be prompted to create one.</li>
<li><code>version</code> | A version string (like 1.2.3). Optional, used only if you want to invite a user to a specific version instead of all versions.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-f, --force</code> | Skip confirmation. Useful for running programatically.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform users:add bruce@wayne.com</code></li>
<li><code>zapier-platform users:add alfred@wayne.com 1.2.3</code></li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>users:invite</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="usersget">users:get</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Get a list of users who have been invited to your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform users:get</code></p><p>Note that this list of users is NOT a comprehensive list of everyone who is using your integration. It only includes users who were invited directly by email (using the <code>zapier-platform users:add</code> command or the web UI). Users who joined by clicking links generated using the <code>zapier-platform user:links</code> command won&apos;t show up here.</p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>users:list</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="userslinks">users:links</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Get a list of links that are used to invite users to your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform users:links</code></p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="usersremove">users:remove</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Remove a user from all versions of your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform users:remove EMAIL</code></p><p>When this command is run, their Zaps will immediately turn off. They won&apos;t be able to use your app again until they&apos;re re-invited or it has gone public. In practice, this command isn&apos;t run often as it&apos;s very disruptive to users.</p><p><strong>Arguments</strong></p><ul>
<li>(required) <code>email</code> | The user to be removed.</li>
</ul><p><strong>Flags</strong></p><ul>
<li><code>-f, --force</code> | Skips confirmation. Useful for running programatically.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
</ul><p><strong>Aliases</strong></p><ul>
<li><code>users:delete</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="validate">validate</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>Validate your integration.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform validate</code></p><p>Run the standard validation routine powered by json-schema that checks your integration for any structural errors. This is the same routine that runs during <code>zapier-platform build</code>, <code>zapier-platform upload</code>, <code>zapier-platform push</code> or even as a test in <code>zapier-platform test</code>.</p><p><strong>Flags</strong></p><ul>
<li><code>--without-style</code> | Forgo pinging the Zapier server to run further checks.</li>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul><p><strong>Examples</strong></p><ul>
<li><code>zapier-platform validate</code></li>
<li><code>zapier-platform validate --without-style</code></li>
<li><code>zapier-platform validate --format json</code></li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<h2 id="versions">versions</h2>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div><div class="row">
<div class="row-height">
<div class="col-md-5 col-sm-12 col-height docs-primary">
<blockquote>
<p>List the versions of your integration available for use in the Zapier editor.</p>
</blockquote><p><strong>Usage</strong>: <code>zapier-platform versions</code></p><p><strong>Flags</strong></p><ul>
<li><code>-d, --debug</code> | Show extra debugging output.</li>
<li><code>-f, --format</code> | Change the way structured data is presented. If &quot;json&quot; or &quot;raw&quot;, you can pipe the output of the command into other tools, such as jq. One of <code>[plain | json | raw | row | table]</code>. Defaults to <code>table</code>.</li>
</ul>
</div>
<div class="col-md-7 col-sm-12 col-height is-empty docs-code">
</div>
</div>
</div>
</div>
<script type="text/javascript" src="./lib/lodash.custom.min.js"></script>
<script type="text/javascript" src="./docs.js"></script>
</body>
</html>