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

# Keyword Volume

> Weekly and monthly volume projections for one keyword.

Each organization can look up 1,000 distinct keywords per UTC day; over
the cap returns 429 with Retry-After. Slices with two or fewer users are
omitted for privacy.

Weekly and monthly volume projections for one keyword, looked up on demand.
Pass a `keyword`, a `matching_type`, and a date range; narrow with `regions`
and `platforms`.

* **`matching_type`:** `exact_match` or `phrase_match`.
* **Rows:** one per country, platform, and period. The response has both weekly and monthly rows; `frequency` tells them apart (`Week - Monday Start` or `Month`).
* **Privacy:** slices with two or fewer users are left out of the response.
* **`organization_id`:** required only when your API key has access to more than one organization. It picks the organization whose daily allowance the lookup uses.

<Note>
  **Daily keyword allowance.** Each organization can look up 1,000 distinct
  keywords per UTC day. Repeating a keyword you already looked up that day
  is free. A new keyword over the cap returns `429` with `X-KeywordQuota-*`
  and `Retry-After` headers. A lookup that returns no rows still counts
  toward the allowance.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.tryprofound.com/v2/prompt-volumes/volume/on-the-fly \
    -H "X-API-Key: <your-api-key>" \
    -H "Content-Type: application/json" \
    -d '{
      "keyword": "ai search optimization",
      "matching_type": "phrase_match",
      "start_date": "2026-08-01",
      "end_date": "2026-08-31"
    }'
  ```
</RequestExample>


## OpenAPI

````yaml POST /v2/prompt-volumes/volume/on-the-fly
openapi: 3.1.0
info:
  title: External API
  version: 0.60.2
servers:
  - url: https://api.tryprofound.com
    description: Production Server
security: []
paths:
  /v2/prompt-volumes/volume/on-the-fly:
    post:
      tags:
        - Prompt Volumes
      summary: Get Keyword Volume
      description: |-
        Weekly and monthly volume projections for one keyword.

        Each organization can look up 1,000 distinct keywords per UTC day; over
        the cap returns 429 with Retry-After. Slices with two or fewer users are
        omitted for privacy.
      operationId: get_on_the_fly_volume_v2_prompt_volumes_volume_on_the_fly_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OtfVolumeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OtfVolumeResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
        - BearerAuth: []
components:
  schemas:
    OtfVolumeRequest:
      properties:
        keyword:
          type: string
          title: Keyword
        matching_type:
          type: string
          enum:
            - exact_match
            - phrase_match
          title: Matching Type
        start_date:
          type: string
          format: date
          title: Start Date
        end_date:
          type: string
          format: date
          title: End Date
        regions:
          items:
            type: string
          type: array
          title: Regions
          description: >-
            ISO 3166-1 alpha-3 country codes (e.g. USA). Omit to include every
            region.
        platforms:
          items:
            type: string
            enum:
              - chatgpt.com
              - gemini.google.com
              - perplexity.ai
          type: array
          title: Platforms
          description: Platforms to restrict to. Omit to include every platform.
        organization_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Organization Id
          description: >-
            Organization whose daily keyword allowance is used. Required in the
            JSON request body for API keys with multiple organizations that have
            API access. If omitted or null, defaults to the API key's sole
            organization with API access or the token's active organization. For
            OAuth/M2M tokens, any supplied organization_id must match the
            token's organization.
      type: object
      required:
        - keyword
        - matching_type
        - start_date
        - end_date
      title: OtfVolumeRequest
    OtfVolumeResponse:
      properties:
        info:
          $ref: '#/components/schemas/VolumeResponseInfo'
        data:
          items:
            $ref: '#/components/schemas/OtfVolumeData'
          type: array
          title: Data
      type: object
      required:
        - info
        - data
      title: OtfVolumeResponse
      description: Response wrapper with metadata and data array.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    VolumeResponseInfo:
      properties:
        total_rows:
          type: integer
          title: Total Rows
        truncated:
          type: boolean
          title: Truncated
          default: false
        query:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Query
      type: object
      required:
        - total_rows
      title: VolumeResponseInfo
      description: |-
        Metadata for volume query response.
        truncated indicates if results hit MAX_ROWS limit.
    OtfVolumeData:
      properties:
        country_code:
          type: string
          title: Country Code
        platform:
          type: string
          title: Platform
        matching_type:
          type: string
          title: Matching Type
        frequency:
          type: string
          title: Frequency
        date:
          type: string
          format: date
          title: Date
        volume:
          type: number
          title: Volume
      type: object
      required:
        - country_code
        - platform
        - matching_type
        - frequency
        - date
        - volume
      title: OtfVolumeData
      description: |-
        Single projected volume row.

        Each keyword query returns both weekly and monthly rows in one response;
        frequency distinguishes them and matches the fast table's values
        ('Week - Monday Start' / 'Month').
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    BearerAuth:
      type: http
      scheme: bearer

````