# How to Send a Webhook From Apple Shortcuts

> Send a webhook from any iPhone shortcut with Get Contents of URL. Set POST, add headers, build a JSON body, and see the easier way to send texts.

Last updated: 2026-10-23
Canonical HTML page: https://www.fwrdsms.com/blog/apple-shortcuts-webhook
Published: 2026-10-17

To send a webhook from Apple Shortcuts, add the Get Contents of URL action, paste the webhook address, set Method to POST, and build the Request Body as JSON. It works in any shortcut and can carry custom headers if the endpoint wants a key. For incoming texts, Fwrd’s action builds the request for you.

**What you need:** an iPhone with the Shortcuts app (it’s already on your phone) and a webhook address, such as a Discord or Slack channel webhook, a Zapier, Make or n8n trigger, or your own server. To use Fwrd, you also need iOS 26 or later.

## What does Get Contents of URL do?

Get Contents of URL is Apple’s built-in action for talking to a web address: it sends a request and hands back the answer. With the method set to POST, it’s a webhook sender.

Apple’s Shortcuts User Guide page [Request your first API](https://support.apple.com/guide/shortcuts/request-your-first-api-apd58d46713f/ios) (read 2026-10-17) says Show More reveals five methods: GET, POST, PUT, PATCH and DELETE. Switching to POST, PUT or PATCH adds a Request Body parameter, which lets you send JSON, a Form or a File. A webhook almost always wants POST with JSON.

## How to send a webhook from a shortcut

1. **Start a shortcut.** Open Shortcuts and tap + to make a new shortcut.

2. **Add the action.** Search for Get Contents of URL and add it. Tap its URL field and paste your whole webhook address.

3. **Set the method.** Tap Show More on the action, then change Method from GET to POST.

4. **Build the JSON body.** Set Request Body to JSON and add a text field. Its key is the name your service reads: Discord reads `content` and Slack reads `text`. Type your message as the value, or pick a variable from an earlier step.

5. **Add a header if the endpoint needs one.** The action’s options also take headers, as Matthew Cassinelli’s [Get Contents of URL reference](https://matthewcassinelli.com/actions/get-contents-of-url/) lists. A common one is the key `Authorization` with the value `Bearer`, a space, and your token. Discord and Slack webhooks need none.

6. **Run it.** Tap the play button. The message lands in your channel or workflow, and whatever the server answers comes back as the action’s output.

### What does the JSON body look like?

With one text field named `content`, Shortcuts sends a body like this, which is all a Discord webhook needs:

```json
{
  "content": "Hello from Shortcuts"
}
```

Discord’s [webhook documentation](https://docs.discord.com/developers/resources/webhook) asks for one of content, file, embeds or poll. For Slack, name the field `text` instead, as in Slack’s [incoming webhook guide](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks/). Zapier, Make and n8n take any field names you like.

## How do you send incoming texts to a webhook?

Put the same action inside a Message automation, so it runs each time a matching text arrives. Fwrd’s action builds the body for you, so the automation only has to hand it the text.

The automation part is the same either way: in Shortcuts, create a Message automation, choose Message Contains with a word your texts share, and make it run without asking. On iOS 26, that means Run Immediately, then tap Next and Create New Shortcut. The [automation guide](https://www.fwrdsms.com/guides/automation) walks through iOS 26 and iOS 27 step by step.

Here is the setup:

- **In Fwrd.** Add a Webhook destination in [Fwrd](https://apps.apple.com/app/apple-store/id6759069713?pt=128544281&ct=blog-shortcuts-webhook&mt=8) and paste your HTTPS address. Then add Fwrd’s Forward Message to All Destinations to the automation (on iOS 26, tap Add Action first) and set its Message to Shortcut Input (on iOS 26, Shortcut Input, then Message). [Forward iPhone SMS to a webhook](https://www.fwrdsms.com/iphone-sms-to-webhook) has every tap.

Fwrd posts JSON with `content` and `text`, both holding the message exactly as it arrived, so receivers that read either field get it. Turn on Include Who Sent It in Fwrd’s Settings and fill in the Sender field on Fwrd’s action, and the body also gets a `sender` field. Each text carries an `Idempotency-Key` header that stays the same on every attempt, so your server can drop repeats. The [webhook guide](https://www.fwrdsms.com/guides/webhook) covers the server side, and [Zapier, Make or n8n](https://www.fwrdsms.com/iphone-sms-to-zapier-make-n8n) has the steps for each one.

Watch the setup video on the [setup guide](https://www.fwrdsms.com/guides/webhook).

## What Fwrd adds for texts

| | Get Contents of URL | Fwrd’s action |
|---|---|---|
| Custom headers | Yes, any you add | No; it sends no login header |
| JSON body | You build each field | `content` and `text`, plus `sender` if you turn it on |
| Where the address lives | Inside the shortcut | The iPhone’s Keychain |
| Choosing which texts | The automation’s word, plus If actions you add | The automation’s word, plus filters for words, codes and hours |

The pieces that matter for texts:

- **No account.** Fwrd has no sign-in and no Fwrd server; each text goes from your iPhone straight to your URL.
- **Retries.** If a send times out, gets a 429 or a 5xx, or loses its connection, Fwrd tries again, up to twice.
- **Eight destinations from one action.** Email, another phone or iMessage, WhatsApp, Discord, Slack, Microsoft Teams, Telegram and your own webhook. Fwrd posts to the last five itself and hands texts to Apple’s or WhatsApp’s own send action for the first three.
- **A history on the phone** shows each forward and whether it was delivered.

## What each one can’t do

- **Fwrd can’t add custom headers.** It sends no login header, so the endpoint has to accept the request without one, as Discord, Slack, Zapier, Make and n8n webhooks do.
- **Fwrd needs a public HTTPS address.** It turns down IP addresses and names ending in .local, .internal and similar, and it refuses redirects, so paste the final address. For n8n, paste the production URL, not the test URL, and publish the workflow; n8n’s [Webhook node docs](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/) say that’s when the production URL starts answering.
- **Shortcuts can’t do every login.** Apple’s [API limitations](https://support.apple.com/guide/shortcuts/api-limitations-apd891a6c84e/ios) page says Shortcuts can’t handle OAuth 2 logins that need you to type a username and password on a login page.
- **Texts need the phone on.** For incoming texts, the iPhone must be on and online, and only new texts that match the automation are sent.

## Questions people ask next

### Can a shortcut send a GET request instead?

Yes. Leave Method on GET, the default, and Get Contents of URL fetches the address and returns what the server sends back. Some services trigger on a plain GET with values in the URL.

### Can I send form data instead of JSON?

Yes. Set Request Body to Form and add fields the same way. Apple’s guide lists JSON, Form and File as the three Request Body choices.

### Does Fwrd work with Zapier, Make or n8n?

Yes. Paste a Zapier catch hook, a Make custom webhook or an n8n Webhook node’s production URL into Fwrd’s Webhook destination, with the n8n workflow published, and each matching text starts your workflow.

### What does Fwrd cost?

Fwrd is free for 15 forwards a month, and a text counts once however many places it goes. Fwrd Pro removes the limit for $4.99 a month or $29.99 a year in the US.

## Keep reading

- [Is there an iPhone SMS API?](https://www.fwrdsms.com/blog/iphone-sms-api)
- [Send iPhone texts to Home Assistant](https://www.fwrdsms.com/blog/iphone-texts-to-home-assistant)
