---
title: "POST /v1/features.create"
method: POST
path: "/v1/features.create"
tags: ["features"]
---

# POST /v1/features.create

`POST /v1/features.create`

Creates a new feature.

Use this to programmatically create features for metering usage, managing access, or building credit systems.

## Headers

- `x-api-version` string, required

## Request body

- object
  - `name` string, required — The name of the feature.
  - `type` 'boolean' | 'metered' | 'credit_system' | 'ai_credit_system', required — The type of the feature. 'single_use' features are consumed, like API calls, tokens, or messages. 'continuous_use' features are allocated, like seats, workspaces, or projects. 'credit_system' features are schemas that unify multiple 'single_use' features into a single credit system.
  - `consumable` boolean — Whether this feature is consumable. A consumable feature is one that periodically resets and is consumed rather than allocated (like credits, API requests, etc.). Applicable only for 'metered' features.
  - `display` object — Singular and plural display names for the feature in your user interface.
    - `singular` string, required
    - `plural` string, required
  - `credit_schema` object[] — A schema that maps 'single_use' feature IDs to credit costs. For classic credit systems only — AI credit systems use model_markups instead.
    - `metered_feature_id` string, required
    - `credit_cost` number, required
  - `model_markups` object, nullable — Per-model markup overrides for AI credit systems. Maps model IDs to their markup configuration.
  - `default_markup` number — Default percentage markup for this AI credit system. Used when no model or provider markup applies. Use -100 to make usage free.
  - `provider_markups` object, nullable — Per-provider default markup percentages for AI credit systems. Provider keys match the first segment of model_id.
  - `event_names` string[]
  - `feature_id` string, required — The ID of the feature to create.

## Response `200`

OK

- object
  - `id` string, required — The unique identifier for this feature, used in /check and /track calls.
  - `name` string, required — Human-readable name displayed in the dashboard and billing UI.
  - `type` 'boolean' | 'metered' | 'credit_system' | 'ai_credit_system', required — Feature type: 'boolean' for on/off access, 'metered' for usage-tracked features, 'credit_system' for unified credit pools, 'ai_credit_system' for model-based token pricing.
  - `consumable` boolean, required — For metered features: true if usage resets periodically (API calls, credits), false if allocated persistently (seats, storage).
  - `event_names` string[] — Event names that trigger this feature's balance. Allows multiple features to respond to a single event.
  - `credit_schema` object[] — For credit_system features: maps metered features to their credit costs.
    - `metered_feature_id` string, required — ID of the metered feature that draws from this credit system.
    - `credit_cost` number, required — Credits consumed per unit of the metered feature.
  - `model_markups` object, nullable — Per-model markup overrides for AI credit systems.
  - `default_markup` number — Default percentage markup for AI credit systems. Use -100 to make usage free.
  - `provider_markups` object, nullable — Per-provider default markup percentages for AI credit systems.
  - `display` object — Display names for the feature in billing UI and customer-facing components.
    - `singular` string, nullable — Singular form for UI display (e.g., 'API call', 'seat').
    - `plural` string, nullable — Plural form for UI display (e.g., 'API calls', 'seats').
  - `archived` boolean, required — Whether the feature is archived and hidden from the dashboard.

---

[API](https://skmtc.net/useautumn/apis/autumn-api.md) · [All operations](https://skmtc.net/useautumn/apis/autumn-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/useautumn/autumn-api/revisions/29536933c0dc/schema)
