querystringrequired
The YouTube search query.
https://api.sandbase.ai/v1/api/youtube/searchSearch YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON.
Your output will appear here
Complete the inputs, then click Run.
Search YouTube and get matching videos (title, channel, views, length, publish time) as normalized JSON.
curl -X POST "https://api.sandbase.ai/v1/api/youtube/search" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "how to cook rice"}'
The result is returned in outputs[0].data. A lookup that finds nothing still succeeds and returns found: false.
| Name | Type | Required | Description |
|---|---|---|---|
query | string | Yes | The YouTube search query. |
cursor | string | No | Continuation token from a previous response for pagination. |
requireCursor | boolean | No | Deprecated; send requireFields: ["nextCursor"] instead, which does exactly the same thing. Set true if you intend to page through results, so the request is only served by a source that can return a nextCursor. Omit it |
requireFields | array | No | Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example nextCursor, and it is served only by a source that returns every one |
sortBy | string | No | Sort order: "relevance" (default) or "popular" (most-viewed). One of: relevance, popular. |
uploadDate | string | No | Filter by upload recency. Omit for any time. One of: today, this_week, this_month, this_year. |
Billed at the actual cost of each call, usually $0.0005 per request. A call can cost more when the first data source fails and another one answers. Failed calls are not charged. Lookups that find nothing and searches with no results are billed at their actual cost, which is often lower and can be $0.
Start building
Platform API endpoint with unified authentication and usage tracking.
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
-X POST "https://api.sandbase.ai/v1/api/youtube/search" \
-H "Authorization: Bearer $SANDBASE_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'SANDBASE_JSON'
{
"query": "how to cook rice",
"sortBy": "relevance"
}
SANDBASE_JSON
)
printf '%s\n' "$result"Set your SandBase API key in your server environment. Requests use Bearer authentication.
export SANDBASE_API_KEY="YOUR_API_KEY"Keep your key on the server. Do not expose it in browser code.
querystringrequiredThe YouTube search query.
cursorstringContinuation token from a previous response for pagination.
sortBystringSort order: "relevance" (default) or "popular" (most-viewed).
Default: "relevance"
Possible values: relevance, popular
uploadDatestringFilter by upload recency. Omit for any time.
Possible values: today, this_week, this_month, this_year
requireCursorbooleanDeprecated; send `requireFields: ["nextCursor"]` instead, which does exactly the same thing. Set true if you intend to page through results, so the request is only served by a source that can return a nextCursor. Omit it and routing is unchanged, with the cheapest source serving. This can raise your price: when the cheapest source cannot page, a source that can serves, and you are quoted and charged its price. It stays accepted so callers that already send it keep working.
requireFieldsarrayOptional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `nextCursor`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a result that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge. On a paginated walk it applies to the first page only; later pages stay with the source that page chose, at the price it was quoted.
Saved example response for this API; no live request is made when viewing it.
No saved response has been published. Run the API in Playground to inspect its response.
Explore more
| API | Price | Response |
|---|---|---|
YouTube SearchThis API YouTube | From $0.0005 per call | JSON |
YouTube | From $0.0004 per call | JSON |
YouTube | From $0.0012 per call | JSON |
YouTube | From $0.0012 per call | JSON |
YouTube | From $0.0012 per call | JSON |
YouTube | $0.01 per call | JSON |
Questions
Send a POST request to https://api.sandbase.ai/v1/api/youtube/search with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.
From $0.0005 per call, billed from your SandBase balance. You are only charged for calls you make; there is no subscription.
Required: query (string). Optional: cursor (string), sortBy (one of relevance, popular), uploadDate (one of today, this_week, this_month, this_year), requireCursor (boolean) and requireFields (array). The Parameters table and the Playground on this page list every field.
A JSON response returned in the same HTTP request (synchronous).
No. YouTube Search runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for YouTube API access separately.