Subscriptions
Overview
A Subscription is the primary resource, and it encapsulates all things related to the endpoints and tokens you define. This also includes a name, a start and end timestamp, and other metadata. This is one of the first resources that you should create to get started using Triton and making RPC requests. You'll need to have an account and obtain an account_uuid
to create a subscription.
List Subscriptions
GET /api/v1/subscriptions
Returns subscriptions that the current authentication token has access to.
Parameters
All parameters are optional.
subscription_type
string
Will filter the results by subscription_type.
account_uuid
string
Will filter the results by account_uuid.
user_uuid
string
Will filter the results by user_uuid.
per
integer
Will limit the results to NN entries per page, defaults to 50
page
integer
Will return the results from passed page, defaults to 1
Request
Example requests with page filtering, number of subscriptions per page and filtering by subscription type, account uuid or user uuid.
curl 'https://customers.triton.one/api/v1/subscriptions' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept:application/json"
curl 'https://customers.triton.one/api/v1/subscriptions?subscription_type=mainnet-shared' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept:application/json"
curl 'https://customers.triton.one/api/v1/subscriptions?account_uuid=c92a9cea-47cc-494b-b1b0-4230a2316ee5' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept:application/json"
curl 'https://customers.triton.one/api/v1/subscriptions?per=10&page=2' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept:application/json"
Response
Returns a hash with the subscriptions
key containing an array of subscriptions objects and the meta
containing pagination data.
{
"subscriptions": [
{ subscription_object_1 },
{ subscription_object_2 },
{ subscription_object_3 },
...
],
"meta": {
"current_page": 1,
"next_page": null,
"per_page": 50,
"prev_page": null,
"total_pages": 1,
"total_count": 3
}
}
Get Subscription
GET /api/v1/subscriptions/:subscription-uuid
Get Subscription that the current authentication token has access to.
Parameters
subscription-uuid
is the only parameter that needs to be provided.
Request
Example request containing subscription-uuid
curl 'https://customers.triton.one/api/v1/subscriptions/c92a9cea-47cc-494b-b1b0-4230a2316ee5' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept:application/json"
Response
Returns a hash with the subscription
key containing a subscription object. The response data for subscription object is the same as for GET /api/v1/subscriptions
. Below is the sample response.
uuid
string
The generated primary key to reference this subscription.
endpoints
array[{endpoint_object}, ...]
An array of Endpoint objects, documented in the Endpoints section.
tokens
array[{token_object}, ...]
An array of Token objects, documented in the Tokens section.
supported_rate_tiers
array[{supported_rate_tier_object}, ...]
An array of Supported Rate Tiers objects, documented in the Rate Tiers section.
deactivation_reasons
array[{deactivation_reason_object}, ...]
An array of Deactivation Reasons objects.
{
"subscription": {
"uuid": "5d8d4591-12cc-424a-8f39-32de0ba6acc3",
"name": "Example App",
"account_uuid": "4ad26b8a-a9a1-4f9b-b0fa-c13a682d64b1",
"subscription_type": "mainnet-shared",
"starts_at": null,
"ends_at": null,
"is_active": false,
"account": { // An account that is assigned to a given subscription
"uuid": "4ad26b8a-a9a1-4f9b-b0fa-c13a682d64b1",
"name": "Tyler-qt65u8xzj2",
"billing_address1": "420 Effertz Estates",
"billing_address2": null,
"billing_address3": null,
"billing_city": "Padbergville",
"billing_state_or_province": "Alabama",
"billing_postal_code": "78007",
"billing_country_code": "US",
"telephone_country_code": "+61-8",
"telephone": "870-800-5877",
"last_time_activated": "02/05/2023",
"is_active": true,
"created_at": "2023-05-02T16:32:46Z",
"updated_at": "2023-05-02T16:32:46Z",
"users_count": 1,
"tokens_count": 0,
"endpoints_count": 1,
"subscriptions_count": 2,
"is_helio_pay_stream_active": false,
"pay_stream_id": "639cbc90a989eacb2574a055",
"metrics_enabled": false,
"payment_method": "manual",
"maximum_tokens": -1,
"address_watch_lists": false,
"allow_ip_ranges": false
},
"supported_rate_tiers": [ // A roll-up of related supported rate tiers
{
"uuid": "ca141949-a46f-446a-abee-a031e501fea0",
"name": "developer",
"active_tokens_count": 5,
"active_endpoints_count": 4,
"supported_subscription_type_uuids": [
"413defdd-b011-4dda-8145-fa782524284c"
]
}
],
"endpoints": [ // A roll-up of related endpoints
{
"uuid": "23ab660b-cb09-4ca5-b49a-518b422a8d81",
"name": "Jacobson LLC cbp4i3u71m",
"value": null,
"slug": "academy-strict-fnalfmab4l",
"rate_tier": "developer",
"is_active": true,
"value_override": null,
"values": [
"academy-strict-fnalfmab4l.TEST 1",
"academy-strict-fnalfmab4l.TWST 2"
],
"default_values": [
"academy-strict-fnalfmab4l.TEST 1",
"academy-strict-fnalfmab4l.TWST 2"
],
"allowed_origins": [
{
"id": 1,
"uuid": "b4d5ec62-410d-45f8-8b45-44fe6641cf1f",
"value": "vonrueden-haag.co",
"endpoint_id": 1,
"created_at": "2023-05-02T16:32:46Z",
"updated_at": "2023-05-02T16:32:46Z",
"is_active": true
}
]
}
],
"tokens": [ // A roll-up of tokens for related Subscription, Account, & Users
{
"uuid": "fa2fec9c-c3e6-4625-b11f-7906dff5f37c",
"name": "Token name",
"value": "8d43f8dc-8aa3-4fa2-b09e-361f6af8d972",
"rate_tier": "tier1",
"auth_username": "tylerqt-tylerwi-db8c",
"is_active": false
}
],
"deactivation_reasons": [
{
"description": "Deactivation reason description",
"created_at": "2023-07-03T12:00:22Z"
}
]
}
}
Create Subscription
This API is only limited to account management API tokens created with the reseller role.
POST /api/v1/subscriptions
Parameters
account_uuid *required
string
Primary key of the account that the subscription should belong to.
subscription_type *required
string
Name of the subscription type. Obtained from <link>Subscription Types
name *required
string
A human readable display name to describe the subscription.
starts_at
datetime
The scheduled timestamp for the subscription to become active. Defaults to null, which means the subscription is immediately active.
ends_at
datetime
The timestamp for which the subscription becomes inactive. Defaults to null, which means the subscription never becomes inactive.
Request
Request JSON (-d
command line parameter) must contain subscription
key for a subscription object. All parameters should be placed inside.
curl -X POST 'https://customers.triton.one/api/v1/subscriptions' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept: application/json" -d '
{
"subscription": {
"account_uuid": "c92a9cea-47cc-494b-b1b0-4230a2316ee5", // obtain from UI
"subscription_type": "mainnet-shared",
"name": "Example App",
"starts_at": "2023-07-10T10:25:30Z",
"ends_at": "2023-07-30T05:00:00Z"
}
}'
Response
Returns a hash with the subscription
key containing a subscription object. Note that endpoints
, tokens
and deactivation_reasons
arrays are empty because this is newly created subscription. Below is the sample response.
{
"subscription": {
"uuid": "5d8d4591-12cc-424a-8f39-32de0ba6acc3",
"name":"Example App",
"account_uuid": "4ad26b8a-a9a1-4f9b-b0fa-c13a682d64b1",
"subscription_type": "mainnet-shared",
"starts_at": null,
"ends_at": null,
"is_active": false,
"account": {
"uuid": "4ad26b8a-a9a1-4f9b-b0fa-c13a682d64b1",
"name": "Tyler-qt65u8xzj2",
"billing_address1": "420 Effertz Estates",
"billing_address2": null,
"billing_address3": null,
"billing_city": "Padbergville",
"billing_state_or_province": "Alabama",
"billing_postal_code": "78007",
"billing_country_code": "US",
"telephone_country_code": "+61-8",
"telephone": "870-800-5877",
"last_time_activated": "02/05/2023",
"is_active": true,
"created_at": "2023-05-02T16:32:46Z",
"updated_at": "2023-05-02T16:32:46Z",
"users_count": 1,
"tokens_count": 0,
"endpoints_count": 1,
"subscriptions_count": 2,
"is_helio_pay_stream_active": false,
"pay_stream_id": "639cbc90a989eacb2574a055",
"metrics_enabled": false,
"payment_method": "manual",
"maximum_tokens": -1,
"address_watch_lists": false,
"allow_ip_ranges": false
},
"supported_rate_tiers": [
{
"uuid": "ca141949-a46f-446a-abee-a031e501fea0",
"name": "developer",
"active_tokens_count": 5,
"active_endpoints_count": 4,
"supported_subscription_type_uuids": [
"413defdd-b011-4dda-8145-fa782524284c"
]
}
],
"endpoints_count": 0,
"tokens_count": 0,
"endpoints": [],
"tokens": [],
"deactivation_reasons": []
}
}
Update Subscription
PUT /api/v1/subscriptions/:subscription_uuid
Update attributes like name
on an existing Subscription that the current authentication token has access to. Any other updatable attributes for a Subscription like Endpoints and Tokens should be updated via their distinct account management APIs.
Parameters
name
string
A human readable display name to describe the subscription.
Request
Request JSON (-d
command line parameter) must contain subscription
key for a subscription object. All parameters should be placed inside.
curl -X PUT 'https://customers.triton.one/api/v1/subscriptions/c92a9cea-47cc-494b-b1b0-4230a2316ee5' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept: application/json" -d '
{
"subscription": {
"name": "Example App"
}
}'
Response
Returns a hash with the subscription
key containing a subscription object. The response data for subscription object is the same as for GET /api/v1/subscriptions/:subscription-uuid
nad GET /api/v1/subscription
{
"subscription": {
"name": "Example App" // subscription attributes are the same as for GET and POST
...
"supported_rate_tiers": [ // A roll-up of related supported rate tiers
{ supported_rate_tier_object_1 },
{ supported_rate_tier_object_2 },
{ supported_rate_tier_object_3 },
...
],
"endpoints": [ // A roll-up of related endpoints
{ endpoint_object_1 },
{ endpoint_object_2 },
{ endpoint_object_3 },
...
],
"tokens": [ // A roll-up of tokens for related Subscription, Account, & Users
{ token_object_1 },
{ token_object_2 },
{ token_object_3 },
...
],
"deactivation_reasons": [
{ deactivation_reason_object_1 },
{ deactivation_reason_object_2 },
{ deactivation_reason_object_3 },
...
]
}
}
Activate Subscription
This API is only limited to account management API tokens created with the reseller role.
PUT /api/v1/subscriptions/:subscription_uuid/activate
Activate a subscription so that it can be used.
Parameters
subscription_uuid
is the only parameter that needs to be provided.
Request
curl -X PUT 'https://customers.triton.one/api/v1/subscriptions/74ea9d9a-4b2a-4f01-af47-1c175f8a2af6/activate' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept:application/json"
Response
204 No Content
Deactivate Subscription
This API is only limited to account management API tokens created with the reseller role.
PUT /api/v1/subscriptions/:subscription_uuid/deactivate
Deactivate a subscription so that it cannot be used.
Parameters
All parameters are optional.
deactivation_reason
string
A human readable description to describe the deactivation reason.
Request
Example request with deactivation_reason
.
curl -X PUT 'https://customers.triton.one/api/v1/subscriptions/74ea9d9a-4b2a-4f01-af47-1c175f8a2af6/deactivate' -H "Authorization: secret-api-token" -H "Content-Type: application/json" -H "Accept:application/json" -d '
{
"deactivation_reason": "Deactivation reason description"
}'
Response
204 No Content
Last updated
Was this helpful?