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

# Start a job run

> Start a new run of a job configuration.



## OpenAPI

````yaml /api-reference/5.9/fusion-api-job-rest-server.json post /spark/jobs/{id}
openapi: 3.0.1
info:
  title: Job REST Server API
  description: This group of APIs allows you to manage jobs, recommendations, and signals.
  contact:
    name: Lucidworks
    url: www.lucidworks.com
    email: support@lucidworks.com
  license:
    name: License of the API
    url: https://lucidworks.com/legal/developer-license-agreement/
  version: '5.9'
servers:
  - url: https://{FUSION HOST}/api
    description: Fusion
    variables:
      FUSION HOST:
        default: FUSION_HOST
        description: Your environment host.
  - url: https://{FUSION HOST}/api/apps/{APP_NAME}
    description: Fusion app
    variables:
      FUSION HOST:
        default: FUSION_HOST
        description: Your environment host.
      APP_NAME:
        default: APP_NAME
        description: The name of your Fusion application.
security:
  - Basic auth: []
  - API key: []
tags:
  - name: Recommendation Controller API
    description: Endpoints for the recommendation controller.
  - name: Signals Controller API
    description: Endpoints for the signals controller.
  - name: Spark Job Config Controller API
    description: Use these endpoints to manage Spark job configurations.
  - name: Spark Job Controller API
    description: Use these endpoints to start, stop, and check the status of Spark jobs.
externalDocs:
  description: Lucidworks Documentation
  url: https://doc.lucidworks.com/
paths:
  /spark/jobs/{id}:
    post:
      tags:
        - Spark Job Controller API
      summary: Start a job run
      description: Start a new run of a job configuration.
      operationId: startJob
      parameters:
        - name: id
          description: The name of the job configuration for which to start a new run.
          in: path
          required: true
          schema:
            type: string
          example: my-python-job
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SparkJobStatus'
              example:
                state: starting
                jobId: c7f701edfd
                jobConfig:
                  type: custom_python_job
                  id: my-python-job
                  script: /compare_fusion_apis.py
                  verboseReporting: false
                  updates:
                    - userId: demo-user
                      timestamp: '2025-12-03T22:17:23.651897283Z'
                    - userId: demo-user
                      timestamp: '2025-12-03T22:17:23.653890793Z'
                hostname: 10.64.19.46
                result:
                  jobConfigId: my-python-job
                  jobRunId: c7f701edfd
components:
  schemas:
    SparkJobStatus:
      type: object
      properties:
        state:
          description: The job run's current status.
          type: string
          enum:
            - unknown
            - idle
            - starting
            - running
            - finishing
            - cancelling
            - finished
            - cancelled
            - error
            - skipped
        jobId:
          description: The unique job run ID.
          type: string
        jobConfig:
          $ref: '#/components/schemas/SparkJobConfig'
        hostname:
          description: The host that ran the job.
          type: string
        result:
          $ref: '#/components/schemas/SparkJobResult'
        startTime:
          description: The job's start time, shown if the job has finished.
          type: string
          format: date-time
        endTime:
          description: The job's end time, shown if the job has finished.
          type: string
          format: date-time
        duration:
          description: The job's total run time, shown if the job has finished.
          type: integer
          format: int64
    SparkJobConfig:
      type: object
      description: The job's configuration details.
      properties:
        id:
          description: The name of the job configuration.
          type: string
          example: scripted_job_example
        sparkConfig:
          description: >-
            The job's configuration details.  The configuration keys depend on
            the type of job.  Use `/spark/schema` to see the configuration
            schemas for all job types.
          type: object
          items:
            $ref: '#/components/schemas/KeyValue'
          example:
            spark.cores.max: 2
            spark.executor.memory: 1g
        type:
          description: The job type.
          type: string
      discriminator:
        propertyName: type
    SparkJobResult:
      type: object
      properties:
        jobConfigId:
          description: The name of the job configuration.
          type: string
        jobRunId:
          description: The unique ID of this job run.
          type: string
        exception:
          description: Any special condition that occurred during the job run.
          type: object
          additionalProperties:
            type: object
    KeyValue:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
  securitySchemes:
    Basic auth:
      type: http
      scheme: basic
    API key:
      name: x-api-key
      type: apiKey
      in: header

````