POST
POST /fine_tuning/jobs — OpenAI API
OpenAI API key (required); https://api.openai.com/v1
OpenAI APICreate fine-tuning job
- Base URL
- https://api.openai.com/v1
- Auth
- Authorization: Bearer <OPENAI_API_KEY>
- Last verified
- 2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 396 tokens · Vary: Accept
→ 396 tokens · Vary: Accept
Critical gotchas
The Responses API is the primary interface for new text and tool workflows; Chat Completions remains a separate compatibility API.
Audio transcription uploads use multipart form data rather than a JSON request body.
cURL
curl -X POST 'https://api.openai.com/v1/fine_tuning/jobs' \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H 'Content-Type: application/json' \ -d '{ "model": "gpt-4o-mini", "training_file": "file-abc123"}'
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| model | body | string | Yes | The name of the model to fine-tune. You can select one of the [supported models](https://developers.openai.com/api/docs/guides/model-optimization#fine-tuning-methods). |
| training_file | body | string | Yes | The ID of an uploaded file that contains training data. See [upload file](https://developers.openai.com/api/reference/resources/files/methods/create) for how to upload a file. Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`. The contents of the file should differ depending on if the model uses the [chat](https://developers.openai.com/api/docs/guides/supervised-fine-tuning#formatting-your-data), [completions](https://developers.openai.com/api/docs/guides/supervised-fine-tuning#formatting-your-data) format, or if the fine-tuning method uses the [preference](https://developers.openai.com/api/docs/guides/direct-preference-optimization) format. See the [fine-tuning guide](https://developers.openai.com/api/docs/guides/model-optimization) for more details. |
| hyperparameters | body | object | No | The hyperparameters used for the fine-tuning job. This value is now deprecated in favor of `method`, and should be passed in under the `method` parameter. |
| suffix | body | string | No | A string of up to 64 characters that will be added to your fine-tuned model name. For example, a `suffix` of "custom-model-name" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`. |
| validation_file | body | string | No | The ID of an uploaded file that contains validation data. If you provide this file, the data is used to generate validation metrics periodically during fine-tuning. These metrics can be viewed in the fine-tuning results file. The same data should not be present in both train and validation files. Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`. See the [fine-tuning guide](https://developers.openai.com/api/docs/guides/model-optimization) for more details. |
| integrations | body | object[] | No | A list of integrations to enable for your fine-tuning job. |
| seed | body | integer | No | The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases. If a seed is not specified, one will be generated for you. |
| method | body | object | No | The method used for fine-tuning. |
| metadata | body | object | No | Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters. |
Response 200 OK
{
"id": "string",
"created_at": 0,
"error": {
"code": "string",
"message": "string",
"param": "string"
},
"fine_tuned_model": "string",
"finished_at": 0,
"hyperparameters": {
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
},
"model": "string",
"object": "fine_tuning.job",
"organization_id": "string",
"result_files": [
"file-abc123"
],
"status": "validating_files",
"trained_tokens": 0,
"training_file": "string",
"validation_file": "string",
"integrations": [
{
"type": "wandb",
"wandb": {
"project": "my-wandb-project",
"name": "string",
"entity": "string",
"tags": [
"custom-tag"
]
}
}
],
"seed": 0,
"estimated_finish": 0,
"method": {
"type": "supervised",
"supervised": {
"hyperparameters": {
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
}
},
"dpo": {
"hyperparameters": {
"beta": "auto",
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto"
}
},
"reinforcement": {
"grader": {
"type": "string_check",
"name": "string",
"input": "string",
"reference": "string",
"operation": "eq"
},
"hyperparameters": {
"batch_size": "auto",
"learning_rate_multiplier": "auto",
"n_epochs": "auto",
"reasoning_effort": "default",
"compute_multiplier": "auto",
"eval_interval": "auto",
"eval_samples": "auto"
}
}
},
"metadata": {}
} Get a free OpenAI API key → sponsored Affiliate link - we may earn a commission, at no extra cost to you.