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

# Get clusters for a job

> Returns semantic clusters (pillar + supporting keywords) for a job with optional
search, keyword count filters, sorting, and pagination. Requires access to the job (owner or demo). Use session or API key (Bearer).




## OpenAPI

````yaml openapi.json get /api/v1/jobs/{jobId}/clusters
openapi: 3.1.0
info:
  title: SuprKeywords API
  version: 0.1.0
  description: >-
    API for keyword research jobs: create jobs, list results, fetch personas,
    keywords, clusters, and export CSV. Programmatic access is authenticated
    with API keys (Authorization: Bearer <key>). The dashboard uses session
    cookies when using the web app in a browser.
  contact:
    name: SuprKeywords Support
    url: https://www.suprkeywords.com
    email: support@suprkeywords.com
servers:
  - url: https://www.suprkeywords.com
    description: Production
  - url: http://localhost:4605
    description: Local (for testing against a local API)
security:
  - bearerAuth: []
  - SessionAuth: []
tags: []
paths:
  /api/v1/jobs/{jobId}/clusters:
    get:
      tags:
        - Jobs
      summary: Get clusters for a job
      description: >
        Returns semantic clusters (pillar + supporting keywords) for a job with
        optional

        search, keyword count filters, sorting, and pagination. Requires access
        to the job (owner or demo). Use session or API key (Bearer).
      parameters:
        - in: path
          name: jobId
          required: true
          schema:
            type: string
            format: uuid
        - in: query
          name: limit
          schema:
            type: integer
            default: 25
            minimum: 1
            maximum: 100
        - in: query
          name: offset
          schema:
            type: integer
            default: 0
            minimum: 0
        - in: query
          name: search
          schema:
            type: string
          description: Search cluster label or pillar keyword
        - in: query
          name: minKeywordCount
          schema:
            type: integer
            minimum: 0
        - in: query
          name: maxKeywordCount
          schema:
            type: integer
            minimum: 0
        - in: query
          name: sortBy
          schema:
            type: string
            default: aggregateOpportunityScore
        - in: query
          name: sortOrder
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
      responses:
        '200':
          description: Paginated clusters and total count
          content:
            application/json:
              schema:
                type: object
                properties:
                  clusters:
                    type: array
                    items:
                      type: object
                  total:
                    type: integer
                  limit:
                    type: integer
                  offset:
                    type: integer
        '400':
          description: Invalid query parameters
        '404':
          description: Job not found or access denied
        '500':
          description: Internal server error
      security:
        - bearerAuth: []
        - SessionAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        API key for programmatic access. Create keys in Settings (Agency plan).
        Send as Authorization: Bearer <your-api-key> or X-API-KEY:
        <your-api-key>. Unauthenticated requests return 401.
    SessionAuth:
      type: apiKey
      in: cookie
      name: __session
      description: >-
        Session cookie when using the dashboard in a browser. For scripts and
        server-to-server calls, use BearerAuth (API key) instead. Demo job
        access is allowed for GET job and sub-resources when applicable.

````