---
title: "Register a new models"
method: POST
path: "/projects/{project_id}/models"
tags: ["models"]
---

# Register a new models

`POST /projects/{project_id}/models`

## Path parameters

- `project_id` integer, required

## Request body

- Model
  - `id` integer
  - `project_id` integer
  - `mlflow_experiment_id` integer
  - `name` string
  - `type` 'xgboost' | 'tensorflow' | 'sklearn' | 'h2o' | 'pytorch' | 'pyfunc' | 'onnx' | 'pyfunc_v2' | 'other' — Model type
  - `mlflow_url` string
  - `endpoints` ModelEndpoint[]
    - `id` integer
    - `model_id` integer
    - `model` Model — recursive
    - `status` 'pending' | 'running' | 'serving' | 'failed' | 'terminated'
    - `url` string, hostname
    - `rule` ModelEndpointRule
      - `destinations` ModelEndpointRuleDestination[]
        - `version_endpoint_id` string, uuid
        - `version_endpoint` VersionEndpoint
          - `id` string, uuid
          - `version_id` integer
          - `status` 'pending' | 'running' | 'serving' | 'failed' | 'terminated'
          - `url` string, hostname
          - `service_name` string, hostname
          - `environment_name` string
          - `environment` Environment
            - `id` integer
            - `name` string, required
            - `cluster` string
            - `is_default` boolean
            - `region` string
            - `gcp_project` string
            - `default_resource_request` ResourceRequest
              - …
            - `created_at` string, date-time
            - `updated_at` string, date-time
          - `monitoring_url` string, hostname
          - `message` string
          - `resource_request` ResourceRequest
            - `min_replica` integer
            - `max_replica` integer
            - `cpu_request` string
            - `memory_request` string
          - `env_vars` EnvVar[]
            - `name` string
            - `value` string
          - `transformer` Transformer
            - `enabled` boolean
            - `image` string
            - `command` string
            - `args` string
            - `resource_request` ResourceRequest
              - …
            - `env_vars` EnvVar[]
              - …
            - `created_at` string, date-time
            - `updated_at` string, date-time
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `weight` integer
      - `mirror` VersionEndpoint
        - `id` string, uuid
        - `version_id` integer
        - `status` 'pending' | 'running' | 'serving' | 'failed' | 'terminated'
        - `url` string, hostname
        - `service_name` string, hostname
        - `environment_name` string
        - `environment` Environment
          - `id` integer
          - `name` string, required
          - `cluster` string
          - `is_default` boolean
          - `region` string
          - `gcp_project` string
          - `default_resource_request` ResourceRequest
            - `min_replica` integer
            - `max_replica` integer
            - `cpu_request` string
            - `memory_request` string
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `monitoring_url` string, hostname
        - `message` string
        - `resource_request` ResourceRequest
          - `min_replica` integer
          - `max_replica` integer
          - `cpu_request` string
          - `memory_request` string
        - `env_vars` EnvVar[]
          - `name` string
          - `value` string
        - `transformer` Transformer
          - `enabled` boolean
          - `image` string
          - `command` string
          - `args` string
          - `resource_request` ResourceRequest
            - `min_replica` integer
            - `max_replica` integer
            - `cpu_request` string
            - `memory_request` string
          - `env_vars` EnvVar[]
            - `name` string
            - `value` string
          - `created_at` string, date-time
          - `updated_at` string, date-time
        - `created_at` string, date-time
        - `updated_at` string, date-time
    - `environment_name` string
    - `environment` Environment
      - `id` integer
      - `name` string, required
      - `cluster` string
      - `is_default` boolean
      - `region` string
      - `gcp_project` string
      - `default_resource_request` ResourceRequest
        - `min_replica` integer
        - `max_replica` integer
        - `cpu_request` string
        - `memory_request` string
      - `created_at` string, date-time
      - `updated_at` string, date-time
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Response `201`

Created

## Other responses

- `400` — Invalid request format
- `404` — Project with given `project_id` not found

## Changes

- **2020-09-28** `c4b3505de7df` — 2 breaking
  - removed the request body
  - removed the media type `*/*` for the response with the status `201`

[Change history](https://skmtc.dev/caraml-dev/apis/merlin/changes/projects/:project_id/models/post.md)

---

[API](https://skmtc.dev/caraml-dev/apis/merlin.md) · [All operations](https://skmtc.dev/caraml-dev/apis/merlin/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/caraml-dev/merlin/revisions/bd7c2eaf05f4/schema)
