Add Feature to Subscription
curl --request POST \
--url https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"featureId": "<string>",
"featureSlug": "<string>",
"grantCreditsImmediately": false
}
'import requests
url = "https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature"
payload = {
"featureId": "<string>",
"featureSlug": "<string>",
"grantCreditsImmediately": False
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({featureId: '<string>', featureSlug: '<string>', grantCreditsImmediately: false})
};
fetch('https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'featureId' => '<string>',
'featureSlug' => '<string>',
'grantCreditsImmediately' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature"
payload := strings.NewReader("{\n \"featureId\": \"<string>\",\n \"featureSlug\": \"<string>\",\n \"grantCreditsImmediately\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"featureId\": \"<string>\",\n \"featureSlug\": \"<string>\",\n \"grantCreditsImmediately\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"featureId\": \"<string>\",\n \"featureSlug\": \"<string>\",\n \"grantCreditsImmediately\": false\n}"
response = http.request(request)
puts response.read_body{
"subscriptionItemFeature": {
"id": "<string>",
"createdAt": 0,
"updatedAt": 0,
"livemode": true,
"subscriptionItemId": "<string>",
"featureId": "<string>",
"type": "<string>",
"manuallyCreated": true,
"pricingModelId": "<string>",
"name": "<string>",
"slug": "<string>",
"productFeatureId": "<string>",
"amount": null,
"usageMeterId": null,
"renewalFrequency": null,
"expiredAt": 0,
"detachedAt": 0,
"detachedReason": "<string>",
"resourceId": null
}
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Subscriptions
Add Feature to Subscription
Add a feature to a subscription. For toggle features, this is idempotent. For usage credit features, amounts accumulate. Optionally grant credits immediately for the current billing period.
POST
/
api
/
v1
/
subscriptions
/
{id}
/
add-feature
Add Feature to Subscription
curl --request POST \
--url https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"featureId": "<string>",
"featureSlug": "<string>",
"grantCreditsImmediately": false
}
'import requests
url = "https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature"
payload = {
"featureId": "<string>",
"featureSlug": "<string>",
"grantCreditsImmediately": False
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({featureId: '<string>', featureSlug: '<string>', grantCreditsImmediately: false})
};
fetch('https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'featureId' => '<string>',
'featureSlug' => '<string>',
'grantCreditsImmediately' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature"
payload := strings.NewReader("{\n \"featureId\": \"<string>\",\n \"featureSlug\": \"<string>\",\n \"grantCreditsImmediately\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"featureId\": \"<string>\",\n \"featureSlug\": \"<string>\",\n \"grantCreditsImmediately\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.flowglad.com/api/v1/subscriptions/{id}/add-feature")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"featureId\": \"<string>\",\n \"featureSlug\": \"<string>\",\n \"grantCreditsImmediately\": false\n}"
response = http.request(request)
puts response.read_body{
"subscriptionItemFeature": {
"id": "<string>",
"createdAt": 0,
"updatedAt": 0,
"livemode": true,
"subscriptionItemId": "<string>",
"featureId": "<string>",
"type": "<string>",
"manuallyCreated": true,
"pricingModelId": "<string>",
"name": "<string>",
"slug": "<string>",
"productFeatureId": "<string>",
"amount": null,
"usageMeterId": null,
"renewalFrequency": null,
"expiredAt": 0,
"detachedAt": 0,
"detachedReason": "<string>",
"resourceId": null
}
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Authorizations
Path Parameters
The subscription ID
Body
application/json
The feature ID to add. Exactly one of featureId or featureSlug must be provided.
The feature slug to add. The feature will be resolved from the subscription pricing model. Exactly one of featureId or featureSlug must be provided.
If true and the feature is a usage credit grant, credits will be granted immediately for the current billing period
Response
Successful response
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Was this page helpful?
⌘I