curl --request POST \
--url https://dashboard.launchpointhq.com/api/v1/media/{id}/approve \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"revisionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://dashboard.launchpointhq.com/api/v1/media/{id}/approve"
payload = { "revisionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({revisionId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://dashboard.launchpointhq.com/api/v1/media/{id}/approve', 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://dashboard.launchpointhq.com/api/v1/media/{id}/approve",
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([
'revisionId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://dashboard.launchpointhq.com/api/v1/media/{id}/approve"
payload := strings.NewReader("{\n \"revisionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://dashboard.launchpointhq.com/api/v1/media/{id}/approve")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"revisionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dashboard.launchpointhq.com/api/v1/media/{id}/approve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"revisionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"programId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"creatorId": "<string>",
"revisionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"media": {
"kind": "video",
"mediaUrl": "<string>",
"thumbnailUrl": "<string>",
"carouselMediaUrls": [
"<string>"
]
},
"status": "pending_review",
"rejectionComments": "<string>",
"submittedAt": 123,
"reviewedAt": 123
}
}Approve media
Approve one media item in your review queue. This is the brand’s decision, the same as Approve in the dashboard: the creator is told and can post.
Repeating the decision the media already has returns the media as it stands, so retries are safe. The opposite decision returns 409 with code: media_already_reviewed. Media outside your review queue returns 409 with code: media_not_reviewable.
Only a brand API key can decide. An agency API key gets 403 with code: agency_key_not_supported.
curl --request POST \
--url https://dashboard.launchpointhq.com/api/v1/media/{id}/approve \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"revisionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://dashboard.launchpointhq.com/api/v1/media/{id}/approve"
payload = { "revisionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({revisionId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://dashboard.launchpointhq.com/api/v1/media/{id}/approve', 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://dashboard.launchpointhq.com/api/v1/media/{id}/approve",
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([
'revisionId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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://dashboard.launchpointhq.com/api/v1/media/{id}/approve"
payload := strings.NewReader("{\n \"revisionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://dashboard.launchpointhq.com/api/v1/media/{id}/approve")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"revisionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dashboard.launchpointhq.com/api/v1/media/{id}/approve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"revisionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"programId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"creatorId": "<string>",
"revisionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"media": {
"kind": "video",
"mediaUrl": "<string>",
"thumbnailUrl": "<string>",
"carouselMediaUrls": [
"<string>"
]
},
"status": "pending_review",
"rejectionComments": "<string>",
"submittedAt": 123,
"reviewedAt": 123
}
}Authorizations
API key created in Dashboard → Settings → Developer
Path Parameters
ID of the media
Query Parameters
Choose the data scope. company (default) limits results to the API key company's data. agency includes the parent agency and its linked brands. scope=agency requires a parent agency key; other keys receive 403.
company, agency Body
Optional. The revisionId you reviewed. The decision fails with 409 and code: media_newer_revision when the creator has sent a newer revision.
Response
Media approved
Show child attributes
Show child attributes