Documentation Index
Fetch the complete documentation index at: https://docs.linkutm.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Billing runs on Dodo Payments. Endpoints live under/api/v1/payments. Most are workspace-scoped and require the x-workspace-id header plus workspace admin access. Plan listings are public.
Plans
List plans
Get a plan
Plan fields
| Field | Type | Notes |
|---|---|---|
price | number | Monthly price. |
yearlyPrice | number | Yearly price. |
currency | string | ISO currency code. |
badge | string | null | Display badge, e.g. Popular. |
maxLinks | integer | Link maximum. |
maxClicks | integer | Tracked-click maximum per period. |
maxApiCalls | integer | API call maximum per period. |
maxTeamMembers | integer | Team member maximum. |
maxDomains | integer | Custom domain maximum. |
maxFolders | integer | Folder maximum. |
maxTags | integer | Tag maximum. |
maxUtmTemplates | integer | UTM template maximum. |
maxQrCodes | integer | QR code maximum. |
maxPasswordProtectedLinks | integer | Password-protected link maximum. |
analyticsRetention | integer | Analytics retention window (days). |
features | object | Feature flags (JSON). |
Checkout
UUID of the target plan.
monthly or yearly.Target workspace. Defaults to the workspace in
x-workspace-id.Confirm checkout
The subscription ID returned by the checkout flow.
Customer portal
Subscription
Get current subscription
Subscription fields
| Field | Type | Notes |
|---|---|---|
status | string | Subscription state. |
billingCycle | string | monthly or yearly. |
currentPeriodStart | timestamp | Start of the current billing period. |
currentPeriodEnd | timestamp | End of the current billing period. |
cancelAtPeriodEnd | boolean | true if a cancellation is scheduled. |
linksUsed | integer | Links consumed this period. |
clicksUsed | integer | Clicks tracked this period. |
apiCallsUsed | integer | API calls made this period. |
Cancel
currentPeriodEnd (cancelAtPeriodEnd becomes true).
Plan changes
Schedule a downgrade
Target (lower) plan UUID.
monthly or yearly.Downgrade preview
Execute a downgrade
Target plan UUID.
monthly or yearly.Domain UUIDs to keep.
Team member UUIDs to keep.
UTM template UUIDs to keep.
Tag UUIDs to keep.
Folder UUIDs to keep.
Upgrade activation preview
Save upgrade selections
Target plan UUID.
Team member UUIDs to reactivate.
Domain UUIDs to reactivate.
Tag UUIDs to reactivate.
Folder UUIDs to reactivate.
UTM template UUIDs to reactivate.
Billing history
Payment history
Download an invoice
Sync history
Plan, usage & features
Current plan and usage
All usage limits
A single limit
limitType is one of: links, clicks, apiCalls, teamMembers, domains, folders, tags, utmTemplates, passwordProtectedLinks.
Feature check
Webhook
@dodopayments/express - this endpoint is for Dodo, not for client integrations.
Errors
| Code | When |
|---|---|
400 | Invalid planId, billingCycle, or missing fields |
401 | Missing or invalid JWT |
403 | Caller is not a workspace admin |
404 | Plan, subscription, or workspace not found |
429 | Rate limit exceeded (100 requests/minute per IP) |