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

# Cancel Fine-tuning Job

> Cancel a fine-tuning job

<Callout icon="clock" color="#3064E3" iconType="solid">
  Requires [version 1.1.5](/release-notes/1.1.x#v1-1-5) or later of the Archetype platform.
</Callout>

## Overview

Cancel a fine-tuning job. Force-stops the run (worker pods are killed without a final
checkpoint) and tears down its resources. A cancelled job cannot be resumed; use the [Pause
Job](/api-reference/fine-tuning/pause-job) endpoint for a graceful, resumable stop instead.

## Request

<ParamField path="id" type="string" required>
  A TypeID-encoded identifier with the `FineTuningJobId` prefix, which identifies the
  fine-tuning job.
</ParamField>

## Response

Returns a description of the fine-tuning job after cancellation.

<ResponseField name="object" type="string" required>
  The object type. Always `fine_tuning.job`.
</ResponseField>

<ResponseField name="id" type="string" required>
  A unique identifier for the fine-tuning job.
</ResponseField>

<ResponseField name="name" type="string" required>
  The human-readable name supplied when the job was created.
</ResponseField>

<ResponseField name="model" type="string" required>
  The base model being fine-tuned.
</ResponseField>

<ResponseField name="created_at" type="integer" required>
  The Unix timestamp (in seconds) at which the job was created.
</ResponseField>

<ResponseField name="org_id" type="string" required>
  The organization that owns the job.
</ResponseField>

<ResponseField name="status" type="string" required>
  The job's current lifecycle stage. One of `PENDING`, `ADMITTED`, `RUNNING`, `COMPLETED`,
  `FAILED`, `PREEMPTED`, `CANCELLED`, `PAUSED`, `INTERRUPTED`. To determine whether a
  `COMPLETED` job was fully or partially successful, or produced no output, see the value of the
  `outcome` property.
</ResponseField>

<ResponseField name="training_files" type="array" required>
  Identifiers of the files used to train the model.
</ResponseField>

<ResponseField name="validation_files" type="array" required>
  Identifiers of the files used to evaluate the model during training.
</ResponseField>

<ResponseField name="errors" type="array" required>
  Failure detail when the job has failed, as the platform error envelope (a list of `{code,
      message, suggestion, error_uid}`). Empty while the job is queued/running or on success. See
  [Error Handling](/api-reference/errors) for information about handling platform errors.
</ResponseField>

<ResponseField name="checkpoint_id" type="string">
  The checkpoint the job was started from, or `null` if it trained from the base model.
</ResponseField>

<ResponseField name="fine_tuned_model" type="string">
  The name of the model produced by the job. This is available once training has succeeded but is `null` until then.
</ResponseField>

<ResponseField name="finished_at" type="integer">
  The Unix timestamp (in seconds) at which the job finished, or `null` if it is not yet complete.
</ResponseField>

<ResponseField name="outcome" type="string">
  For a `COMPLETED` job, this string indicates whether it succeeded fully (`SUCCESS`), partially (`PARTIAL`), or produced nothing (`FAILED`); `null` for any non-completed `status`.
</ResponseField>

<ResponseField name="seed" type="integer">
  Seed. The random seed used for the job.
</ResponseField>

<ResponseField name="user_provided_suffix" type="string">
  The suffix supplied on the request, applied to the fine-tuned model's name.
</ResponseField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl -X POST https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/your-job-id/cancel \
    -H "Authorization: Bearer $ATAI_API_KEY"
  ```

  ```python Python theme={"system"}
  import requests
  import os

  api_key = os.environ.get("ATAI_API_KEY")

  job_id = "your-job-id"

  response = requests.post(
      f"https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/{job_id}/cancel",
      headers={"Authorization": f"Bearer {api_key}"}
  )

  print(response.json())
  ```

  ```javascript JavaScript theme={"system"}
  const jobId = 'your-job-id';

  const response = await fetch(
    `https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/${jobId}/cancel`,
    {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
      }
    }
  );

  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 - Fine-tuning job cancelled theme={"system"}
  {
    "object": "fine_tuning.job",
    "id": "your-job-id",
    "name": "my-tune",
    "model": "newton",
    "created_at": 1765201323,
    "org_id": "your-org",
    "status": "CANCELLED",
    "checkpoint_id": null,
    "fine_tuned_model": null,
    "finished_at": 1765201999,
    "outcome": null,
    "seed": 42,
    "user_provided_suffix": "v2",
    "training_files": ["fil_..."],
    "validation_files": ["fil_..."],
    "errors": []
  }
  ```

  ```json 404 - Not found theme={"system"}
  {
    "code": "not_found",
    "message": "Not found",
    "suggestion": null,
    "error_uid": "err-xxxxxxxx"
  }
  ```

  ```json 409 - Invalid state transition theme={"system"}
  {
    "code": "invalid_state_transition",
    "message": "Invalid state transition",
    "suggestion": null,
    "error_uid": "err-xxxxxxxx"
  }
  ```
</ResponseExample>
