Submit YouTube Shorts task
curl --request POST \
--url https://api.socq.ai/v1/youtube/shorts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"urls": [
"<string>"
],
"results_limit": 100,
"callback_url": "<string>"
}
'import requests
url = "https://api.socq.ai/v1/youtube/shorts"
payload = {
"urls": ["<string>"],
"results_limit": 100,
"callback_url": "<string>"
}
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({urls: ['<string>'], results_limit: 100, callback_url: '<string>'})
};
fetch('https://api.socq.ai/v1/youtube/shorts', 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.socq.ai/v1/youtube/shorts",
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([
'urls' => [
'<string>'
],
'results_limit' => 100,
'callback_url' => '<string>'
]),
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.socq.ai/v1/youtube/shorts"
payload := strings.NewReader("{\n \"urls\": [\n \"<string>\"\n ],\n \"results_limit\": 100,\n \"callback_url\": \"<string>\"\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.socq.ai/v1/youtube/shorts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"urls\": [\n \"<string>\"\n ],\n \"results_limit\": 100,\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/youtube/shorts")
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 \"urls\": [\n \"<string>\"\n ],\n \"results_limit\": 100,\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "A1B2C3D4E5F6G7H8",
"status": "queued",
"created_time": "2026-07-17T10:29:30"
}
}{
"code": 123,
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"code": 123,
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"code": 123,
"error": {
"message": "<string>",
"type": "<string>"
}
}YouTube Shorts
Collect public Shorts from YouTube channels.
POST
/
v1
/
youtube
/
shorts
Submit YouTube Shorts task
curl --request POST \
--url https://api.socq.ai/v1/youtube/shorts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"urls": [
"<string>"
],
"results_limit": 100,
"callback_url": "<string>"
}
'import requests
url = "https://api.socq.ai/v1/youtube/shorts"
payload = {
"urls": ["<string>"],
"results_limit": 100,
"callback_url": "<string>"
}
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({urls: ['<string>'], results_limit: 100, callback_url: '<string>'})
};
fetch('https://api.socq.ai/v1/youtube/shorts', 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.socq.ai/v1/youtube/shorts",
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([
'urls' => [
'<string>'
],
'results_limit' => 100,
'callback_url' => '<string>'
]),
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.socq.ai/v1/youtube/shorts"
payload := strings.NewReader("{\n \"urls\": [\n \"<string>\"\n ],\n \"results_limit\": 100,\n \"callback_url\": \"<string>\"\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.socq.ai/v1/youtube/shorts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"urls\": [\n \"<string>\"\n ],\n \"results_limit\": 100,\n \"callback_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.socq.ai/v1/youtube/shorts")
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 \"urls\": [\n \"<string>\"\n ],\n \"results_limit\": 100,\n \"callback_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"data": {
"task_id": "A1B2C3D4E5F6G7H8",
"status": "queued",
"created_time": "2026-07-17T10:29:30"
}
}{
"code": 123,
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"code": 123,
"error": {
"message": "<string>",
"type": "<string>"
}
}{
"code": 123,
"error": {
"message": "<string>",
"type": "<string>"
}
}YouTube Shorts
Collect Shorts from one or more public channels.{
"urls": ["https://www.youtube.com/@example"],
"results_limit": 100
}
results_limit defaults to 100 and applies to each channel URL.
Results use the normalized video structure documented in YouTube Videos, with resource set to shorts and type set to short.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
⌘I

