YouTube Search

Search for videos on YouTube with customizable result limits.

Endpoint

GET /api/youtube-external/search

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Parameters

query string Required

Search query

limit integer Optional

Number of results (default: 10, max: 20)

page integer Optional

Page number (default: 1, max: 10)

continuation string Optional

Token for pagination from previous response

type string Optional

Filter by content type: video, channel, playlist, movie, all (default: all).

hl string Optional

Language code (e.g., en).

gl string Optional

Country code (e.g., US).

order string Optional

Sort order: date, rating, relevance, viewCount.

videoDuration string Optional

Filter by duration: short, medium, long.

publishedAfter string Optional

Return videos published after a date/time (best-effort; any valid date string, RFC3339 recommended).

publishedBefore string Optional

Return videos published before a date/time (best-effort; any valid date string, RFC3339 recommended).

safeSearch string Optional

Content filtering: moderate, none, strict.

Request Examples

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://scrappa.co/api/youtube-external/search?query=programming+tutorial');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'x-api-key: YOUR_API_KEY_HERE',
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
<?php

use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'x-api-key' => 'YOUR_API_KEY_HERE',
])->get('https://scrappa.co/api/youtube-external/search?query=programming+tutorial');

return $response->json();
fetch('https://scrappa.co/api/youtube-external/search?query=programming+tutorial', {
  headers: {
    'x-api-key': 'YOUR_API_KEY_HERE'
  }
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
const axios = require('axios');

axios.get('https://scrappa.co/api/youtube-external/search?query=programming+tutorial', {
  headers: {
    'x-api-key': 'YOUR_API_KEY_HERE'
  }
})
  .then(response => console.log(response.data))
  .catch(error => console.error('Error:', error));
import requests

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE'
}

response = requests.get('https://scrappa.co/api/youtube-external/search?query=programming+tutorial', headers=headers)
print(response.json())
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse('https://scrappa.co/api/youtube-external/search?query=programming+tutorial')
request = Net::HTTP::Get.new(uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(request)
end

puts JSON.parse(response.body)
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "https://scrappa.co/api/youtube-external/search?query=programming+tutorial", nil)
    req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}
curl -X GET 'https://scrappa.co/api/youtube-external/search?query=programming+tutorial' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Response Schema

JSON Response 200 OK
{
    "results": [],
    "pagination": [],
    "query": "",
    "filters": []
}

Try It Live

Test this endpoint in our interactive playground with real data.

Open in Playground