cURL
curl --request POST \
--url https://us.api.flexprice.io/v1/features \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"alert_settings": {
"alert_enabled": true,
"critical": {
"threshold": "<string>"
},
"info": {
"threshold": "<string>"
},
"warning": {
"threshold": "<string>"
}
},
"description": "<string>",
"group_id": "<string>",
"lookup_key": "<string>",
"metadata": {},
"meter_id": "<string>",
"reporting_unit": {
"conversion_rate": 123,
"unit_plural": "<string>",
"unit_singular": "<string>"
},
"unit_plural": "<string>",
"unit_singular": "<string>"
}
'from flexprice import Flexprice
with Flexprice(
api_key_auth="<YOUR_API_KEY_HERE>",
) as f_client:
res = f_client.features.create_feature(name="<value>", type_="metered", meter={
"aggregation": {},
"event_name": "api_request",
"name": "API Usage Meter",
"reset_usage": "NEVER",
})
# Handle response
print(res)import { Flexprice } from "@flexprice/sdk";
const flexprice = new Flexprice({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await flexprice.features.createFeature({
meter: {
aggregation: {},
eventName: "api_request",
name: "API Usage Meter",
resetUsage: "NEVER",
},
name: "<value>",
type: "metered",
});
console.log(result);
}
run();package main
import(
"context"
flexprice "github.com/flexprice/go-sdk/v2"
"github.com/flexprice/go-sdk/v2/models/types"
"log"
)
func main() {
ctx := context.Background()
s := flexprice.New(
flexprice.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Features.CreateFeature(ctx, types.CreateFeatureRequest{
Meter: &types.CreateMeterRequest{
Aggregation: types.MeterAggregation{},
EventName: "api_request",
Name: "API Usage Meter",
ResetUsage: types.ResetUsageNever,
},
Name: "<value>",
Type: types.FeatureTypeMetered,
})
if err != nil {
log.Fatal(err)
}
if res.FeatureResponse != nil {
// handle response
}
}{
"alert_settings": {
"alert_enabled": true,
"alert_threshold_type": "absolute",
"critical": {
"condition": "above",
"threshold": "<string>"
},
"info": {
"condition": "above",
"threshold": "<string>"
},
"warning": {
"condition": "above",
"threshold": "<string>"
}
},
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"description": "<string>",
"environment_id": "<string>",
"group": {
"created_at": "2023-11-07T05:31:56Z",
"entity_ids": [
"<string>"
],
"entity_type": "<string>",
"id": "<string>",
"lookup_key": "<string>",
"metadata": {},
"name": "<string>",
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
},
"group_id": "<string>",
"id": "<string>",
"lookup_key": "<string>",
"metadata": {},
"meter": {
"aggregation": {
"bucket_size": "MINUTE",
"expression": "<string>",
"field": "<string>",
"group_by": "<string>",
"multiplier": "<string>",
"type": "COUNT"
},
"created_at": "2024-03-20T15:04:05Z",
"event_name": "api_request",
"filters": [
{
"key": "<string>",
"values": [
"<string>"
]
}
],
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "API Usage Meter",
"reset_usage": "BILLING_PERIOD",
"status": "published",
"tenant_id": "tenant123",
"updated_at": "2024-03-20T15:04:05Z"
},
"meter_id": "<string>",
"name": "<string>",
"reporting_unit": {
"conversion_rate": 123,
"unit_plural": "<string>",
"unit_singular": "<string>"
},
"status": "published",
"tenant_id": "<string>",
"type": "metered",
"unit_plural": "<string>",
"unit_singular": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>"
}{
"code": "http_client_error",
"http_status_code": 123,
"message": "<string>"
}{
"code": "http_client_error",
"http_status_code": 123,
"message": "<string>"
}Features
Create feature
Use when defining a new feature or capability to gate or meter (e.g. feature flags or usage-based limits). Ideal for boolean or usage features.
POST
/
features
cURL
curl --request POST \
--url https://us.api.flexprice.io/v1/features \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"alert_settings": {
"alert_enabled": true,
"critical": {
"threshold": "<string>"
},
"info": {
"threshold": "<string>"
},
"warning": {
"threshold": "<string>"
}
},
"description": "<string>",
"group_id": "<string>",
"lookup_key": "<string>",
"metadata": {},
"meter_id": "<string>",
"reporting_unit": {
"conversion_rate": 123,
"unit_plural": "<string>",
"unit_singular": "<string>"
},
"unit_plural": "<string>",
"unit_singular": "<string>"
}
'from flexprice import Flexprice
with Flexprice(
api_key_auth="<YOUR_API_KEY_HERE>",
) as f_client:
res = f_client.features.create_feature(name="<value>", type_="metered", meter={
"aggregation": {},
"event_name": "api_request",
"name": "API Usage Meter",
"reset_usage": "NEVER",
})
# Handle response
print(res)import { Flexprice } from "@flexprice/sdk";
const flexprice = new Flexprice({
apiKeyAuth: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await flexprice.features.createFeature({
meter: {
aggregation: {},
eventName: "api_request",
name: "API Usage Meter",
resetUsage: "NEVER",
},
name: "<value>",
type: "metered",
});
console.log(result);
}
run();package main
import(
"context"
flexprice "github.com/flexprice/go-sdk/v2"
"github.com/flexprice/go-sdk/v2/models/types"
"log"
)
func main() {
ctx := context.Background()
s := flexprice.New(
flexprice.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Features.CreateFeature(ctx, types.CreateFeatureRequest{
Meter: &types.CreateMeterRequest{
Aggregation: types.MeterAggregation{},
EventName: "api_request",
Name: "API Usage Meter",
ResetUsage: types.ResetUsageNever,
},
Name: "<value>",
Type: types.FeatureTypeMetered,
})
if err != nil {
log.Fatal(err)
}
if res.FeatureResponse != nil {
// handle response
}
}{
"alert_settings": {
"alert_enabled": true,
"alert_threshold_type": "absolute",
"critical": {
"condition": "above",
"threshold": "<string>"
},
"info": {
"condition": "above",
"threshold": "<string>"
},
"warning": {
"condition": "above",
"threshold": "<string>"
}
},
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"description": "<string>",
"environment_id": "<string>",
"group": {
"created_at": "2023-11-07T05:31:56Z",
"entity_ids": [
"<string>"
],
"entity_type": "<string>",
"id": "<string>",
"lookup_key": "<string>",
"metadata": {},
"name": "<string>",
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
},
"group_id": "<string>",
"id": "<string>",
"lookup_key": "<string>",
"metadata": {},
"meter": {
"aggregation": {
"bucket_size": "MINUTE",
"expression": "<string>",
"field": "<string>",
"group_by": "<string>",
"multiplier": "<string>",
"type": "COUNT"
},
"created_at": "2024-03-20T15:04:05Z",
"event_name": "api_request",
"filters": [
{
"key": "<string>",
"values": [
"<string>"
]
}
],
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "API Usage Meter",
"reset_usage": "BILLING_PERIOD",
"status": "published",
"tenant_id": "tenant123",
"updated_at": "2024-03-20T15:04:05Z"
},
"meter_id": "<string>",
"name": "<string>",
"reporting_unit": {
"conversion_rate": 123,
"unit_plural": "<string>",
"unit_singular": "<string>"
},
"status": "published",
"tenant_id": "<string>",
"type": "metered",
"unit_plural": "<string>",
"unit_singular": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"updated_by": "<string>"
}{
"code": "http_client_error",
"http_status_code": 123,
"message": "<string>"
}{
"code": "http_client_error",
"http_status_code": 123,
"message": "<string>"
}Authorizations
Enter your API key in the format x-api-key <api-key>*
Body
application/json
Feature to create
Available options:
metered, boolean, static, config Show child attributes
Show child attributes
GroupID is the id of the group to add the feature to
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Created
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
published, deleted, archived Available options:
metered, boolean, static, config 
