> ## 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 job status and metadata

> Get a single job by ID. Allowed for the demo user when unauthenticated;
otherwise requires authentication and ownership (or demo access).




## OpenAPI

````yaml openapi.json get /api/v1/jobs/{jobId}
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}:
    get:
      tags:
        - Jobs
      summary: Get job status and metadata
      description: |
        Get a single job by ID. Allowed for the demo user when unauthenticated;
        otherwise requires authentication and ownership (or demo access).
      parameters:
        - in: path
          name: jobId
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: >-
            Job details including status, progress, and current
            totalKeywordCount (updated after each pipeline step)
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  status:
                    type: string
                    enum:
                      - queued
                      - running
                      - completed
                      - failed
                  primaryDomain:
                    type: string
                  competitorDomains:
                    type: array
                    items:
                      type: string
                  languageCode:
                    type: string
                  locationCode:
                    type: integer
                  progress:
                    type: object
                  errorMessage:
                    type: string
                    nullable: true
                  createdAt:
                    type: string
                    format: date-time
                  startedAt:
                    type: string
                    format: date-time
                    nullable: true
                  completedAt:
                    type: string
                    format: date-time
                    nullable: true
                  totalKeywordCount:
                    type: integer
                    description: >-
                      Current total keyword count from DB (updated after each
                      step
                    including after pruning): null
        '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.

````