Skip to content
Follow yggy on LinkedInFollow @yggy_tech on X

List available plans with current prices

GET
/api/v1/billing/plans
curl --request GET \
--url https://api.yggy.tech/api/v1/billing/plans \
--header 'Authorization: Bearer <token>'

Returns all available subscription plans with live pricing from Stripe. Prices are returned in the smallest currency unit (e.g. cents for USD).

Plans with pricing

Media type application/json
object
plans
required
Array<object>
object
name
required
string
monthlyPrice
required

Monthly seat price in cents, excluding VAT

number | null
annualPrice
required

Yearly seat price in cents, excluding VAT

number | null
currency
required
string | null
trialDays
required
number | null
perSeat
required

Whether the plan is priced per seat

boolean
perSeatLimits
required

Keys of limits multiplied by billed seats; other limits are one pool per workspace

Array<string>
limits
required

Included allowance: extractionCredits, storageGb, mcpDaily (absent means no plan cap)

object
key
additional properties
number
meteredPrices

Usage prices beyond the included pool, keyed by credits and storage

object
key
additional properties
object
priceId
required
string
limit
required

Included allowance in the price itself; null when the plan pool applies

number | null
unitAmount
required

Price per credit, or per GB for storage, in cents

number | null
currency
required
string
Example generated
{
"plans": [
{
"name": "example",
"monthlyPrice": 1,
"annualPrice": 1,
"currency": "example",
"trialDays": 1,
"perSeat": true,
"perSeatLimits": [
"example"
],
"limits": {
"additionalProperty": 1
},
"meteredPrices": {
"additionalProperty": {
"priceId": "example",
"limit": 1,
"unitAmount": 1,
"currency": "example"
}
}
}
]
}

Stripe not configured

Media type application/json
object
success
required
boolean
error
required
object
message
required
string
code
required
string
Allowed values: INTERNAL_ERROR VALIDATION_ERROR UNAUTHORIZED RATE_LIMITED ORG_REQUIRED FORBIDDEN NOT_FOUND CONFLICT PROJECT_DENIED USAGE_LIMIT_EXCEEDED HUGINN_ERROR HUGINN_STREAM_ERROR QUERY_FAILED PROVIDER_CONFLICT PROVIDER_CONFIG_INVALID PROVIDER_NOT_CONNECTED PROVIDER_RATE_LIMITED PROJECT_MEMBER_USER_NOT_IN_ORG PROJECT_MEMBER_UNKNOWN_ROLE PROJECT_MEMBER_LAST_OWNER PROJECT_CONFLICT STORAGE_NOT_CONFIGURED BILLING_NOT_CONFIGURED LICENSE_INACTIVE PLAN_REQUIRED MEMBER_LIMIT_REACHED SAGA_ASK_QUOTA_EXCEEDED SAGA_ASK_RATE_LIMITED SAGA_ASK_BUSY SAGA_ASK_PAUSED SAGA_ASK_UPSTREAM SAGA_DICTATION_BUSY SAGA_DICTATION_UNAVAILABLE SAGA_SHARE_LINK_LIMIT PROJECT_MEMBERSHIP_JWT_TOO_LARGE WEBHOOK_URL_INVALID WEBHOOK_ADDRESS_BLOCKED WEBHOOK_EVENT_UNKNOWN WEBHOOK_ENDPOINT_LIMIT WEBHOOK_ENDPOINT_DISABLED WEBHOOK_DELIVERY_IN_PROGRESS ORG_KEY_PERSONAL_SCOPE API_KEY_PERMISSION_EXCEEDS_ROLE API_KEY_NO_PERMISSIONS ORG_KEY_GRAPH_SCOPE_UNAVAILABLE ORG_KEY_TOO_MANY_PROJECTS SENDER_IS_LOGIN_EMAIL SENDER_TAKEN
details
Example
{
"success": false,
"error": {
"code": "INTERNAL_ERROR"
}
}