List Project Subscriptions
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions', 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://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"subscriptions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_test_mode": true,
"subscription_id": "<string>",
"status": "<string>",
"quantity": 123,
"created_at": "2023-11-07T05:31:56Z",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_id": "<string>",
"plan_name": "<string>",
"current_period_start": "2023-11-07T05:31:56Z",
"current_period_end": "2023-11-07T05:31:56Z",
"cancel_at": "2023-11-07T05:31:56Z",
"cancelled_at": "2023-11-07T05:31:56Z"
}
],
"total": 123,
"page": 123,
"page_size": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Stripe Configuration
List Project Subscriptions
List all Stripe subscriptions for a specific project
GET
/
api
/
v1
/
payments
/
stripe
/
projects
/
{project_id}
/
subscriptions
List Project Subscriptions
curl --request GET \
--url https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions', 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://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devkit4ai.com/api/v1/payments/stripe/projects/{project_id}/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"subscriptions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_test_mode": true,
"subscription_id": "<string>",
"status": "<string>",
"quantity": 123,
"created_at": "2023-11-07T05:31:56Z",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customer_id": "<string>",
"plan_name": "<string>",
"current_period_start": "2023-11-07T05:31:56Z",
"current_period_end": "2023-11-07T05:31:56Z",
"cancel_at": "2023-11-07T05:31:56Z",
"cancelled_at": "2023-11-07T05:31:56Z"
}
],
"total": 123,
"page": 123,
"page_size": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}List all Stripe subscriptions for a specific project. This endpoint is for developers to view all subscriptions created by their end users.
Authentication
This endpoint requires developer authentication via OAuth2 Bearer Token. You must own the project.
Path Parameters
string (UUID)
required
The unique identifier of the project
Query Parameters
boolean
default:"true"
Filter by test mode. Set to
false for live subscriptions only.integer
default:"1"
Page number for pagination (minimum: 1)
integer
default:"50"
Number of items per page (1-100)
Response
array
Array of subscription objects
Show Subscription
Show Subscription
string (UUID)
Internal subscription ID
string (UUID)
Project ID
string (UUID)
End user ID (if linked)
boolean
Whether this is a test subscription
string
Stripe subscription ID (e.g.,
sub_1ABC...)string
Stripe customer ID
string
Subscription status
string
Plan or product name
integer
Subscription quantity
string (datetime)
Current billing period start
string (datetime)
Current billing period end
string (datetime)
Scheduled cancellation date
string (datetime)
When the subscription was cancelled
string (datetime)
When the subscription was created
integer
Total number of subscriptions
integer
Current page number
integer
Items per page
Example Request
curl "https://api.devkit4ai.com/api/v1/payments/stripe/projects/550e8400-e29b-41d4-a716-446655440000/subscriptions?test_mode=true&page=1&page_size=20" \
-H "Authorization: Bearer {developer_jwt}"
Example Response
{
"subscriptions": [
{
"id": "880e8400-e29b-41d4-a716-446655440000",
"project_id": "550e8400-e29b-41d4-a716-446655440000",
"user_id": "990e8400-e29b-41d4-a716-446655440000",
"is_test_mode": true,
"subscription_id": "sub_1ABC123def456",
"customer_id": "cus_XYZ789abc",
"status": "active",
"plan_name": "Pro Plan",
"quantity": 1,
"current_period_start": "2026-01-01T00:00:00Z",
"current_period_end": "2026-02-01T00:00:00Z",
"cancel_at": null,
"cancelled_at": null,
"created_at": "2026-01-01T00:00:00Z"
}
],
"total": 1,
"page": 1,
"page_size": 20
}
Subscription Statuses
| Status | Description |
|---|---|
active | Subscription is active and paid |
trialing | In free trial period |
past_due | Payment failed, awaiting retry |
canceled | Subscription has been canceled |
incomplete | Initial payment failed |
incomplete_expired | Initial payment window expired |
unpaid | Multiple payment failures |
Filtering by Mode
Test vs live subscriptions are stored separately:Always use
test_mode=true during development. Switch to test_mode=false in production to see real subscriptions.Related Pages
List Project Payments
View project payment history
List All Subscriptions
View subscriptions across projects
Get My Subscription
End user subscription endpoint
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Query Parameters
Filter by test mode
Required range:
x >= 1Required range:
1 <= x <= 100
