Skip to content

Exchange a mobile PKCE code or rotate a refresh credential

POST
/v1/mobile/token
curl --request POST \
--url https://api.vocapable.com/v1/mobile/token \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "grant_type": "authorization_code", "client_id": "vocapable-mobile", "authorization_code": "example", "code_verifier": "example", "redirect_uri": "example", "refresh_token": "example" }'
Media typeapplication/json
MobileTokenRequest

The two native token-exchange grants; no API key may satisfy either one.

object
grant_type
required
Grant Type
string
Allowed values: authorization_code refresh_token
client_id
Client Id
string
default: vocapable-mobile
Allowed value: vocapable-mobile
authorization_code
Any of:
string
>= 43 characters <= 512 characters
code_verifier
Any of:
string
>= 43 characters <= 128 characters
redirect_uri
Any of:
string
>= 1 characters <= 2048 characters
refresh_token
Any of:
string
>= 43 characters <= 512 characters

Successful Response

Media typeapplication/json
MobileTokenResponse

Tokens returned once over TLS to the native app’s secure device storage.

object
access_token
required
Access Token
string
refresh_token
required
Refresh Token
string
token_type
Token Type
string
default: Bearer
Allowed value: Bearer
expires_at
required
Expires At
string format: date-time
tenant_id
required
Tenant Id
string
membership_id
required
Membership Id
string
device_id
required
Device Id
string
role
required
TenantMembershipRole

The only roles a customer can hold in one workspace.

string
Allowed values: admin manager rep
Example
{
"token_type": "Bearer",
"role": "admin"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}