curl --request POST \
--url https://api.lumisreach.com/api/v1/videos/{id}/posts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"connection_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"media_type": "video",
"settings": {},
"caption": "<string>",
"captions": {},
"scheduled_for": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.lumisreach.com/api/v1/videos/{id}/posts"
payload = {
"connection_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"media_type": "video",
"settings": {},
"caption": "<string>",
"captions": {},
"scheduled_for": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
connection_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
media_type: 'video',
settings: {},
caption: '<string>',
captions: {},
scheduled_for: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.lumisreach.com/api/v1/videos/{id}/posts', 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.lumisreach.com/api/v1/videos/{id}/posts",
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([
'connection_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'media_type' => 'video',
'settings' => [
],
'caption' => '<string>',
'captions' => [
],
'scheduled_for' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.lumisreach.com/api/v1/videos/{id}/posts"
payload := strings.NewReader("{\n \"connection_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"media_type\": \"video\",\n \"settings\": {},\n \"caption\": \"<string>\",\n \"captions\": {},\n \"scheduled_for\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.lumisreach.com/api/v1/videos/{id}/posts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"connection_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"media_type\": \"video\",\n \"settings\": {},\n \"caption\": \"<string>\",\n \"captions\": {},\n \"scheduled_for\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumisreach.com/api/v1/videos/{id}/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"connection_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"media_type\": \"video\",\n \"settings\": {},\n \"caption\": \"<string>\",\n \"captions\": {},\n \"scheduled_for\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"scheduled_for": "2023-11-07T05:31:56Z",
"posts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}Post a video
Post a ready video to connected social accounts (GET /v1/social-connections) now, or at scheduled_for. One post per account, so a failure on one network leaves the others alone. caption defaults to the video’s caption and hashtags; captions overrides it per platform. A slideshow can go out as its slides with media_type: carousel (TikTok and Instagram). Cancel a scheduled post with DELETE /v1/posts/{id}. Free.
curl --request POST \
--url https://api.lumisreach.com/api/v1/videos/{id}/posts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"connection_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"media_type": "video",
"settings": {},
"caption": "<string>",
"captions": {},
"scheduled_for": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.lumisreach.com/api/v1/videos/{id}/posts"
payload = {
"connection_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"media_type": "video",
"settings": {},
"caption": "<string>",
"captions": {},
"scheduled_for": "2023-11-07T05:31:56Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
connection_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
media_type: 'video',
settings: {},
caption: '<string>',
captions: {},
scheduled_for: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.lumisreach.com/api/v1/videos/{id}/posts', 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.lumisreach.com/api/v1/videos/{id}/posts",
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([
'connection_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'media_type' => 'video',
'settings' => [
],
'caption' => '<string>',
'captions' => [
],
'scheduled_for' => '2023-11-07T05:31:56Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.lumisreach.com/api/v1/videos/{id}/posts"
payload := strings.NewReader("{\n \"connection_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"media_type\": \"video\",\n \"settings\": {},\n \"caption\": \"<string>\",\n \"captions\": {},\n \"scheduled_for\": \"2023-11-07T05:31:56Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.lumisreach.com/api/v1/videos/{id}/posts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"connection_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"media_type\": \"video\",\n \"settings\": {},\n \"caption\": \"<string>\",\n \"captions\": {},\n \"scheduled_for\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumisreach.com/api/v1/videos/{id}/posts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"connection_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"media_type\": \"video\",\n \"settings\": {},\n \"caption\": \"<string>\",\n \"captions\": {},\n \"scheduled_for\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"scheduled_for": "2023-11-07T05:31:56Z",
"posts": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"fields": {},
"doc_url": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
A UUID. When present, deduplicates repeat submissions. See /api-reference/idempotency.
Path Parameters
Body
Accounts to post to, from GET /v1/social-connections
1^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$carousel posts a slideshow's slides (TikTok and Instagram only)
video, carousel Per-platform options; omitted ones use their defaults
Show child attributes
Show child attributes
The caption for every platform without its own. Omit to use the video's caption and hashtags.
4000A platform's own caption, checked against that platform's limits
Show child attributes
Show child attributes
Post at this time (at least a minute ahead, up to a year). Omit to post now.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Response
Success
Show child attributes
Show child attributes