Update a feature
Requires billing:write. Changes a feature’s name, its description, and whether it is archived. Send only the fields you are changing; archived is a state it can come back from.
What cannot change is how the feature is measured — kind, unit_name and reset_period are refused, by name, rather than quietly ignored. The kind is copied onto every plan that carries the feature, and the database refuses to change it while any plan does: flipping metered to boolean under a plan would leave a limit nothing reads and a customer whose usage stopped being counted. A feature measured differently is a different feature — create it under a new key and archive this one.
key is refused for the same reason a plan’s is: it is the string your own code gates on.
Authorizations
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange.
Headers
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing. Absent, the session's default organization answers.
Path Parameters
The feature.
Query Parameters
Which environment to act in. A view parameter, valid only on the staff surface — a machine credential never chooses its environment, it is resolved from the key.
live, test Response
The feature as it now stands.
One thing your product does, that your plans may or may not include. Yours, not UserKit's — the key is a string your code gates on.
Lowercase letters, digits, _, - and .. What your own code compares against.
"api_calls"
boolean is on or off. metered is counted against a ceiling that resets. credit is spent from a balance — a counter answers “how much this period”, a balance answers “how much is left”.
boolean, metered, credit What one unit is called (seats, runs, tokens). Empty on a boolean feature and required on the others: a limit with no unit is a number nobody can read.
How a metered feature's counter is bucketed; null for the other kinds. It belongs to the feature rather than to the plan, so a counter keeps its shape when a customer changes plan mid-period.
day, week, month, year, billing_period, null