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

# Keyword Research

> Find keyword ideas with search volume, competition, and cost-per-click data.

Enter a seed keyword or a page URL and get back a list of related keyword ideas complete with monthly search volume, competition level, and CPC estimates. Powered by Google Ads Keyword Planner data (with DataForSEO as an alternative provider).


## OpenAPI

````yaml GET /v3/keyword-research/
openapi: 3.0.0
info:
  title: SnowSEO API
  description: API documentation for SnowSEO
  version: 1.0.0
servers:
  - url: https://api.snowseo.com
    description: Production server
security: []
tags:
  - name: Keywords
    description: Keyword research and suggestion end-points
  - name: Onboarding
    description: Brand onboarding and strategy end-points
  - name: Brands
    description: Brand management end-points
  - name: Organizations
    description: Organization and member end-points
  - name: Integrations
    description: Google Search Console and other integrations
  - name: Utilities
    description: Common utility end-points like screenshots and uploads
externalDocs:
  url: https://snowseo.com/docs
  description: Find more info here
paths:
  /v3/keyword-research/:
    get:
      tags:
        - keyword-research
      summary: Generate keyword ideas
      description: >-
        Return keyword suggestions with search volume, competition level, and
        CPC data.
      parameters:
        - schema:
            type: string
          in: query
          name: teamId
          required: false
          description: Team ID
        - schema:
            type: string
          in: query
          name: keyword
          required: false
          description: Seed keyword. Required if `page_url` is omitted.
        - schema:
            type: string
            anyOf:
              - type: string
                maxLength: 0
              - type: string
                format: uri
                minLength: 1
          in: query
          name: page_url
          required: false
          description: >-
            Seed URL. Required if `keyword` is omitted. Empty string allowed
            when using keyword.
        - schema:
            type: string
          in: query
          name: location_ids
          required: false
          description: >-
            Comma-separated location IDs (e.g. "2840,2826"). Use "all" for
            worldwide; it can be combined with specific IDs (e.g. "all,2380").
            Omitted = worldwide.
        - schema:
            type: string
            default: '1000'
          in: query
          name: language_id
          required: false
          description: 'Google Ads language resource ID (default: "1000" = English).'
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                  - exact_keyword
                  - related_keywords
                properties:
                  exact_keyword:
                    type: array
                    items:
                      type: object
                      required:
                        - keyword
                        - monthlysearch
                        - difficulty
                        - competition_score
                        - annotation
                        - cpc
                        - historic_data
                      properties:
                        keyword:
                          type: string
                        monthlysearch:
                          type: number
                        difficulty:
                          type: string
                        competition_score:
                          type: number
                        annotation:
                          type: string
                        cpc:
                          type: number
                        historic_data:
                          type: array
                          items:
                            type: object
                            properties:
                              year:
                                type: number
                              month:
                                type: number
                              search_volume:
                                type: number
                  related_keywords:
                    type: array
                    items:
                      type: object
                      required:
                        - keyword
                        - monthlysearch
                        - difficulty
                        - competition_score
                        - annotation
                        - cpc
                        - historic_data
                      properties:
                        keyword:
                          type: string
                        monthlysearch:
                          type: number
                        difficulty:
                          type: string
                        competition_score:
                          type: number
                        annotation:
                          type: string
                        cpc:
                          type: number
                        historic_data:
                          type: array
                          items:
                            type: object
                            properties:
                              year:
                                type: number
                              month:
                                type: number
                              search_volume:
                                type: number
                  perCountry:
                    type: array
                    items:
                      type: object
                      required:
                        - countryId
                        - count
                        - exact_keyword
                        - related_keywords
                      properties:
                        countryId:
                          type: string
                          nullable: true
                        count:
                          type: number
                        exact_keyword:
                          type: array
                          items:
                            type: object
                            required:
                              - keyword
                              - monthlysearch
                              - difficulty
                              - competition_score
                              - annotation
                              - cpc
                              - historic_data
                            properties:
                              keyword:
                                type: string
                              monthlysearch:
                                type: number
                              difficulty:
                                type: string
                              competition_score:
                                type: number
                              annotation:
                                type: string
                              cpc:
                                type: number
                              historic_data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    year:
                                      type: number
                                    month:
                                      type: number
                                    search_volume:
                                      type: number
                        related_keywords:
                          type: array
                          items:
                            type: object
                            required:
                              - keyword
                              - monthlysearch
                              - difficulty
                              - competition_score
                              - annotation
                              - cpc
                              - historic_data
                            properties:
                              keyword:
                                type: string
                              monthlysearch:
                                type: number
                              difficulty:
                                type: string
                              competition_score:
                                type: number
                              annotation:
                                type: string
                              cpc:
                                type: number
                              historic_data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    year:
                                      type: number
                                    month:
                                      type: number
                                    search_volume:
                                      type: number
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '503':
          description: Google Ads credentials not configured
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                description: Google Ads credentials not configured

````