API reference
Application Manager
Operate retail sub-accounts: provisioning, credit and routing.
BrowseApplication Manager
Get reseller analytics across your sub-accounts
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Headline totals and quality, a daily series, per-sub-account margin and top destinations. Figures are JSON numbers (analytics rollups, not ledger entries).
Parameters
daysquery · integer
Trailing window in days (default 30)
Response 200
datarequiredobject
periodrequiredobject · data.period
daysrequiredinteger · data.period.days
summaryrequiredobject · data.summary
callsrequiredinteger · data.summary.calls
smsrequiredinteger · data.summary.sms
minutesrequiredinteger · data.summary.minutes
revenuerequirednumber · data.summary.revenue
USD, JSON number (analytics rollup)marginrequirednumber · data.summary.margin
USD, JSON number (analytics rollup)asrrequirednumber | null · data.summary.asr
Answer rate percent over customer sessions; null with no callsacdrequirednumber · data.summary.acd
carrierCostrequirednumber · data.summary.carrierCost
activeSubsrequiredinteger · data.summary.activeSubs
timeseriesrequiredobject[] · data.timeseries
daterequiredstring · data.timeseries[].date
YYYY-MM-DDcallsrequiredinteger · data.timeseries[].calls
smsrequiredinteger · data.timeseries[].sms
revenuerequirednumber · data.timeseries[].revenue
marginrequirednumber · data.timeseries[].margin
bySubAccountrequiredobject[] · data.bySubAccount
byRouterequiredobject[] · data.byRoute
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get your Application Manager settings
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Created with defaults on first read.
Response 200
datarequiredobject
operatorIdrequiredstring (uuid) · data.operatorId
defaultMarkupPctrequiredstring · data.defaultMarkupPct
defaultBillingIncrementrequiredstring · data.defaultBillingIncrement
minMarginPctrequiredstring · data.minMarginPct
subLowBalanceThresholdrequiredstring · data.subLowBalanceThreshold
"0.00" disables low-balance alertsdefaultDailySpendCaprequiredstring | null · data.defaultDailySpendCap
US dollars as a decimal string with 2 decimal places, e.g. "50.00"defaultMaxConcurrentCallsrequiredinteger | null · data.defaultMaxConcurrentCalls
brandNamerequiredstring | null · data.brandName
brandColorrequiredstring | null · data.brandColor
brandLogoUrlrequiredstring | null · data.brandLogoUrl
requireTrunkApprovalrequiredboolean · data.requireTrunkApproval
requireTrunkReadinessrequiredboolean · data.requireTrunkReadiness
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Update your Application Manager settings
PUT/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Default markup, low-balance threshold, default fraud caps and portal branding. Send only what changes.
Request body (application/json)
defaultMarkupPctnumber
0 to 100000subLowBalanceThresholdnumber
0 to 1000000defaultDailySpendCapnumber | null
0 to 1000000defaultMaxConcurrentCallsinteger | null
0 to 100000brandNamestring | null
max 120 charsbrandColorstring | null
max 9 charsbrandLogoUrlstring (uri) | null
max 500 chars
Response 200
datarequiredobject
Same fields as ApplicationSettings, shown earlier on this page.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get sub-account totals
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Response 200
datarequiredobject
subCountrequiredinteger · data.subCount
activeSubCountrequiredinteger · data.activeSubCount
aggregateBalancerequirednumber · data.aggregateBalance
Sum of sub-account balances, USD as a JSON number
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List your sub-accounts
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Newest first, cursor-paginated and searchable by label or external reference. total counts every match.
Parameters
cursorquery · string (uuid)
limitquery · integer
Default 50searchquery · string
statusquery · string
One of draft, active, suspended, closedlowBalanceOnlyquery · string
One of true, 1
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
labelrequiredstring · data[].label
externalRefrequiredstring | null · data[].externalRef
balancerequiredmoney · data[].balance
USD as a decimal string with exactly 6 places, e.g. "0.012500".statusrequiredstring · data[].status
One ofdraft,active,suspended,closedmarkupPctrequiredstring | null · data[].markupPct
Markup percent as a 3-decimal string; null = operator defaultdailySpendCaprequiredstring | null · data[].dailySpendCap
null = operator default; "0.00" = unlimitedmaxConcurrentCallsrequiredinteger | null · data[].maxConcurrentCalls
creditLimitrequiredstring · data[].creditLimit
Postpaid credit, "0.00" = strict prepaidcurrencyrequiredstring · data[].currency
Display currency for statementsmax 3 charsportalEmailrequiredstring | null · data[].portalEmail
autoSuspendedrequiredboolean · data[].autoSuspended
Suspended automatically by a daily cap, lifts itselfsipUsernamerequiredstring | null · data[].sipUsername
createdAtrequiredstring (date-time) · data[].createdAt
ISO-8601 timestamp (UTC)updatedAtrequiredstring (date-time) · data[].updatedAt
ISO-8601 timestamp (UTC)lowBalancerequiredboolean · data[].lowBalance
nextCursorstring | null
hasMoreboolean
totalinteger
lowBalanceThresholdnumber
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Create a sub-account
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Provisions its SIP credentials and one API key, both returned ONCE. Requires an active route purchase or an active route of your own.
Request body (application/json)
labelrequiredstring
max 255 charsexternalRefstring | null
max 10000 charsmarkupPctnumber | null
0 to 100000dailySpendCapnumber | null
0 to 1000000maxConcurrentCallsinteger | null
0 to 100000creditLimitnumber | null
0 to 10000000currencystring
max 3 chars
Response 201
datarequiredobject
idrequiredstring (uuid) · data.id
labelrequiredstring · data.label
externalRefrequiredstring | null · data.externalRef
balancerequiredmoney · data.balance
USD as a decimal string with exactly 6 places, e.g. "0.012500".statusrequiredstring · data.status
One ofdraft,active,suspended,closedmarkupPctrequiredstring | null · data.markupPct
Markup percent as a 3-decimal string; null = operator defaultdailySpendCaprequiredstring | null · data.dailySpendCap
null = operator default; "0.00" = unlimitedmaxConcurrentCallsrequiredinteger | null · data.maxConcurrentCalls
creditLimitrequiredstring · data.creditLimit
Postpaid credit, "0.00" = strict prepaidcurrencyrequiredstring · data.currency
Display currency for statementsmax 3 charsportalEmailrequiredstring | null · data.portalEmail
autoSuspendedrequiredboolean · data.autoSuspended
Suspended automatically by a daily cap, lifts itselfsipUsernamerequiredstring | null · data.sipUsername
createdAtrequiredstring (date-time) · data.createdAt
ISO-8601 timestamp (UTC)updatedAtrequiredstring (date-time) · data.updatedAt
ISO-8601 timestamp (UTC)apiKeyrequiredstring · data.apiKey
The sub-account API key. Returned ONCE.apiKeyPrefixrequiredstring · data.apiKeyPrefix
sipPasswordrequiredstring · data.sipPassword
The SIP password. Returned ONCE.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Create up to 100 sub-accounts at once
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Each item is created independently, so one bad row does not fail the batch. Each created entry carries its one-time credentials.
Request body (application/json)
subAccountsrequiredobject[]
labelrequiredstring · subAccounts[].label
max 255 charsexternalRefstring | null · subAccounts[].externalRef
max 10000 charsmarkupPctnumber | null · subAccounts[].markupPct
0 to 100000dailySpendCapnumber | null · subAccounts[].dailySpendCap
0 to 1000000maxConcurrentCallsinteger | null · subAccounts[].maxConcurrentCalls
0 to 100000creditLimitnumber | null · subAccounts[].creditLimit
0 to 10000000currencystring · subAccounts[].currency
max 3 chars
Response 201
datarequiredobject
createdrequiredobject[] · data.created
Same fields as SubAccountCreated, shown earlier on this page.failedrequiredobject[] · data.failed
labelrequiredstring · data.failed[].label
errorrequiredstring · data.failed[].error
requestedrequiredinteger · data.requested
createdCountrequiredinteger · data.createdCount
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get a sub-account
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Parameters
idrequiredpath · string
Response 200
datarequiredobject
idrequiredstring (uuid) · data.id
labelrequiredstring · data.label
externalRefrequiredstring | null · data.externalRef
balancerequiredmoney · data.balance
USD as a decimal string with exactly 6 places, e.g. "0.012500".statusrequiredstring · data.status
One ofdraft,active,suspended,closedmarkupPctrequiredstring | null · data.markupPct
Markup percent as a 3-decimal string; null = operator defaultdailySpendCaprequiredstring | null · data.dailySpendCap
null = operator default; "0.00" = unlimitedmaxConcurrentCallsrequiredinteger | null · data.maxConcurrentCalls
creditLimitrequiredstring · data.creditLimit
Postpaid credit, "0.00" = strict prepaidcurrencyrequiredstring · data.currency
Display currency for statementsmax 3 charsportalEmailrequiredstring | null · data.portalEmail
autoSuspendedrequiredboolean · data.autoSuspended
Suspended automatically by a daily cap, lifts itselfsipUsernamerequiredstring | null · data.sipUsername
createdAtrequiredstring (date-time) · data.createdAt
ISO-8601 timestamp (UTC)updatedAtrequiredstring (date-time) · data.updatedAt
ISO-8601 timestamp (UTC)
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Update a sub-account
PATCH/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Suspending or closing revokes its API keys and stops its campaigns.
Parameters
idrequiredpath · string
Request body (application/json)
labelstring
max 255 charsstatusstring
One ofactive,suspended,closedmarkupPctnumber | null
0 to 100000dailySpendCapnumber | null
0 to 1000000maxConcurrentCallsinteger | null
0 to 100000creditLimitnumber | null
0 to 10000000currencystring
max 3 chars
Response 200
datarequiredobject
Same fields as SubAccount, shown earlier on this page.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Fund a sub-account from your balance
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
- Safe retries
- Send
X-Idempotency-Key; a replay within 24 hours returns the first response. - Moves money
- Moves money between your balance and a sub-account.
Moves money from your balance into the sub-account. Only active sub-accounts can be funded.
Parameters
idrequiredpath · string
X-Idempotency-Keyheader · string
Any unique string (a UUID is ideal). Replays within 24 hours return the first response instead of acting twice.
Request body (application/json)
amountrequirednumber
min 0
Response 200
datarequiredobject
operatorBalancerequirednumber | null · data.operatorBalance
Your balance after the transfer, as a JSON number; null when your balance did not movesubBalancerequirednumber · data.subBalance
The sub-account balance after the transfer, as a JSON number
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Return funds from a sub-account to your balance
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
- Safe retries
- Send
X-Idempotency-Key; a replay within 24 hours returns the first response. - Moves money
- Moves money between your balance and a sub-account.
Works on closed sub-accounts too, so a balance can be handed back after closure.
Parameters
idrequiredpath · string
X-Idempotency-Keyheader · string
Any unique string (a UUID is ideal). Replays within 24 hours return the first response instead of acting twice.
Request body (application/json)
amountrequirednumber
min 0reasonrequiredstring
max 500 chars
Response 200
datarequiredobject
operatorBalancerequirednumber | null · data.operatorBalance
Your balance after the transfer, as a JSON number; null when your balance did not movesubBalancerequirednumber · data.subBalance
The sub-account balance after the transfer, as a JSON number
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Record a payment a sub-account made to you
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
- Safe retries
- Send
X-Idempotency-Key; a replay within 24 hours returns the first response. - Moves money
- Moves money between your balance and a sub-account.
Credits the sub-account for money it paid you outside the platform. Your own balance does not move.
Parameters
idrequiredpath · string
X-Idempotency-Keyheader · string
Any unique string (a UUID is ideal). Replays within 24 hours return the first response instead of acting twice.
Request body (application/json)
amountrequirednumber
min 0reasonstring
max 500 chars
Response 200
datarequiredobject
operatorBalancerequirednumber | null · data.operatorBalance
Your balance after the transfer, as a JSON number; null when your balance did not movesubBalancerequirednumber · data.subBalance
The sub-account balance after the transfer, as a JSON number
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Reverse a recorded sub-account payment
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
- Safe retries
- Send
X-Idempotency-Key; a replay within 24 hours returns the first response. - Moves money
- Moves money between your balance and a sub-account.
Debits the sub-account to correct a payment recorded in error. Your own balance does not move.
Parameters
idrequiredpath · string
X-Idempotency-Keyheader · string
Any unique string (a UUID is ideal). Replays within 24 hours return the first response instead of acting twice.
Request body (application/json)
amountrequirednumber
min 0reasonrequiredstring
max 500 chars
Response 200
datarequiredobject
operatorBalancerequirednumber | null · data.operatorBalance
Your balance after the transfer, as a JSON number; null when your balance did not movesubBalancerequirednumber · data.subBalance
The sub-account balance after the transfer, as a JSON number
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List a sub-account's API keys
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Parameters
idrequiredpath · string
Response 200
datarequiredobject[]
idrequiredstring (uuid) · data[].id
keyPrefixrequiredstring · data[].keyPrefix
labelrequiredstring · data[].label
lastUsedAtrequiredstring (date-time) | null · data[].lastUsedAt
ISO-8601 timestamp (UTC)createdAtrequiredstring (date-time) · data[].createdAt
ISO-8601 timestamp (UTC)expiresAtrequiredstring (date-time) | null · data[].expiresAt
ISO-8601 timestamp (UTC)
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Issue an API key for a sub-account
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
The key is returned ONCE. It can reach only the sub-account traffic endpoints.
Parameters
idrequiredpath · string
Response 201
datarequiredobject
idrequiredstring (uuid) · data.id
apiKeyrequiredstring · data.apiKey
prefixrequiredstring · data.prefix
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Revoke a sub-account API key
DELETE/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Parameters
idrequiredpath · string
keyIdrequiredpath · string
Response 200
datarequiredobject
revokedrequiredboolean · data.revoked
One oftrue
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Set a sub-account's portal email and send a sign-in link
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
- Sends email
- Sends an email to a third party.
Send email: null to clear it. The link is only emailed to active sub-accounts.
Parameters
idrequiredpath · string
Request body (application/json)
emailrequiredstring (email) | null
max 255 charssendInviteboolean
default true
Response 200
datarequiredobject
Same fields as SubAccount, shown earlier on this page.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Close a sub-account
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Ends service: revokes its keys and stops its campaigns. No money moves; return any balance separately with the debit endpoint. Idempotent.
Parameters
idrequiredpath · string
Response 200
datarequiredobject
Same fields as SubAccount, shown earlier on this page.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Regenerate a sub-account SIP password
POST/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
The new password is returned ONCE; the old one stops working immediately.
Parameters
idrequiredpath · string
Response 201
datarequiredobject
sipUsernamerequiredstring | null · data.sipUsername
sipPasswordrequiredstring · data.sipPassword
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 409
CONFLICT(or a code-specific 409): the change clashes with existing state. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get lifetime usage for a sub-account
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Parameters
idrequiredpath · string
Response 200
datarequiredobject
recordsrequiredinteger · data.records
totalCostrequirednumber · data.totalCost
USD as a JSON numbertotalSecondsrequiredinteger · data.totalSeconds
totalSegmentsrequiredinteger · data.totalSegments
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get analytics for one sub-account
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Parameters
idrequiredpath · string
daysquery · integer
Trailing window in days (default 30)
Response 200
datarequiredobject
periodrequiredobject · data.period
daysrequiredinteger · data.period.days
summaryrequiredobject · data.summary
callsrequiredinteger · data.summary.calls
smsrequiredinteger · data.summary.sms
minutesrequiredinteger · data.summary.minutes
revenuerequirednumber · data.summary.revenue
USD, JSON number (analytics rollup)marginrequirednumber · data.summary.margin
USD, JSON number (analytics rollup)asrrequirednumber | null · data.summary.asr
Answer rate percent over customer sessions; null with no callsacdrequirednumber · data.summary.acd
timeseriesrequiredobject[] · data.timeseries
daterequiredstring · data.timeseries[].date
YYYY-MM-DDcallsrequiredinteger · data.timeseries[].calls
smsrequiredinteger · data.timeseries[].sms
revenuerequirednumber · data.timeseries[].revenue
marginrequirednumber · data.timeseries[].margin
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
List call records for a sub-account
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Newest first, offset-paginated.
Parameters
idrequiredpath · string
limitquery · integer
Default 50offsetquery · integer
Default 0kindquery · string
One of voice, sms
Response 200
datarequiredobject[]
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Get a monthly statement for a sub-account
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Spend in USD and in the sub-account's display currency, split by voice and SMS, with a resale-tax block. Derived, not stored.
Parameters
idrequiredpath · string
monthrequiredquery · string
YYYY-MM
Response 200
datarequiredobject
subAccountIdrequiredstring (uuid) · data.subAccountId
labelrequiredstring · data.label
monthrequiredstring · data.month
periodStartrequiredstring (date-time) · data.periodStart
ISO-8601 timestamp (UTC)periodEndrequiredstring (date-time) · data.periodEnd
ISO-8601 timestamp (UTC)currencyrequiredstring · data.currency
fxRaterequirednumber · data.fxRate
recordsrequiredinteger · data.records
spendrequiredobject · data.spend
usdrequirednumber · data.spend.usd
inCurrencyrequirednumber · data.spend.inCurrency
byKindrequiredobject · data.byKind
voicerequiredobject · data.byKind.voice
usdrequirednumber · data.byKind.voice.usd
inCurrencyrequirednumber · data.byKind.voice.inCurrency
smsrequiredobject · data.byKind.sms
usdrequirednumber · data.byKind.sms.usd
inCurrencyrequirednumber · data.byKind.sms.inCurrency
taxrequiredobject · data.tax
base, ratePct, taxAmount, total, treatment, label, note
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.
Export a sub-account's call records as CSV
GET/
- Access
- API key. Scoped keys need
application:write. - Rate limit
- 100 requests per second (the default)
Parameters
idrequiredpath · string
Response 200 (text/csv)
Every call record for the sub-account, as CSV.
Errors
- 400
VALIDATION_ERROR,INVALID_INPUTorBAD_REQUEST. ForVALIDATION_ERROR,error.detailsis an array of{ path, message }. - 401
UNAUTHORIZED: missing, invalid, expired or revoked credential. - 403
FORBIDDEN: not allowed - a scoped key lacks the scope, or the endpoint is session-only. - 404
NOT_FOUND: no such resource on your account. - 429
RATE_LIMITED: slow down and retry after theRetry-Afterseconds. - 500
INTERNAL_ERROR: unexpected failure. QuoteX-Request-Idto support.