lang_undefined
lang_undefined
lang_undefined
- Pair an Android phone in your dashboard (Devices, Add device, scan the QR code) and copy its device ID.
- Create an API key under Tools, API Keys, with the sms_send permission (and wa_send for WhatsApp). Copy the secret into an environment variable; never into source.
- A Zapier or Make account. In Zapier use the Webhooks by Zapier action (Custom Request or POST); in Make use the HTTP module (Make a request).
lang_undefined
Four fields. The only one people get wrong is the payload type: it must be form, not JSON.
- Add your trigger (new booking, new row, new order).
- Add an action: Webhooks by Zapier, POST (Zapier) or HTTP, Make a request (Make).
- Fill the fields from the table below, mapping the phone and any names or times from the trigger.
- Test the step. You should see status 200 and a messageId in the response, and the text on your own phone if you used your number.
Fields, exactly.
| Field | Value |
|---|---|
| URL | https://sharksms.com/api/send/sms |
| Method | POST |
| Payload type | form (Zapier: "Payload Type: form"; Make: "Body type: application/x-www-form-urlencoded") |
| Data | secret = your API secret · mode = devices · device = your device ID · sim = 1 · phone = the mapped phone field · message = your text with mapped fields |
A successful test returns this. If you get status 400, the payload type is JSON or a field name is misspelled; if 401, the secret is wrong; if 404, the device ID is not one of yours.
{"status":200,"message":"Message has been queued for sending!","data":{"messageId":123}}
lang_undefined
Send to your own phone first. Then call GET /api/get/sms.message with the returned messageId and type=sent and watch it go queued, sent. If it stays queued, the paired phone is off, offline or battery-optimised; see the Android gateway page.
lang_undefined
- The API reads a form body, not JSON. A JSON body is ignored and you get status 400 for missing parameters.
- HTTP is always 200. Branch on the JSON status field, never on the HTTP status.
- No deduplication. A retry after a timeout can send twice; record the messageId on success and check status before resending.
- Phone numbers from spreadsheets often lose their leading + or 0. Use a Formatter step to normalise to international format (+15551234567) before the request.