> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nephia.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Youtube videos (POST)

> Costs 5 credits per page. Cursor is opaque.



## OpenAPI

````yaml /openapi.json post /v1/youtube/search
openapi: 3.1.0
info:
  title: Nephia API
  description: >-
    B2B API for structured data from live Sources (Vinted, X, Reddit, Youtube).
    Authenticate with an API key on your Account. Pull endpoints charge credits
    per request. Watches poll on an interval and deliver webhook events. Product
    request quota is per Account (all API keys share one bucket), by Plan: Free
    60/min, Starter 350/min, Growth 700/min, Pro 1,200/min. Credit packs do not
    raise the quota.
  version: 1.0.0
servers:
  - url: https://api.nephia.cc
    description: Production
  - url: http://localhost:3000
    description: Local
security:
  - ApiKeyAuth: []
tags:
  - name: Account
    description: Account balance
  - name: Vinted — Search
    description: Vinted catalog search
  - name: Vinted — Items
    description: Vinted listing detail
  - name: Vinted — Users
    description: Vinted sellers and wardrobes
  - name: Vinted — Reference
    description: Vinted filter metadata
  - name: Vinted — Watches
    description: Vinted watches, events, and activity
  - name: X — Tweets
    description: Tweet lookup, replies, thread, quotes, and engagers
  - name: X — Users
    description: X profiles, timelines, and social graphs
  - name: X — Search
    description: Tweet search
  - name: X — Lists
    description: X list timelines
  - name: X — Trends
    description: Trend places and snapshots
  - name: X — Watches
    description: X watches, events, and activity
  - name: Reddit — Search
    description: Reddit post, subreddit, and user search
  - name: Reddit — Posts
    description: Reddit posts, comments, duplicates, and trending
  - name: Reddit — Subreddits
    description: Subreddit profiles, listings, and rules
  - name: Reddit — Users
    description: Reddit user profiles and activity
  - name: Reddit — Watches
    description: Reddit watches, events, and activity
  - name: Youtube — Search
    description: Youtube video search
  - name: Youtube — Videos
    description: Video detail, comments, captions, and transcripts
  - name: Youtube — Channels
    description: Channel profiles and uploads
  - name: Youtube — Reference
    description: Region allowlist
  - name: Youtube — Watches
    description: Youtube watches, events, and activity
paths:
  /v1/youtube/search:
    post:
      tags:
        - Youtube — Search
      summary: Search Youtube videos (POST)
      description: Costs 5 credits per page. Cursor is opaque.
      operationId: postV1YoutubeSearch
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  minLength: 1
                cursor:
                  type: string
                gl:
                  type: string
              required:
                - query
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  videos:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        title:
                          type: string
                        description:
                          type: string
                        url:
                          type: string
                        channel:
                          type: object
                          properties:
                            id:
                              type: string
                            handle:
                              type:
                                - string
                                - 'null'
                            title:
                              type: string
                          required:
                            - id
                            - handle
                            - title
                        publishedAt:
                          type:
                            - string
                            - 'null'
                        viewCount:
                          type:
                            - number
                            - 'null'
                        likeCount:
                          type:
                            - number
                            - 'null'
                        commentCount:
                          type:
                            - number
                            - 'null'
                        durationSeconds:
                          type:
                            - number
                            - 'null'
                        thumbnailUrl:
                          type:
                            - string
                            - 'null'
                        isShort:
                          type: boolean
                        isLive:
                          type: boolean
                      required:
                        - id
                        - title
                        - description
                        - url
                        - channel
                        - publishedAt
                        - viewCount
                        - likeCount
                        - commentCount
                        - durationSeconds
                        - thumbnailUrl
                        - isShort
                        - isLive
                  nextCursor:
                    type:
                      - string
                      - 'null'
                required:
                  - videos
                  - nextCursor
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
        '429':
          description: >-
            Request quota exceeded. Retry after the `Retry-After` header
            (seconds). Response includes `RateLimit-*` headers (IETF draft-7).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
              example:
                error: Rate limit exceeded
                code: TOO_MANY_REQUESTS
        '503':
          description: Upstream temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
        maxLength: 255
      description: >-
        Unique key (e.g. UUID) making this POST safe to retry for 24 hours.
        Replays return the original response with an `Idempotency-Replayed:
        true` header; reusing a key with a different body returns 422.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key created from the Nephia dashboard for your Account.

````