Skip to content

Issue access token

auth.issue_access_token(**kwargs) -> AuthIssueAccessTokenResponse { access_token, expires_in, token_type, bound_entity }
POST/v1/auth/access-tokens

Issues a short-lived access token from the authenticated API key. Access tokens can optionally be bound to a specific employer or employee for scoped access. Tokens expire after 15 minutes.

ParametersExpand Collapse
grant_type: :client_credentials
  • client_credentials - client_credentials
bound_entity: { id, type}

Optional entity to bind the token to for scoped access

id: String

Prefixed entity ID to bind the token to (empr_* for employer, empl_* for employee)

type: Type
  • employer - employer
  • employee - employee
One of the following:
:employer
:employee
ReturnsExpand Collapse
class AuthIssueAccessTokenResponse { access_token, expires_in, token_type, bound_entity }
access_token: String

The issued access token (vit_at_*)

expires_in: Integer

Token lifetime in seconds

token_type: String

Token type, always 'Bearer'

bound_entity: { id, type}

Entity the token is bound to, if any

id: String

Prefixed entity ID the token is bound to (empr_* or empl_*)

type: Type
  • employer - employer
  • employee - employee
One of the following:
:employer
:employee

Issue access token

require "vitable_connect"

vitable_connect = VitableConnect::Client.new(
  api_key: "My API Key",
  environment: "environment_1" # defaults to "production"
)

response = vitable_connect.auth.issue_access_token(grant_type: :client_credentials)

puts(response)
{
  "access_token": "vit_at_abc123def456...",
  "token_type": "Bearer",
  "expires_in": 910,
  "bound_entity": {
    "id": "empr_SGVsbG8gV29ybGQ",
    "type": "employer"
  }
}
Returns Examples
{
  "access_token": "vit_at_abc123def456...",
  "token_type": "Bearer",
  "expires_in": 910,
  "bound_entity": {
    "id": "empr_SGVsbG8gV29ybGQ",
    "type": "employer"
  }
}