Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/lastmileai:lastmileai-fine-tune-job-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Lastmileai Fine Tune Job API
version: '2.0'
description: 'Operations tagged Fine Tune Job across 2 of this provider''s published API definitions: model.json, lastmileai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://lastmileai.dev
description: Production server - LastMile AI
security:
- BearerAuth: []
tags:
- name: Fine Tune Job
paths:
/api/2/auto_eval/fine_tune_job/create:
post:
tags:
- Fine Tune Job
summary: Create Fine Tune Job
operationId: CreateFineTuneJob
description: 'Step 1 of 2: Create a new job configuration for fine-tuning, to be
subsequently submitted by calling SubmitFineTuneJob.'
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.CreateFineTuneJobRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.CreateFineTuneJobResponse'
x-codeSamples:
- lang: JavaScript
source: "import Lastmile from 'lastmile';\n\nconst client = new Lastmile({\n bearerToken: process.env['LASTMILE_API_TOKEN'], // This is the default and can be omitted\n});\n\nasync function main() {\n const fineTuneJob = await client.fineTuneJobs.create({\n fineTuneJobConfig: {\n baselineModelId: 'baselineModelId',\n selectedColumns: ['string'],\n testDatasetId: 'testDatasetId',\n trainDatasetId: 'trainDatasetId',\n },\n });\n\n console.log(fineTuneJob.jobId);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom lastmile import Lastmile\n\nclient = Lastmile(\n bearer_token=os.environ.get(\"LASTMILE_API_TOKEN\"), # This is the default and can be omitted\n)\nfine_tune_job = client.fine_tune_jobs.create(\n fine_tune_job_config={\n \"baseline_model_id\": \"baselineModelId\",\n \"selected_columns\": [\"string\"],\n \"test_dataset_id\": \"testDatasetId\",\n \"train_dataset_id\": \"trainDatasetId\",\n },\n)\nprint(fine_tune_job.job_id)"
servers:
- url: https://lastmileai.dev
description: Production server - LastMile AI
/api/2/auto_eval/fine_tune_job/submit:
post:
tags:
- Fine Tune Job
summary: Submit Fine Tune Job
operationId: SubmitFineTuneJob
description: 'Step 2 of 2: Submit the job configuration created by CreateFineTuneJob to
initiate a job.'
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.SubmitFineTuneJobRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.SubmitFineTuneJobResponse'
x-codeSamples:
- lang: JavaScript
source: "import Lastmile from 'lastmile';\n\nconst client = new Lastmile({\n bearerToken: process.env['LASTMILE_API_TOKEN'], // This is the default and can be omitted\n});\n\nasync function main() {\n const response = await client.fineTuneJobs.submit({\n fineTuneJobConfig: {\n baselineModelId: 'baselineModelId',\n selectedColumns: ['string'],\n testDatasetId: 'testDatasetId',\n trainDatasetId: 'trainDatasetId',\n },\n jobId: 'jobId',\n });\n\n console.log(response.jobId);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom lastmile import Lastmile\n\nclient = Lastmile(\n bearer_token=os.environ.get(\"LASTMILE_API_TOKEN\"), # This is the default and can be omitted\n)\nresponse = client.fine_tune_jobs.submit(\n fine_tune_job_config={\n \"baseline_model_id\": \"baselineModelId\",\n \"selected_columns\": [\"string\"],\n \"test_dataset_id\": \"testDatasetId\",\n \"train_dataset_id\": \"trainDatasetId\",\n },\n job_id=\"jobId\",\n)\nprint(response.job_id)"
servers:
- url: https://lastmileai.dev
description: Production server - LastMile AI
/api/2/auto_eval/fine_tune_job/get:
post:
tags:
- Fine Tune Job
summary: Get Fine Tune Job
operationId: GetFineTuneJob
description: Get the full job details
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.GetFineTuneJobRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.GetFineTuneJobResponse'
servers:
- url: https://lastmileai.dev
description: Production server - LastMile AI
/api/2/auto_eval/fine_tune_job/get_status:
post:
tags:
- Fine Tune Job
summary: Get Fine Tune Job Status
operationId: GetFineTuneJobStatus
description: Get the status of an existing job, including any results.
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.GetFineTuneJobStatusRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.GetFineTuneJobStatusResponse'
x-codeSamples:
- lang: JavaScript
source: "import Lastmile from 'lastmile';\n\nconst client = new Lastmile({\n bearerToken: process.env['LASTMILE_API_TOKEN'], // This is the default and can be omitted\n});\n\nasync function main() {\n const response = await client.fineTuneJobs.getStatus({ jobId: 'jobId' });\n\n console.log(response.fineTuneJobResult);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom lastmile import Lastmile\n\nclient = Lastmile(\n bearer_token=os.environ.get(\"LASTMILE_API_TOKEN\"), # This is the default and can be omitted\n)\nresponse = client.fine_tune_jobs.get_status(\n job_id=\"jobId\",\n)\nprint(response.fine_tune_job_result)"
servers:
- url: https://lastmileai.dev
description: Production server - LastMile AI
/api/2/auto_eval/fine_tune_job/list:
post:
tags:
- Fine Tune Job
summary: List Fine Tune Jobs
operationId: ListFineTuneJobs
description: List all fine-tune jobs with optional filters.
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.ListFineTuneJobsRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.ListFineTuneJobsResponse'
x-codeSamples:
- lang: JavaScript
source: "import Lastmile from 'lastmile';\n\nconst client = new Lastmile({\n bearerToken: process.env['LASTMILE_API_TOKEN'], // This is the default and can be omitted\n});\n\nasync function main() {\n const fineTuneJobs = await client.fineTuneJobs.list();\n\n console.log(fineTuneJobs.jobs);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom lastmile import Lastmile\n\nclient = Lastmile(\n bearer_token=os.environ.get(\"LASTMILE_API_TOKEN\"), # This is the default and can be omitted\n)\nfine_tune_jobs = client.fine_tune_jobs.list()\nprint(fine_tune_jobs.jobs)"
servers:
- url: https://lastmileai.dev
description: Production server - LastMile AI
/api/2/auto_eval/fine_tune_job/list_base_models:
post:
tags:
- Fine Tune Job
summary: List Base Models
operationId: ListBaseModels
description: List all base models available for fine-tuning.
security:
- BearerAuth: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.ListBaseModelsRequest'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/lmai.proto.webserver.v2.ListBaseModelsResponse'
x-codeSamples:
- lang: JavaScript
source: "import Lastmile from 'lastmile';\n\nconst client = new Lastmile({\n bearerToken: process.env['LASTMILE_API_TOKEN'], // This is the default and can be omitted\n});\n\nasync function main() {\n const response = await client.fineTuneJobs.listBaseModels();\n\n console.log(response.models);\n}\n\nmain();"
- lang: Python
source: "import os\nfrom lastmile import Lastmile\n\nclient = Lastmile(\n bearer_token=os.environ.get(\"LASTMILE_API_TOKEN\"), # This is the default and can be omitted\n)\nresponse = client.fine_tune_jobs.list_base_models()\nprint(response.models)"
servers:
- url: https://lastmileai.dev
description: Production server - LastMile AI
components:
schemas:
lmai.proto.model_fine_tuning.v1.ModelCard:
title: ModelCard
type: object
properties:
modelId:
type: string
name:
type: string
description:
type: string
deploymentStatus:
type: string
enum:
- MODEL_DEPLOYMENT_STATUS_UNSPECIFIED
- MODEL_DEPLOYMENT_STATUS_PENDING
- MODEL_DEPLOYMENT_STATUS_ONLINE
- MODEL_DEPLOYMENT_STATUS_OFFLINE
- MODEL_DEPLOYMENT_STATUS_PAUSED
title: ModelDeploymentStatus
createdAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
updatedAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
modelSize:
type: integer
purpose:
type: string
trainingProgress:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.TrainingProgress'
baseModelArchitecture:
type: string
enum:
- BASE_MODEL_ARCHITECTURE_UNSPECIFIED
- BASE_MODEL_ARCHITECTURE_ALBERTA_XS
- BASE_MODEL_ARCHITECTURE_ALBERTA_LC
- BASE_MODEL_ARCHITECTURE_DEBERTA_V3
- BASE_MODEL_ARCHITECTURE_ST_SIMILARITY
- BASE_MODEL_ARCHITECTURE_MODERNBERT_BASE
- BASE_MODEL_ARCHITECTURE_MODERNBERT_LARGE
- BASE_MODEL_ARCHITECTURE_MODERNBERT_LARGE_GNN
title: BaseModelArchitecture
description: Keep in sync with www/prisma/schema.prisma:AEBaseModelArchitecture
baseEvaluationMetric:
type: string
enum:
- BASE_EVALUATION_METRIC_UNSPECIFIED
- BASE_EVALUATION_METRIC_FAITHFULNESS
- BASE_EVALUATION_METRIC_RELEVANCE
- BASE_EVALUATION_METRIC_TOXICITY
- BASE_EVALUATION_METRIC_QA
- BASE_EVALUATION_METRIC_SUMMARIZATION
title: BaseEvaluationMetric
description: Keep in sync with www/prisma/schema.prisma:AEBaseEvaluationMetric
values:
type: object
additionalProperties:
type: string
tags:
type: array
items:
type: string
columns:
type: array
items:
type: string
required:
- modelId
- name
- description
- deploymentStatus
- createdAt
- updatedAt
- modelSize
- purpose
- trainingProgress
- baseModelArchitecture
- values
- tags
- columns
lmai.proto.webserver.v2.SubmitFineTuneJobResponse:
title: SubmitFineTuneJobResponse
type: object
properties:
jobId:
type: string
required:
- jobId
lmai.proto.webserver.v2.GetFineTuneJobRequest:
title: GetFineTuneJobRequest
type: object
properties:
jobId:
type: string
required:
- jobId
lmai.proto.webserver.v2.GetFineTuneJobStatusRequest:
title: GetFineTuneJobStatusRequest
type: object
properties:
jobId:
type: string
required:
- jobId
lmai.proto.model_fine_tuning.v1.FineTuneJobResult:
title: FineTuneJobResult
type: object
properties:
progress:
type: array
items:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.TrainingProgress'
description: Sequential snapshots of training metrics.
trainedModelFile:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.ModelFile'
description: The trained model, if it was created successfully.
resultUrl:
type: string
description: Url to view the full results and progress (e.g. external W&B url)
required:
- progress
description: Result of a Fine-Tuning Job.
lmai.proto.webserver.v2.CreateFineTuneJobResponse:
title: CreateFineTuneJobResponse
type: object
properties:
jobId:
type: string
required:
- jobId
lmai.proto.model_fine_tuning.v1.MetricBaseModel:
title: MetricBaseModel
type: object
properties:
id:
type: string
modelId:
type: string
baseModelArchitecture:
type: string
enum:
- BASE_MODEL_ARCHITECTURE_UNSPECIFIED
- BASE_MODEL_ARCHITECTURE_ALBERTA_XS
- BASE_MODEL_ARCHITECTURE_ALBERTA_LC
- BASE_MODEL_ARCHITECTURE_DEBERTA_V3
- BASE_MODEL_ARCHITECTURE_ST_SIMILARITY
- BASE_MODEL_ARCHITECTURE_MODERNBERT_BASE
- BASE_MODEL_ARCHITECTURE_MODERNBERT_LARGE
- BASE_MODEL_ARCHITECTURE_MODERNBERT_LARGE_GNN
title: BaseModelArchitecture
description: Keep in sync with www/prisma/schema.prisma:AEBaseModelArchitecture
baseEvaluationMetric:
type: string
enum:
- BASE_EVALUATION_METRIC_UNSPECIFIED
- BASE_EVALUATION_METRIC_FAITHFULNESS
- BASE_EVALUATION_METRIC_RELEVANCE
- BASE_EVALUATION_METRIC_TOXICITY
- BASE_EVALUATION_METRIC_QA
- BASE_EVALUATION_METRIC_SUMMARIZATION
title: BaseEvaluationMetric
description: Keep in sync with www/prisma/schema.prisma:AEBaseEvaluationMetric
required:
- id
- modelId
- baseModelArchitecture
description: Information about a base model corresponding to a metric
lmai.proto.webserver.v2.GetFineTuneJobResponse:
title: GetFineTuneJobResponse
type: object
properties:
job:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.FineTuneJob'
required:
- job
lmai.proto.model_fine_tuning.v1.TrainingProgress:
title: TrainingProgress
type: object
properties:
jobId:
type: string
epoch:
type: integer
loss:
type: number
accuracy:
type: number
progress:
type: number
timestamp:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
required:
- jobId
- epoch
- loss
- accuracy
- progress
- timestamp
description: Progress metrics from model training.
lmai.proto.webserver.v2.ListBaseModelsRequest:
title: ListBaseModelsRequest
type: object
properties: {}
additionalProperties: false
x-stainless-empty-object: true
lmai.proto.model_fine_tuning.v1.FineTuneJobConfig:
title: FineTuneJobConfig
type: object
properties:
name:
type: string
description: Optional name for the job.
description:
type: string
description: Optional description for the job.
baselineModelId:
type: string
description: The ID for the model used as the starting point for training.
trainDatasetId:
type: string
description: "The dataset to use for training, with splits baked in or to be\n derived dynamically"
testDatasetId:
type: string
description: The dataset to use for an unbiased evaluation of the model
selectedColumns:
type: array
items:
type: string
description: "Set of columns to be used in fine-tuning.\n Supported columns: input, output, ground_truth\n For example, a task similar to summarization might need output and\n ground_truth."
required:
- baselineModelId
- trainDatasetId
- testDatasetId
- selectedColumns
lmai.proto.webserver.v2.ListFineTuneJobsRequestFilters:
title: ListFineTuneJobsRequestFilters
type: object
properties:
query:
type: string
description: search query substring match for name and description
status:
type: string
enum:
- JOB_STATUS_UNSPECIFIED
- JOB_STATUS_QUEUED
- JOB_STATUS_RUNNING
- JOB_STATUS_COMPLETED
- JOB_STATUS_CANCELLED
- JOB_STATUS_FAILED
title: JobStatus
lmai.proto.model_fine_tuning.v1.FineTuneJob:
title: FineTuneJob
type: object
properties:
id:
type: string
description: The ID of the fine tune job.
createdAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
updatedAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
name:
type: string
description: Name corresponding to the fine tuned model derived from this job
description:
type: string
status:
type: string
enum:
- JOB_STATUS_UNSPECIFIED
- JOB_STATUS_QUEUED
- JOB_STATUS_RUNNING
- JOB_STATUS_COMPLETED
- JOB_STATUS_CANCELLED
- JOB_STATUS_FAILED
title: JobStatus
config:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.FineTuneJobConfig'
result:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.FineTuneJobResult'
required:
- id
- createdAt
- updatedAt
- status
- config
- result
lmai.proto.model_fine_tuning.v1.ModelFile:
title: ModelFile
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
updatedAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
modelId:
type: string
contentMd5Hash:
type: string
fileSizeBytes:
type: integer
required:
- id
- createdAt
- updatedAt
- modelId
- contentMd5Hash
- fileSizeBytes
description: Actual file asset corresponding to a model
lmai.proto.webserver.v2.ListFineTuneJobsRequest:
title: ListFineTuneJobsRequest
type: object
properties:
filters:
$ref: '#/components/schemas/lmai.proto.webserver.v2.ListFineTuneJobsRequestFilters'
lmai.proto.webserver.v2.ListFineTuneJobsResponse:
title: ListFineTuneJobsResponse
type: object
properties:
jobs:
type: array
items:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.FineTuneJob'
totalCount:
type: integer
description: "Total count of fine tune jobs which can be listed with applicable\n filters, regardless of page size"
required:
- jobs
- totalCount
lmai.proto.webserver.v2.SubmitFineTuneJobRequest:
title: SubmitFineTuneJobRequest
type: object
properties:
jobId:
type: string
fineTuneJobConfig:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.FineTuneJobConfig'
description: The fine-tune job configuration.
required:
- jobId
- fineTuneJobConfig
lmai.proto.model_fine_tuning.v1.Model:
title: Model
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
updatedAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
deletedAt:
type: string
format: date-time
description: "A summary is retrieved for a time range from start_time to end_time\n If no end_time is provided, current time is used"
userId:
type: string
metricBaseModel:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.MetricBaseModel'
modelCard:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.ModelCard'
required:
- id
- createdAt
- updatedAt
- metricBaseModel
description: Definition for the model
lmai.proto.webserver.v2.CreateFineTuneJobRequest:
title: CreateFineTuneJobRequest
type: object
properties:
fineTuneJobConfig:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.FineTuneJobConfig'
description: Partial configuration with parameters for the fine-tune job.
required:
- fineTuneJobConfig
description: "Create a new Fine Tune Job\n Initialized with the provided configuration parameters."
lmai.proto.webserver.v2.ListBaseModelsResponse:
title: ListBaseModelsResponse
type: object
properties:
models:
type: array
items:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.Model'
required:
- models
lmai.proto.webserver.v2.GetFineTuneJobStatusResponse:
title: GetFineTuneJobStatusResponse
type: object
properties:
status:
type: string
enum:
- JOB_STATUS_UNSPECIFIED
- JOB_STATUS_QUEUED
- JOB_STATUS_RUNNING
- JOB_STATUS_COMPLETED
- JOB_STATUS_CANCELLED
- JOB_STATUS_FAILED
title: JobStatus
fineTuneJobResult:
$ref: '#/components/schemas/lmai.proto.model_fine_tuning.v1.FineTuneJobResult'
required:
- status
- fineTuneJobResult
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
x-refined-from:
- model.json
- lastmileai-openapi.json