{
  "openapi": "3.0.1",
  "info": {
    "title": "YouTube SEO Keyword Research Pro — Search, Tags, Trends",
    "description": "Complete YouTube SEO keyword research toolkit. From one keyword get top search results, autocomplete suggestions, related videos, and trending hashtags. Built for creators, SEO agencies, and content strategists planning videos that win YouTube search.",
    "version": "1.0",
    "x-build-id": "qGwWDfnijt30U9jPu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~youtube-seo-keyword-research-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-youtube-seo-keyword-research-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/sian.agency~youtube-seo-keyword-research-pro/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-youtube-seo-keyword-research-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/sian.agency~youtube-seo-keyword-research-pro/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-youtube-seo-keyword-research-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "title": "🎯 Research mode",
            "enum": [
              "keywordResearch",
              "bulkKeywords",
              "seedVideoResearch"
            ],
            "type": "string",
            "description": "Pick the keyword research workflow.\n\n- **`keywordResearch`** (default) — one seed keyword + region/lang → full bundle (search + suggest + related + hashtag).\n- **`bulkKeywords`** — list of keywords sharing the same region/lang/endpoints; one snapshot per keyword.\n- **`seedVideoResearch`** — paste a YouTube video URL/ID; we extract its top keywords and run keyword research around them.",
            "default": "keywordResearch"
          },
          "keyword": {
            "title": "🔍 Keyword (single)",
            "type": "string",
            "description": "Seed keyword for `keywordResearch` mode. Examples: `rust programming`, `home espresso 2026`, `productivity for designers`.\n\nThe actor runs `search`, `suggest_queries`, `hashtag`, and `related` (chained off the top search result) on this keyword and returns a tidy-long dataset with all four signal types tagged by `rowType`."
          },
          "keywords": {
            "title": "🔍 Keywords (batch — comma or newline separated)",
            "type": "string",
            "description": "List of keywords for `bulkKeywords` mode (one snapshot per keyword). Comma-separated OR newline-separated. Max 50 keywords per run. Shares the same `region`, `language`, and `includeEndpoints` settings.\n\nExample (one per line):\n```\nrust programming\ngolang vs rust\nlearn rust 2026\n```"
          },
          "seedVideoUrl": {
            "title": "🎬 Seed video URL / ID (for seedVideoResearch)",
            "type": "string",
            "description": "For `seedVideoResearch` mode. Accepts any YouTube video URL or 11-char video ID. The actor calls `/video/info` to extract the top keywords from the video's tags + title, then runs full keyword research on the first extracted keyword.\n\nThe `/video/info` call is absorbed into the snapshot fee — you pay one `keyword-snapshot-result` event per seed video, not two."
          },
          "includeEndpoints": {
            "title": "🎯 Endpoints to include",
            "uniqueItems": true,
            "type": "array",
            "description": "Pick which endpoints to fetch per keyword snapshot. **Defaults to all 4** — leave empty for the full bundle. Endpoints that return empty/error responses are silently skipped — you are NEVER charged for unavailable endpoint pulls.\n\n- `search` — top YouTube search results for the keyword (videos, channels, playlists)\n- `suggest` — autocomplete suggestions (what people actually type)\n- `hashtag` — trending videos under the closest matching hashtag\n- `related` — related-video graph chained off the top search result (algorithm signal)",
            "items": {
              "type": "string",
              "enum": [
                "search",
                "suggest",
                "hashtag",
                "related"
              ]
            },
            "default": [
              "search",
              "suggest",
              "hashtag",
              "related"
            ]
          },
          "searchType": {
            "title": "🔎 Search content type",
            "enum": [
              "video",
              "channel",
              "playlist",
              "all"
            ],
            "type": "string",
            "description": "What kind of content `/search` should return. Default `video` is the SEO research norm (you're researching what videos rank for the keyword).\n\n- `video` — only videos (default, best for keyword research)\n- `channel` — only channels (for influencer/competitor discovery)\n- `playlist` — only playlists\n- `all` — mixed (videos, channels, playlists, shorts)",
            "default": "video"
          },
          "region": {
            "title": "🌍 Region code (geo, optional)",
            "type": "string",
            "description": "Two-letter country code that biases search/suggest results to a specific geography (e.g. `US`, `GB`, `IN`, `DE`, `BR`). Defaults to upstream's default (typically US). Useful when researching regional content trends."
          },
          "language": {
            "title": "🌐 Language code (lang, optional)",
            "type": "string",
            "description": "Two-letter language code (e.g. `en`, `es`, `pt`, `ja`) that biases autocomplete + search to a specific language. Defaults to upstream's default. Useful for non-English content research."
          },
          "maxSearchPages": {
            "title": "📄 Max search pages",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Pages of `/search` results to fetch per keyword (each page returns ~20 results). `1` is the snapshot default; bump to `2-3` for broader research; max `5`. Only applies when `search` is in `includeEndpoints`.",
            "default": 1
          },
          "maxRelatedPages": {
            "title": "📄 Max related pages",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Pages of `/related` results to fetch per keyword (each page returns ~20 related videos). Default `1`. Only applies when `related` is in `includeEndpoints`.",
            "default": 1
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}