---
title: "Create a new model point field for a product."
method: POST
path: "/api/v1/ModelPointFields"
tags: ["ModelPointFields"]
---

# Create a new model point field for a product.

`POST /api/v1/ModelPointFields`

## Request

- Base URL: `https://api.slopesoftware.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.slopesoftware.com/api/v1/ModelPointFields`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/slopesoftware/apis/akur8-life-api/docs/api/v1/ModelPointFields/post.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint will:
- Validate the user has permission to modify the model
- Ensure the model is not in production
- Validate field name and alias uniqueness
- Validate data type rules (e.g., only Decimal fields can scale)
- Trigger validation on dependent entities
- Initiate async file validation

Field names and aliases must be unique within the product's model point file definition.
Only Decimal fields can be configured to scale on purchase or sale.

## Request body

- CreateModelPointFieldRequestV1: Request model for creating a new model point field.
  - `productId` integer, required: The ID of the product to add the model point field to.
  - `name` string, required: The name of the model point field. Must be unique within the product.
  - `description` string, nullable: An optional description of the model point field, such as expected values or formats.
  - `dataType` 'Integer' | 'Decimal' | 'String' | 'Date' | 'Invalid' | 'Boolean' | 'DataTable' | 'DecrementTable' | 'Dynamic' | 'ScenarioTable' | 'YieldCurve' | 'List', required
  - `isRequired` boolean, required: Whether the field is required in model point files.
  - `isScaledOnPurchaseOrSale` boolean, required: Whether the field scales on purchase or sale. Only applicable to Decimal fields.
  - `defaultValueSource` 'None' | 'DefinedValue'
  - `defaultValue` string, nullable: The default value when DefaultMethodType is DefinedValue.
  - `aliases` string[], nullable: Alternative names for this field. Must be unique within the product.

## Response `200`

OK

- CreateModelPointFieldResponseV1: Response model for model point field creation.
  - `id` integer: The ID of the newly created model point field.
  - `name` string, nullable: The name of the newly created model point field.
  - `description` string, nullable: The description of the newly created model point field, if one was provided.

## Other responses

- `201`: Created
- `400`: Bad Request
- `401`: Unauthorized
- `403`: Not Allowed To Access
- `404`: Not Found
- `429`: Too Many Requests

---

[API](https://skmtc.dev/slopesoftware/apis/akur8-life-api.md) - [All operations](https://skmtc.dev/slopesoftware/apis/akur8-life-api/llms.txt) - [OpenAPI document](https://skmtc.dev/slopesoftware/apis/akur8-life-api/revisions/9771b2c79880?raw)
