> ## 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 History

> View the position history for a specific tracked keyword over time.

See how a keyword's search position has changed over time. Useful for tracking the impact of SEO changes or content updates.

### Key fields

| Field    | What It Tells You                                                                             |
| -------- | --------------------------------------------------------------------------------------------- |
| `items`  | Array of daily data points with position, clicks, and impressions                             |
| `source` | Where the data is from — `gsc` (Google Search Console) or `internal` (SnowSEO's own tracking) |

<Note>
  Position data comes from **Google Search Console** when available. If there isn't enough GSC data, SnowSEO falls back to its own internal tracking.
</Note>


## OpenAPI

````yaml GET /v3/rank-tracking/keyword-history
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/rank-tracking/keyword-history:
    get:
      tags:
        - Rank Tracking
      summary: Keyword position history
      description: >-
        Returns the position history for a specific keyword from GSC or internal
        tracking.
      parameters:
        - schema:
            type: string
          in: query
          name: teamId
          required: false
          description: Team ID
        - schema:
            type: string
          in: query
          name: keyword
          required: false
          description: Keyword to get history for
        - schema:
            type: string
          in: query
          name: startDate
          required: false
          description: Start date (YYYY-MM-DD, UTC). Preferred over days.
        - schema:
            type: string
          in: query
          name: endDate
          required: false
          description: End date (YYYY-MM-DD, UTC). Preferred over days.
        - schema:
            type: integer
          in: query
          name: days
          required: false
          description: Number of days to look back (legacy fallback)
        - schema:
            type: string
          in: query
          name: country
          required: false
          description: Country filter
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                        position:
                          type: number
                        clicks:
                          type: number
                        impressions:
                          type: number
                        source:
                          type: string
                          enum:
                            - internal
                            - gsc
                  source:
                    type: string
                    enum:
                      - internal
                      - gsc
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  error:
                    type: string
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  error:
                    type: string

````