Get the SMS API powered by your own phone.
Before Parrot: Sending an SMS programmatically required expensive services like Twilio or Vonage. After Parrot: you can send SMSes using the phone you already have with the mobile plan you already pay for.
The Parrot app is installed directly Learn more
Getting Started
Connecting your phone
Once the app is installed you'll need to connect your phone.
Scan an invite QR code using the app:
OR
Enter the invite link on the phone:
Sending an SMS message is easy!
Simply send an HTTP request using our simple API using any programming language you want. Your phone will pick up the message and send it onward.
curl --url https://parrot.dev/api/v1/sms-jobs \
--request POST \
--data '{"sms":{"message":"Hello World","to":"+123456789","device_filter":"comma,separated,device,ids"}}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'x-api-key: $API_KEY'
const options = {
method: 'POST',
headers: { Accept: 'application/json', 'Content-Type': 'application/json', 'x-api-key' : '{{INSERT_API_KEY}}' },
body: JSON.stringify({ sms: { message: "Hello World", to: "+123456789", device_filter: "comma,separated,device,ids" } })
};
fetch('https://parrot.dev/api/v1/sms-jobs', options)
.then(response => console.log(response))
.catch(err => console.error(err));
const fetch = require('node-fetch');
const url = 'https://parrot.dev/api/v1/sms-jobs';
const options = {
method: 'POST',
headers: { Accept: 'application/json', 'Content-Type': 'application/json', 'x-api-key' : '{{INSERT_API_KEY}}'},
body: JSON.stringify({ sms: { message: "Hello World", to: "+123456789", device_filter: "comma,separated,device,ids" } })
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
import requests
url = "https://parrot.dev/api/v1/sms-jobs"
payload = {"sms":{"message":"Hello World","to":"+123456789","device_filter":"comma,separated,device,ids"}}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
"x-api-key": "{{INSERT_API_KEY}}"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://parrot.dev/api/v1/sms-jobs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request["x-api-key"] = '{{INSERT_API_KEY}}'
request.body = "{\"sms\":{\"message\":\"Hello World\",\"to\":\"+123456789\",\"device_filter\":\"comma,separated,device,ids\"}}"
response = http.request(request)
puts response.read_body
Admin interface
Need insights? No problem.
Parrot has an admin interface so you can add devices and get an overview of your SMS jobs without making API calls.

Subscribe for 5€ per-device per-month
Includes every feature we offer plus a 14-day trial so you can test it out before paying.
Everything you need
All-in-one platform
Parrot offers simple pay-as-you-go pricing to enable you get started and scale as you need to send more messages.
- Parrot Android App
- 100,000 messages per-device per-month
- Business hours Email/Chat support.
- Admin interface.