# Get suggestions



<MethodPage method="GET" path="/v1/search/suggestions" credits={0}>
  <MethodSignature name="getSuggestions" args={[{ name: "query" }, { name: "options", optional: true }]} returns="SuggestionsResponse" />

  Returns autocomplete strings for a partial query. Use this for search-as-you-type UIs. This endpoint is free.

  <Security permission="transcripts:read" />

  <SchemaGroup title="Parameters">
    <SchemaField name="q" type="string" location="query">
      Partial query string.
    </SchemaField>
  </SchemaGroup>

  <SchemaGroup title="Returns" id="returns">
    <SchemaField name="query" type="string">
      Echoed input.
    </SchemaField>

    <SchemaField name="suggestions" type="string[]">
      Ranked completion strings.
    </SchemaField>
  </SchemaGroup>

  <Callout type="success" title="Completely free">
    Search suggestions consume **0 credits**.
  </Callout>

  <MethodSamples>
    <LanguageSample language="TypeScript">
      ```ts
      const q = encodeURIComponent("nextjs 1");
      const response = await fetch(
        `https://api.ytapi.dev/v1/search/suggestions?q=${q}`,
        {
          headers: {
            Authorization: `Bearer ${process.env.YT_API_KEY}`,
          },
        },
      );

      const data = await response.json();
      console.log(data.suggestions);
      ```
    </LanguageSample>

    <LanguageSample language="Python">
      ```python
      import os
      import requests

      response = requests.get(
          "https://api.ytapi.dev/v1/search/suggestions",
          headers={"Authorization": f"Bearer {os.environ['YT_API_KEY']}"},
          params={"q": "nextjs 1"},
      )

      print(response.json())
      ```
    </LanguageSample>

    <LanguageSample language="cURL">
      ```bash
      curl -X GET "https://api.ytapi.dev/v1/search/suggestions?q=nextjs+1" \
        -H "Authorization: Bearer $YT_API_KEY"
      ```
    </LanguageSample>

    <LanguageSample language="Go">
      ```go
      package main

      import (
      	"fmt"
      	"net/http"
      	"os"
      )

      func main() {
      	url := "https://api.ytapi.dev/v1/search/suggestions?q=nextjs+1"
      	req, _ := http.NewRequest("GET", url, nil)
      	req.Header.Set("Authorization", "Bearer "+os.Getenv("YT_API_KEY"))

      	resp, err := http.DefaultClient.Do(req)
      	if err != nil {
      		panic(err)
      	}
      	defer resp.Body.Close()
      	fmt.Println(resp.Status)
      }
      ```
    </LanguageSample>

    <ResponseExample status={200}>
      ```json
      {
        "query": "nextjs 1",
        "suggestions": [
          "nextjs 15 tutorial",
          "nextjs 15 crash course",
          "nextjs 15 server actions",
          "nextjs 15 auth",
          "nextjs 15 cache components"
        ]
      }
      ```
    </ResponseExample>
  </MethodSamples>
</MethodPage>
