Skip to main content

Subscriptions

GET Get current subscription

https://focus.toggl.com/api/organizations/{organization_id}/subscriptions/current

Get current subscription.

curl  https://focus.toggl.com/api/organizations/{organization_id}/subscriptions/current \
-H "Content-Type: application/json"

Parameters

Path

nametyperequireddescription
organization_idintegertrueorganization ID

Response

200

NameTypeDescription
focus_trial_ended_atstringnull
organization_idinteger-
priceobject-
productobject-
subscriptionobject-
subscription_itemobject-
track_subscriptionobject-
price
NameTypeDescription
billing_period_in_monthsinteger-
cost_in_centsinteger-
currencystring-
tagstring-
track_pricing_plan_idinteger-
product
NameTypeDescription
handlestring-
namestring-
sitestring-
toggl_product_idstring-
track_enterpriseboolean-
track_plan_idinteger-
subscription
NameTypeDescription
customerobject-
idstring-
payment_failedboolean-
statestring-
subscription_itemobject-
urlstring-
customer
NameTypeDescription
idstring-
urlstring-
subscription_item
NameTypeDescription
discountobject-
quantityinteger-
subscription_item_idstringID is the Stripe subscription item ID. Empty for trial-only synthetic responses where no Stripe subscription item exists yet.
updated_atstring-
discount
NameTypeDescription
amount_offinteger-
coupon_idstring-
currencystring-
durationstring-
namestring-
percent_offnumber-
promotion_code_idstring-
subscription_item
NameTypeDescription
discountobject-
quantityinteger-
subscription_item_idstringID is the Stripe subscription item ID. Empty for trial-only synthetic responses where no Stripe subscription item exists yet.
updated_atstring-
discount
NameTypeDescription
amount_offinteger-
coupon_idstring-
currencystring-
durationstring-
namestring-
percent_offnumber-
promotion_code_idstring-
track_subscription
NameTypeDescription
cancel_datestring-
current_period_ends_atstring-
current_period_starts_atstring-
end_datestring-
payment_failedboolean-
start_datestring-
subscription_created_atstring-
subscription_updated_atstring-
trialobject-
trial
NameTypeDescription
availableboolean-
end_datestring-
start_datestring-
trial_plan_idinteger-

400

Invalid request

403

Insufficient permissions

500

Internal Server Error

GET Get current trial

https://focus.toggl.com/api/organizations/{organization_id}/subscriptions/trials/current

Get the current active trial for the Focus product.

curl  https://focus.toggl.com/api/organizations/{organization_id}/subscriptions/trials/current \
-H "Content-Type: application/json"

Parameters

Path

nametyperequireddescription
organization_idintegertrueorganization ID

Response

200

Current active trial

NameTypeDescription
idinteger-
organization_idinteger-
plan_idinteger-
plan_namestring-
product_handlestring-
toggl_product_namestring-
trial_cancels_atstring-
trial_created_atstring-
trial_deleted_atstring-
trial_ended_atstring-
trial_started_atstring-
trial_typestring-

204

No active trial found

400

Invalid request

404

Subscription not found

500

Internal server error

POST Upserts a trial

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/subscriptions/upsert-forced-trial

Creates or updates a trial for the organization based on workspace data and Plan import history.

curl -X POST https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/subscriptions/upsert-forced-trial \
-H "Content-Type: application/json" \
-d '\{"plan_workspace_id":"integer"\}'

Parameters

Path

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID

Body

NameTypeDescription
plan_workspace_idinteger-

Response

200

Trial was created or updated

NameTypeDescription
idinteger-
organization_idinteger-
plan_idinteger-
plan_namestring-
product_handlestring-
toggl_product_namestring-
trial_cancels_atstring-
trial_created_atstring-
trial_deleted_atstring-
trial_ended_atstring-
trial_started_atstring-
trial_typestring-

204

No trial created or updated (existing unchanged trial, paid subscription, or no eligible trial)

400

Invalid request

409

Forced trial already exists or org has active subscription

500

Internal server error

© 2026 Toggl. All rights reserved.