curl --request POST \
--url https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule \
--header 'Content-Type: application/json' \
--data '
{
"text": "Check out the latest collection",
"socialSite": "GOOGLEMYBUSINESS",
"subBusinessNumbers": [
123456780,
123456781
],
"scheduleTimestamp": 1677759962528,
"media": [
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
},
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
}
],
"additionalMetaData": {
"callToActionType": "LEARN_MORE",
"callToActionUrl": "https://app.birdeye.com/"
}
}
'import requests
url = "https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule"
payload = {
"text": "Check out the latest collection",
"socialSite": "GOOGLEMYBUSINESS",
"subBusinessNumbers": [123456780, 123456781],
"scheduleTimestamp": 1677759962528,
"media": [
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
},
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
}
],
"additionalMetaData": {
"callToActionType": "LEARN_MORE",
"callToActionUrl": "https://app.birdeye.com/"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
text: 'Check out the latest collection',
socialSite: 'GOOGLEMYBUSINESS',
subBusinessNumbers: [123456780, 123456781],
scheduleTimestamp: 1677759962528,
media: [
{
type: 'IMAGE',
mediaUrl: 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
},
{
type: 'IMAGE',
mediaUrl: 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
}
],
additionalMetaData: {callToActionType: 'LEARN_MORE', callToActionUrl: 'https://app.birdeye.com/'}
})
};
fetch('https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => 'Check out the latest collection',
'socialSite' => 'GOOGLEMYBUSINESS',
'subBusinessNumbers' => [
123456780,
123456781
],
'scheduleTimestamp' => 1677759962528,
'media' => [
[
'type' => 'IMAGE',
'mediaUrl' => 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
],
[
'type' => 'IMAGE',
'mediaUrl' => 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
]
],
'additionalMetaData' => [
'callToActionType' => 'LEARN_MORE',
'callToActionUrl' => 'https://app.birdeye.com/'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule"
payload := strings.NewReader("{\n \"text\": \"Check out the latest collection\",\n \"socialSite\": \"GOOGLEMYBUSINESS\",\n \"subBusinessNumbers\": [\n 123456780,\n 123456781\n ],\n \"scheduleTimestamp\": 1677759962528,\n \"media\": [\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n },\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n }\n ],\n \"additionalMetaData\": {\n \"callToActionType\": \"LEARN_MORE\",\n \"callToActionUrl\": \"https://app.birdeye.com/\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"Check out the latest collection\",\n \"socialSite\": \"GOOGLEMYBUSINESS\",\n \"subBusinessNumbers\": [\n 123456780,\n 123456781\n ],\n \"scheduleTimestamp\": 1677759962528,\n \"media\": [\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n },\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n }\n ],\n \"additionalMetaData\": {\n \"callToActionType\": \"LEARN_MORE\",\n \"callToActionUrl\": \"https://app.birdeye.com/\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"Check out the latest collection\",\n \"socialSite\": \"GOOGLEMYBUSINESS\",\n \"subBusinessNumbers\": [\n 123456780,\n 123456781\n ],\n \"scheduleTimestamp\": 1677759962528,\n \"media\": [\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n },\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n }\n ],\n \"additionalMetaData\": {\n \"callToActionType\": \"LEARN_MORE\",\n \"callToActionUrl\": \"https://app.birdeye.com/\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 5556,
"message": "One or few BusinessIds are Invalid"
}{
"code": 1161,
"message": "Invalid API key"
}{
"code": 1011,
"message": "Business id is invalid"
}{
"code": 89,
"message": "Rate limit exceeded"
}Schedule Social Post
This API allows users to schedule or immediately post content on supported social sites. Users can specify the content, media, and schedule a specific time for the post. Supported social sites include Google Business Profile, Facebook, Instagram, LinkedIn, and Twitter.
curl --request POST \
--url https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule \
--header 'Content-Type: application/json' \
--data '
{
"text": "Check out the latest collection",
"socialSite": "GOOGLEMYBUSINESS",
"subBusinessNumbers": [
123456780,
123456781
],
"scheduleTimestamp": 1677759962528,
"media": [
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
},
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
}
],
"additionalMetaData": {
"callToActionType": "LEARN_MORE",
"callToActionUrl": "https://app.birdeye.com/"
}
}
'import requests
url = "https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule"
payload = {
"text": "Check out the latest collection",
"socialSite": "GOOGLEMYBUSINESS",
"subBusinessNumbers": [123456780, 123456781],
"scheduleTimestamp": 1677759962528,
"media": [
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
},
{
"type": "IMAGE",
"mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png"
}
],
"additionalMetaData": {
"callToActionType": "LEARN_MORE",
"callToActionUrl": "https://app.birdeye.com/"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
text: 'Check out the latest collection',
socialSite: 'GOOGLEMYBUSINESS',
subBusinessNumbers: [123456780, 123456781],
scheduleTimestamp: 1677759962528,
media: [
{
type: 'IMAGE',
mediaUrl: 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
},
{
type: 'IMAGE',
mediaUrl: 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
}
],
additionalMetaData: {callToActionType: 'LEARN_MORE', callToActionUrl: 'https://app.birdeye.com/'}
})
};
fetch('https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => 'Check out the latest collection',
'socialSite' => 'GOOGLEMYBUSINESS',
'subBusinessNumbers' => [
123456780,
123456781
],
'scheduleTimestamp' => 1677759962528,
'media' => [
[
'type' => 'IMAGE',
'mediaUrl' => 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
],
[
'type' => 'IMAGE',
'mediaUrl' => 'https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png'
]
],
'additionalMetaData' => [
'callToActionType' => 'LEARN_MORE',
'callToActionUrl' => 'https://app.birdeye.com/'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule"
payload := strings.NewReader("{\n \"text\": \"Check out the latest collection\",\n \"socialSite\": \"GOOGLEMYBUSINESS\",\n \"subBusinessNumbers\": [\n 123456780,\n 123456781\n ],\n \"scheduleTimestamp\": 1677759962528,\n \"media\": [\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n },\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n }\n ],\n \"additionalMetaData\": {\n \"callToActionType\": \"LEARN_MORE\",\n \"callToActionUrl\": \"https://app.birdeye.com/\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"Check out the latest collection\",\n \"socialSite\": \"GOOGLEMYBUSINESS\",\n \"subBusinessNumbers\": [\n 123456780,\n 123456781\n ],\n \"scheduleTimestamp\": 1677759962528,\n \"media\": [\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n },\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n }\n ],\n \"additionalMetaData\": {\n \"callToActionType\": \"LEARN_MORE\",\n \"callToActionUrl\": \"https://app.birdeye.com/\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/social/{accountNumber}/schedule")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"Check out the latest collection\",\n \"socialSite\": \"GOOGLEMYBUSINESS\",\n \"subBusinessNumbers\": [\n 123456780,\n 123456781\n ],\n \"scheduleTimestamp\": 1677759962528,\n \"media\": [\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n },\n {\n \"type\": \"IMAGE\",\n \"mediaUrl\": \"https://upload.wikimedia.org/wikipedia/commons/5/53/Google_Logo.png\"\n }\n ],\n \"additionalMetaData\": {\n \"callToActionType\": \"LEARN_MORE\",\n \"callToActionUrl\": \"https://app.birdeye.com/\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 5556,
"message": "One or few BusinessIds are Invalid"
}{
"code": 1161,
"message": "Invalid API key"
}{
"code": 1011,
"message": "Business id is invalid"
}{
"code": 89,
"message": "Rate limit exceeded"
}Headers
e.g. application/json
e.g. [Required] Partner specific API key provided by Birdeye for data exchange.
Media type of the JSON request body.
Path Parameters
Id of the Account.
Body
Input text that will be added in the post. Limits of characters across various Social Sites
The social site where the post will be made. Possible values are
List of Location Ids. Optional for SMB.
A Unix timestamp in milliseconds that represents the date and time when the post should be scheduled. If not provided, the post will be published after 5 minutes of posting.
Media details.
Show child attributes
Show child attributes
Additional metadata for the post, including a call to action (CTA). Applicable only for GOOGLEMYBUSINESS.
Show child attributes
Show child attributes