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.