Builders Program

Build with us for a whole month. Unlimited usage and add-ons, weekly calls and your own Slack channel.

Learn more

Command Palette

Search for a command to run...

Polymorfa vs Gupshup

Gupshup charges a fee on every message, including each one your customers send you.

Gupshup charges $0.001 on every message, including each one your customers send you, and bills calls by the second on top of Meta.1 Polymorfa bills a linked-device number per online day whatever the volume, and takes Meta's request shape for linked-device and Cloud API numbers.2,3

Fee on 1 million messages a month
Gupshup
$1,000, before Meta fees
Polymorfa
No per-message fee on linked-device numbers
Linked devices and the official Cloud API, behind one API.3
2 routes
Per message. A number costs credits only for the days it is online.2
$0
To place and answer calls: in the browser, in server code with the raw audio, and on your PBX over SIP.4,5
3 ways
In the hosted MCP server, for agents that run WhatsApp.6
195 tools

Three reasons teams move from Gupshup

  1. 01

    Meta's request shape, not form fields

    Polymorfa's Graph API takes Meta's JSON body for both linked-device and Cloud API numbers, so code written against Meta's documentation works without a translation layer.3,7

    Gupshup: Gupshup's self-serve send endpoint takes form-encoded fields with the message as a JSON string inside one of them.8

    gupshup.sh
    curl https://api.gupshup.io/wa/api/v1/msg \
      -H "apikey: $GUPSHUP_API_KEY" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      --data-urlencode 'channel=whatsapp' \
      --data-urlencode 'source=15550001111' \
      --data-urlencode 'destination=15551234567' \
      --data-urlencode 'message={"type":"text","text":"Your order shipped."}' \
      --data-urlencode 'src.name=MyApp'
    polymorfa.sh
    # Meta's body. Works for a Cloud API or a linked-device number.
    curl -X POST "https://api.polymorfa.com/graph/whatsapp/v26.0/$NUMBER_ID/messages" \
      -H "Authorization: Bearer $POLYMORFA_PROJECT_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "messaging_product": "whatsapp",
        "to": "15551234567",
        "type": "text",
        "text": { "body": "Your order shipped." }
      }'
  2. 02

    A daily price per number, not a fee per message

    A Polymorfa linked-device number costs $0.25 for each day it is online, $7.50 for a full 30 days, and nothing on a disconnected day. A busy support line and a quiet one cost the same. Linked-device numbers also run groups and channels.2,9,10

    Gupshup: On Gupshup, every template and session message adds $0.001, incoming ones included.1

  3. 03

    Signed webhooks that retry for 24 hours

    Polymorfa signs every delivery with HMAC-SHA256 and makes up to eight delivery attempts over 24 hours, set per webhook. Sends accept an Idempotency-Key, so a retried request within 24 hours does not send the message twice.11,12

    Gupshup: Gupshup's webhook guide documents a retry "after a brief interval" and IP allowlisting, and no payload signature.13

One credit pool. Only the days a number is online.

One credit balance pays for every number your team runs, and a number costs credits only for the UTC days it is online.2 The monthly bonus is part of the price: buy 100,000 credits in a month and you get 250,000.14

Bonus credits on the whole month's purchase, every month

+10%
from 10,000 credits
+25%
from 20,000 credits
+75%
from 50,000 credits
+150%
from 100,000 credits

What Polymorfa gives you that Gupshup does not

Polymorfa and Gupshup
FeaturePolymorfaGupshup
Linked-device numbersYes15Not documented
Group managementLinked device9Not documented
Idempotent sends24-hour keys12Not documented
Signed webhooks with retriesHMAC-SHA25611IP allowlist13
MCP server for AI agentsHosted, 195 tools6Not documented
Pricing modelPer online number-day16Per message1
Paid entry price$0.25 per online day16$10 minimum top-up17

Move from Gupshup in an afternoon

  1. 01

    Create a project and a token

    Sign up, create a project and generate a project token in the Console.

  2. 02

    Connect your numbers

    Send each customer a QuickLink. Linked-device numbers pair by QR or pairing code; Cloud API numbers and coexistence use Embedded Signup, which is in beta.15

  3. 03

    Rewrite the send call

    Replace the form fields with Meta's JSON body and post it to https://api.polymorfa.com/graph/whatsapp/v26.0/{number id}/messages.3

Questions

Do I still pay Meta's fees?

Yes, for Cloud API numbers. Neither Gupshup nor Polymorfa removes Meta charges.1,14

Does Polymorfa charge for incoming messages?

Not on linked-device numbers. They are billed per online day, and message volume in either direction does not change the charge.2

Does Polymorfa support the official Cloud API?

Yes. Cloud API numbers and coexistence connect through QuickLink with Embedded Signup. Both are in beta and need team access.15

Leave the WhatsApp infrastructure to us.

Start free

Also compare: Twilio, Infobip, Vonage