Skip to main content

Account & billing

Profile and company

MethodEndpointPurpose
GET/profileThe member the key belongs to.
PUT/profileUpdate that member's profile.
GET/companyCompany record.
PUT/companyUpdate it.
GET / PUT/settingsCompany settings.
GET / PUT/white-labellingWhite-label branding.

GET /profile is the cheapest way to verify a key works and see which member and company it resolves to. Use it as a health check.

Members and roles

MethodEndpointPurpose
GET / POST / DELETE/memberList / invite / remove.
POST/member/bulkInvite many at once.
GET / PUT/member/:idOne member.
PUT/member/block/:idBlock.
PUT/member/unblock/:idUnblock.
PUT/member/transfer-ownership/:idTransfer company ownership.
ALL/member/invite/:idResend an invitation.
GET / POST / DELETE/roleManage roles.
GET / PUT/role/:idOne role.

:::warning Roles do not constrain an API key Roles gate the web-app session path. The key path skips role enforcement entirely — see What a key can reach. Managing roles through the API is still useful for the humans in the account; it does not limit the key doing the managing. :::

Ownership transfer is irreversible without the new owner's cooperation. Confirm before calling it.

Plans and subscriptions

These sit above the subscription check, so they stay reachable when a subscription has lapsed.

MethodEndpointPurpose
GET/plansAvailable plans.
GET/plans/:idOne plan.
POST/subscriptionCreate a subscription.
POST/subscription/previewPrice a change before making it.
POST/subscription/changeChange plan.
POST/subscription/seats/previewPrice a seat change.
POST/subscription/seats/changeChange seats.
GET/subscription/historyPast subscriptions.
GET/subscription/listAll subscriptions.
GET/subscription/upcomingQueued future changes.
DELETE/subscription/queuedCancel all queued changes.
DELETE/subscription/queued/:subscriptionIdCancel one queued change.
DELETE/subscription/currentCancel the current subscription.
DELETE/subscription/:subscriptionIdCancel a specific one.

Always preview before change — it returns the proration and the amount that will actually be charged.

Payments

MethodEndpointProvider
POST/razorpayCreate a Razorpay order.
POST/razorpay/captureCapture it.
POST/stripeStripe.
POST/paypalPayPal.
POST/payuPayU.
POST/phonepePhonePe.
POST/manual-paymentRecord an offline payment.
GET/coupons/:codeValidate a coupon.

:::note PayU has no capture endpoint here PayU returns the browser to a public success/failure URL and notifies a public webhook, neither of which carries your credentials. Both live on the public (unauthenticated) routes, not under /key/protected. :::

Transactions

MethodEndpointPurpose
GET/transaction-historyAll transactions.
GET/transaction-history/:idOne transaction.
GET/transaction-history/:id/invoiceInvoice PDF.

Reference data

MethodEndpointPurpose
GET/timezoneList timezones.
GET/timezone/search?q=Search.
GET/timezone/statsStatistics.
GET / PUT / DELETE/timezone/:idOne timezone.
POST/timezoneCreate.
POST/timezone/initializeSeed from the bundled dataset.
GET/geography/search?q=Autocomplete cities, states and countries.

/geography/search needs at least two characters and returns up to six cities, six states and six countries, each with a label and a type. Use it to normalize location input before writing it to a contact.