Admin API Endpoints
Overview
The Admin API provides administrative operations for managing customers, subscriptions, and payments. These endpoints are typically used by the internal admin panel.
Base Path
All admin endpoints are prefixed with /api/v1/admin
Subscription Management
List All Subscriptions
Endpoint: GET /v1/admin/subscriptions
Returns all subscriptions with associated customer information.
Response:
{
subscriptions: Array<{
id: string;
customerId: string;
status: "active" | "past_due" | "canceled" | "expired";
currentPeriodStart: string;
currentPeriodEnd: string;
plan: string;
customer: Customer | null;
}>;
}
Code Reference: services/api/admin/controller.ts - createAdminSubscriptionsController()
Get Subscription Details
Endpoint: GET /v1/admin/subscriptions/:id
Returns detailed subscription information including customer data.
Response: Subscription object with customer property
Customer Management
List All Customers
Endpoint: GET /v1/admin/customers
Returns all registered customers.
Response:
{
customers: Customer[];
}
Code Reference: services/api/admin/controller.ts - createAdminCustomersController()
Get Customer Details
Endpoint: GET /v1/admin/customers/:id
Returns specific customer by ID.
Response: Customer object or 404 Not Found
Regenerate License
Endpoint: POST /v1/admin/customers/:customerId/regenerate-license
Generates a new license key for the specified customer. Useful when a customer loses their license key or needs a reset.
Response:
{
license: {
id: string;
key: string; // New license key
customerId: string;
isActive: boolean;
createdAt: string;
updatedAt: string;
};
}
Code Reference: services/api/admin/controller.ts - createAdminLicensesController()
Payment History
List All Payments
Endpoint: GET /v1/admin/payments
Returns all payments with associated customer information.
Response:
{
payments: Array<{
id: string;
customerId: string;
amount: number;
currency: string;
status: "pending" | "completed" | "failed" | "refunded";
paymentType: "one_time" | "subscription_renewal";
createdAt: string;
customer: Customer | null;
}>;
}
Code Reference: services/api/admin/controller.ts - createAdminPaymentsController()
Get Payment Details
Endpoint: GET /v1/admin/payments/:id
Returns detailed payment information including customer.
Response: Payment object with customer property
Code Reference
- Controller:
services/api/admin/controller.ts - Contains four sub-controllers:
createAdminSubscriptionsController()createAdminLicensesController()createAdminCustomersController()createAdminPaymentsController()
Admin Operations Summary
| Resource | List All | Get One | Create | Update | Delete |
|---|---|---|---|---|---|
| Customers | GET /customers | GET /customers/:id | - | - | - |
| Subscriptions | GET /subscriptions | GET /subscriptions/:id | - | - | - |
| Payments | GET /payments | GET /payments/:id | - | - | Refund via payments API |
| Licenses | - | - | - | POST /regenerate-license | - |
Note on Write Operations
The admin API is primarily read-focused. Write operations like subscription cancellation/resumption are handled through the customer-facing subscription endpoints (POST /v1/subscriptions/:id/cancel, POST /v1/subscriptions/:id/resume) which are accessible to customers directly.