QR-Platform API Schemas

Reference for QR Platform API schemas.

RegisterResponse

{
  // Indicates if passwordless registration was used
  passwordless?: boolean
  // Indicates if a verification email was sent
  emailSent?: boolean
  // Informational message
  message?: string
  // ID of the created organization
  orgId?: string
  // Name of the organization
  organizationName?: string
  // Redirect URL of the organization
  organizationRedirectUrl?: string
  // Description of the organization
  organizationDescription?: string
}

ValidationErrorMessage

// Error response for validation failures
{
  message: string
  errors?: []
}

ErrorIssueDetail

// Details of a specific error issue
{
  path?:   anyOf: [
    {"type":"string"},
    {"type":"number"}
  ][]
  // Specific message for this issue
  message: string
  // Optional specific code for this issue (e.g., Zod issue code)
  code?: string
}

EmailAlreadyInUseMessage

// Error response when an email address is already registered
{
  message: string
}

EmailSendFailureMessage

// Error response when an email fails to send
{
  message: string
}

OrganizationCreationFailureMessage

// Error response when organization creation fails during registration
{
  message: string
}

RegisterRequest

{
  // User email address
  email: string
  // User password (optional for passwordless)
  password?: string
  // Name of the initial organization
  organizationName?: string
  // Description of the organization
  organizationDescription?: string
  // Redirect URL of the organization
  organizationRedirectUrl?: string
}

RegisterVerifyResponse

{
  // JWT access token upon successful registration verification
  access_token?: string
}

EmailAlreadyVerifiedMessage

// Error response when an email has already been verified
{
  message: string
}

UnauthorizedResponseMessage

// Unauthorized response message
{
  message: string
}

UserNotFoundMessage

// Indicates that the specified user was not found
{
  // The specified user could not be found
  message: string
}

OrganizationNotFoundMessage

// Indicates that the organization context was not found or is invalid
{
  // The specified organization could not be found or is not accessible
  message: string
}

RegisterVerifyRequest

{
  // User email address (optional)
  email?: string
  // 6-digit verification code (for email/MFA)
  code?: string
  // Verification token (for email links)
  token?: string
  // User password (if setting during verification)
  password?: string
}

RegisterVerifyResendResponse

{
  // Indicates if the verification email was resent
  emailSent?: boolean
}

InvalidCredentialsForOperationMessage

// Error response for invalid credentials for an operation (not login)
{
  message: string
}

SignInResponse

{
  // JWT access token (if password provided)
  access_token?: string
  // Indicates if passwordless sign-in is required
  passwordless?: boolean
  // Indicates if a sign-in verification email was sent
  emailSent?: boolean
  // Details of the organization the user signed into
  organization?: {
    // Unique identifier for the organization
    id: string
    // Name of the organization
    name?: string
  }
}

SignInRequest

{
  // User email address
  email: string
  // User password (optional for passwordless)
  password?: string
}

SignInVerifyResponse

{
  // JWT access token upon successful sign-in verification
  access_token?: string
}

SignInVerifyRequest

{
  // User email address (optional)
  email?: string
  // 6-digit verification code (for email/MFA)
  code?: string
  // Verification token (for email links)
  token?: string
  // User password (if setting during verification)
  password?: string
}

EmailVerifySendResponse

{
  // Indicates if the verification email was sent
  emailSent?: boolean
}

EmailVerifyResponse

{
  // Indicates if the email was successfully verified
  verified?: boolean
  // JWT access token upon successful verification
  access_token?: string
}

EmailVerifyRequest

{
  // User email address (optional)
  email?: string
  // 6-digit verification code (for email/MFA)
  code?: string
  // Verification token (for email links)
  token?: string
  // User password (if setting during verification)
  password?: string
}

BaseUserResponse

// Basic user response information
{
  // Unique identifier for the user
  id: string
  // User's full name
  name: string
  // User's email address
  email: string
  // Whether the user's email address has been verified
  isEmailVerified: boolean
  // Whether the user account is disabled
  isDisabled: boolean
}

UserResponseWithAudit

// User information with audit details
allOf: [
  {"$ref":"BaseUserResponse"}
]

Schemas: BaseUserResponse

AuditInfoMember

// User information in audit trail
{
  // Unique identifier of the user
  id: string
  // Name of the user
  name: string
  // Email address of the user
  email: string
}

AuditInfoApiKey

// API key information in audit trail
{
  // Unique identifier of the API key
  id: string
  // Name of the API key
  name: string
  // Role associated with the API key
  roleName: string
}

MeResponse

allOf: [
  {"$ref":"UserResponseWithAudit"}
]

Schemas: UserResponseWithAudit

OrganizationResponse

// Organization information with related details
{
  // Unique identifier for the organization
  id: string
  // Name of the organization
  name: string
  // Current plan of the organization
  planName?: string | null
  // Description of the organization
  description?: string | null
  // Redirect URL of the organization
  redirectUrl?: string | null
  // Whether the organization is disabled
  isDisabled?: boolean
  // ID of the user or API key that disabled the organization
  disabledBy?: string | null
  // Timestamp when the organization was disabled
  disabledAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // Whether the organization is deleted
  isDeleted?: boolean
  // ID of the user or API key that deleted the organization
  deletedBy?: string | null
  // Timestamp when the organization was deleted
  deletedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // Whether this is the current active organization for the user
  isCurrent?: boolean
  roles?:   {
    // Name of the role
    name: string
    scopes?:     // Scope associated with the role
    string[]
  }[]
  workspaces?:   {
    // Unique identifier for the workspace
    id: string
    // Name of the workspace
    name: string
    // Whether access to this workspace is isRestricted
    isRestricted: boolean
    roles?:     {
      // Name of the role
      name: string
      scopes?:       // Scope associated with the role
      string[]
    }[]
  }[]
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

SignOutResponse

{
  // Confirmation message
  message: string
}

NotSignedInMessage

// Error response when the user is not signed in or session has expired
{
  message: string
}

PasswordResetResponse

{
  // Success message
  message?: string
}

PasswordResetRequest

{
  // User email address
  email: string
  // User password (required for authentication)
  password?: string
}

PasswordResetVerifyResponse

{
  // Success message
  message?: string
}

PasswordChangeFailedMessage

// Error response when changing the password fails for an unspecified reason
{
  message: string
}

PasswordResetVerifyRequest

{
  // User email address
  email: string
  // Password reset token received via email
  token: string
  // New password to set
  newPassword: string
}

PasswordChangeResponse

{
  // Success message
  message?: string
}

PasswordChangeRequest

{
  // Current user password
  currentPassword: string
  // New password to set
  newPassword: string
}

ApiKeyResponse

// API key information with organization details
{
  // Unique identifier for the API key
  id: string
  // ID of the organization this API key belongs to
  orgId: string
  // Name of the role assigned to this API key
  roleName: string
  // Descriptive name for the API key
  name: string
  // Current status of the API key
  status: enum[active, deleted, disabled] //default: active
  // Timestamp when the API key expires
  expiresAt?: string | null
  // Organization information
  organization: {
    // Name of the organization this API key belongs to
    name?: string
  }
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

ApiKeyCreateResponse

// Response after creating an API key, including the key value
allOf: [
  {"$ref":"ApiKeyResponse"}
]

Schemas: ApiKeyResponse

ApiKeyNameTakenMessage

// Error response when an API key name is already taken within the organization
{
  message: string
}

InvalidApiKeyRoleMessage

// Error response when the role specified for an API key is invalid or not permitted
{
  message: string
}

InvalidApiKeyLifetimeFormatMessage

// Error response when the API key lifetime format is invalid (e.g., use "30d", "1y")
{
  message: string
}

LimitReachedMessage

// Error response when an operation cannot be completed due to a usage limit
{
  message: string
}

ForbiddenResponseMessage

// Forbidden response message
{
  message: string
}

CreateApiKeyRequest

// Data required to create a new API key
{
  // Name of the role assigned to this API key
  roleName: string
  // Duration for which the key is valid (e.g., "30d", "1y")
  lifetime?: string
  // Descriptive name for the API key
  name: string
}

ApiKeyList

[]

EmptyArrayResponse

{
  "type": "null",
  "example": [],
  "description": "Empty array response"
}

ApiKeyNotFoundMessage

// Indicates that the specified API Key was not found
{
  // The specified API Key could not be found
  message: string
}

UpdateApiKeyRequest

// Data for updating an API key
{
  // New name for the API key
  name: string
  // New expiration date for the API key
  expiresAt?: string | null
}

StatusChangeApiKeyRequest

// Data for changing the status of an API key
{
  // New status for the API key
  status: enum[active, disabled]
}

SuccessResponse

// Generic success response
{
  // Success message
  message: string
}

UpdateFieldRequiredMessage

// Error response when at least one field is required for an update operation
{
  message: string
}

UpdateOrganizationRequest

// Data for updating an organization
{
  // Name of the organization
  name?: string
  // Description of the organization
  description?: string | null
  // Redirect URL of the organization
  redirectUrl?: string | null
}

OrganizationCreateResponse

// Response after creating an organization
{
  // Unique identifier for the organization
  id: string
  // Name of the organization
  name: string
  // Description of the organization
  description?: string | null
  // Redirect URL of the organization
  redirectUrl?: string | null
}

CreateOrganizationRequest

// Data required to create a new organization
{
  // Name of the organization
  name: string
  // Description of the organization
  description?: string
  // Redirect URL of the organization
  redirectUrl?: string | null
}

OrganizationNotFoundOrDisabledMessage

// Indicates that the organization was not found or is disabled
{
  // The specified organization could not be found, or it is currently disabled
  message: string
}

InvitationResponse

// Invitation details with audit information
{
  // Unique identifier for the invitation
  id: string
  // Email address of the invited user
  email: string
  // ID of the organization sending the invitation
  orgId: string
  // ID of the specific workspace (if applicable)
  workspaceId?: string | null
  // Role to be assigned upon acceptance
  roleName: string
  // Current status of the invitation
  status: enum[pending, accepted, expired, declined]
  // Personalized message included in the invitation
  message?: string | null
  // When the invitation expires
  expiresAt: anyOf: [
    {"type":"string"},
    {"type":"string"}
  ]
  // Organization information
  organization: {
    // Name of the organization sending the invitation
    name: string
  }
  // Workspace information (if invitation is for a specific workspace)
  workspace?: object | null
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

CreateInvitationResponse

// Invitation details with audit information
{
  // Unique identifier for the invitation
  id: string
  // Email address of the invited user
  email: string
  // ID of the organization sending the invitation
  orgId: string
  // ID of the specific workspace (if applicable)
  workspaceId?: string | null
  // Role to be assigned upon acceptance
  roleName: string
  // Current status of the invitation
  status: enum[pending, accepted, expired, declined]
  // Personalized message included in the invitation
  message?: string | null
  // When the invitation expires
  expiresAt: anyOf: [
    {"type":"string"},
    {"type":"string"}
  ]
  // Organization information
  organization: {
    // Name of the organization sending the invitation
    name: string
  }
  // Workspace information (if invitation is for a specific workspace)
  workspace?: object | null
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

UserAlreadyHasRoleInOrganizationMessage

// Error response when a user already has the specified role in the organization
{
  message: string
}

CreateInvitationRequest

// Data required to create a new invitation
{
  // Email address of the person to invite
  email: string
  // Role to assign to the invited user
  roleName: string
  // Optional workspace ID to invite user to a specific workspace
  workspaceId?: string
  // Optional personalized message to include in the invitation
  message?: string | null
}

OrganizationInvitationsResponse

[]

UserInvitationsResponse

// Invitation details with audit information
{
  // Unique identifier for the invitation
  id: string
  // ID of the organization sending the invitation
  orgId: string
  // ID of the specific workspace (if applicable)
  workspaceId?: string | null
  // Role to be assigned upon acceptance
  roleName: string
  // Current status of the invitation
  status: enum[pending, accepted, expired, declined]
  // Personalized message included in the invitation
  message?: string | null
  // When the invitation expires
  expiresAt: anyOf: [
    {"type":"string"},
    {"type":"string"}
  ]
  // Organization information
  organization: {
    // Name of the organization sending the invitation
    name: string
  }
  // Workspace information (if invitation is for a specific workspace)
  workspace?: object | null
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}[]

Schemas: AuditInfoMember AuditInfoApiKey

CannotDeleteAcceptedInvitationMessage

// Error response when attempting to delete an accepted invitation
{
  message: string
}

InvitationNotFoundMessage

// Indicates that the invitation was not found or is invalid
{
  // The specified invitation could not be found or is invalid or the organization is disabled or deleted
  message: string
}

AcceptInvitationResponse

// Response after accepting an invitation
{
  // User ID of the newly registered or existing user
  id: string
  // Email address of the user
  email: string
  // Whether the email has been verified
  isEmailVerified: boolean
  // JWT access token for authentication
  access_token: string
}

InvitationExpiredMessage

// Error response when an invitation has expired
{
  message: string
}

InvitationAlreadyAcceptedMessage

// Error response when an invitation has already been accepted
{
  message: string
}

InvitationAlreadyDeclinedMessage

// Error response when an invitation has already been declined
{
  message: string
}

UserRoleWithOrganization

// Role information with organization details
{
  // Name of the role
  name: string
  scopes?:   string[]
  // Organization the role is associated with
  organization: {
    // Unique identifier for the organization
    id: string
    // Name of the organization
    name?: string
    // Description of the organization
    description?: string | null
  }
}

MemberNotFoundMessage

// Indicates that the specified member was not found
{
  // The specified member could not be found
  message: string
}

MemberOrRoleNotFoundMessage

// Indicates that the member or role was not found
{
  // The specified member (user) or role could not be found
  message: string
}

AddOrganizationMember

// Data required to add a member to an organization
{
  // Email address of the user to add
  email: string
  // Name of the role to assign to the member
  roleName: string
  // Whether to send an invitation email
  sendInvitation?: boolean
}

OrganizationMembers

[]

OrganizationMember

// Member information with roles
allOf: [
  {"$ref":"UserResponseWithAudit"}
]

Schemas: UserResponseWithAudit

Role

// Role information
{
  // Name of the role
  name: string
  scopes?:   string[]
}

GroupedMemberRoles

// Grouped roles for a member
{
  organizationRoles:   // Role in the organization
  {
    // Name of the role
    name: string
    scopes?:     string[]
    // ID of the organization this role is associated with
    orgId: string
  }[]
  workspaceRoles:   // Role in a workspace
  {
    // Name of the role
    name: string
    scopes?:     string[]
    // ID of the workspace this role is associated with
    workspaceId: string
  }[]
}

EmptyRolesListResponse

// Response body when a member is found but has no roles in the given context, resulting in a 404 for the roles list
{
  organizationRoles?: []
  workspaceRoles?: []
}

AddMemberRole

// Data required to add a role to a member
{
  // Name of the role to assign
  roleName: string
}

CannotRemoveOwnOwnerRoleMessage

// Error response when a user attempts to remove their own owner role
{
  message: string
}

WorkspaceResponse

// Workspace information with audit details
{
  // Unique identifier for the workspace
  id: string
  // Name of the workspace
  name: string
  // Description of the workspace
  description?: string | null
  // Whether access to this workspace is isRestricted
  isRestricted: boolean
  // ID of the organization this workspace belongs to
  orgId: string
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

WorkspaceNameTakenMessage

// Error response when a workspace name is already taken within the organization
{
  message: string
}

CreateWorkspaceRequest

// Data required to create a new workspace
{
  // Name of the workspace
  name: string
  // Description of the workspace
  description?: string
  // Whether access to this workspace is isRestricted
  isRestricted?: boolean //default: true
}

WorkspaceNotFoundMessage

// Indicates that the specified workspace was not found
{
  // The specified workspace could not be found
  message: string
}

UpdateWorkspaceRequest

// Data for updating a workspace
{
  // New name for the workspace
  name?: string
  // New description for the workspace
  description?: string
  // Whether access to this workspace is isRestricted
  isRestricted?: boolean
}

WorkspaceDeleteResponse

// Response after deleting a workspace
{
  // Success message
  message: string
}

WorkspaceNotEmptyMessage

// Error response when a workspace is not empty
{
  message: string
}

WorkspaceMemberRoles

// Role assigned to a workspace member
{
  // Name of the role
  name: string
}[]

AddWorkspaceMemberRoleResponse

// Result of assigning a role to a workspace member
{
  // Name of the assigned role
  name: string
}

UserAlreadyHasRoleInWorkspaceMessage

// Error response when a user already has the specified role in the workspace
{
  message: string
}

RoleNotFoundMessage

// Indicates that the specified role was not found
{
  // The specified role could not be found
  message: string
}

WorkspaceMemberRole

// Role to assign to a workspace member
{
  // Name of the role to assign
  roleName: string
}

WorkspaceMembers

[]

WorkspaceMember

// Workspace member information
{
  // Unique identifier of the member
  id: string
  // Name of the member
  name: string
  // Email address of the member
  email: string
  roles:   {
    // Name of the role
    name: string
    // Whether the role is inherited from organization level
    isInherited: boolean
  }[]
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

RolesWithScopesResponse

[]

RoleWithScopesResponse

// Role with detailed scope information
{
  // Name of the role
  name: string
  scopes:   // Permission scope
  string[]
}

PlansResponse

[]

Plan

// Plan information
{
  // Unique identifier of the plan
  name: enum[plan-free, plan-startup, plan-business, plan-enterprise]
  // Human-readable name of the plan
  displayName: string
  // Brief description of the plan
  description: string
  // Plan limits by limit type
  limits: {
  }
  // Whether this is the current plan for the authenticated organization
  isCurrent?: boolean
  // When the next limit reset will occur for this plan
  nextResetAt?: anyOf: [
    {"type":"string"},
    {"type":"string"}
  ]
}

PlanWithLimits

// Plan with detailed usage information
{
  // Unique identifier of the plan
  name: enum[plan-free, plan-startup, plan-business, plan-enterprise]
  // Detailed limits with current usage
  limits: {
  }
  // Whether this is the current plan
  isCurrent?: boolean
  // When the next limit reset will occur
  nextResetAt?: anyOf: [
    {"type":"string"},
    {"type":"string"}
  ]
}

LimitDetail

// Limit details with current usage
{
  // Maximum allowed value for this limit
  limit: number
  // Current usage count against this limit
  usage: number
}

OrganizationPlanResponse

// Plan with detailed usage information
{
  // Unique identifier of the plan
  name: enum[plan-free, plan-startup, plan-business, plan-enterprise]
  // Detailed limits with current usage
  limits: {
  }
  // Whether this is the current plan
  isCurrent?: boolean
  // When the next limit reset will occur
  nextResetAt?: anyOf: [
    {"type":"string"},
    {"type":"string"}
  ]
}

PlanNotFoundMessage

// Indicates that the plan was not found
{
  // The specified plan or the plan for the organization could not be found
  message: string
}

SettingsWithGroupResponse

[]

SettingResponse

// Setting response data
{
  // Name of the setting
  name: string
  // URL-friendly identifier for the setting
  slug: string
  // Description of what the setting does
  description?: string | null
}

SettingWithGroup

// Setting with group information
allOf: [
  {"$ref":"SettingResponse"}
]

Schemas: SettingResponse

SettingsResponse

[]

SettingNotFoundMessage

// Indicates that the specified setting was not found
{
  // The specified setting could not be found
  message: string
}

SettingValueRequiredMessage

// Error response when a setting value is required but not provided
{
  message: string
}

SettingReservedNameMessage

// Error response when attempting to create a setting with a reserved name
{
  message: string
}

SettingNotWorkspaceOverridableMessageSchema

// Error response when attempting to operate on a service setting as if it were workspace-overridable, but it is not
{
  message: string
}

CreateSetting

// Data required to create a new setting
{
  // Name of the setting
  name: string
  // Description of what the setting does
  description?: string | null
}

UpdateSetting

// Data required to update an existing setting
{
  // Description of what the setting does
  description?: string | null
}

SettingSuccessResponse

// Generic success response
{
  // Success message
  message: string
}

CannotDeleteServiceSettingMessage

// Error response when attempting to delete a non-deletable service setting
{
  message: string
}

InvalidServiceSettingSlugMessage

// Error response when an invalid service setting slug is provided
{
  message: string
}

InvalidServiceSettingValueTypeMessage

// Error response when a service setting value has an incorrect data type
{
  message: string
}

InvalidServiceSettingValueMessage

// Error response when a service setting value is invalid (e.g., not in allowed list)
{
  message: string
}

CannotOverrideSettingAtWorkspaceLevelMessage

// Error response when attempting to override a non-overridable setting at the workspace level
{
  message: string
}

WorkspaceIdRequiredMessageSchema

// Error response when a workspace ID is required for an operation but not provided
{
  message: string
}

EmptyResponseWithPagination

{
  data?: []
  // Pagination metadata
  pagination: {
    // Total number of items matching the filter criteria
    total: number
    // Current page number
    page: number
    // Number of items per page
    limit: number
    // Total number of pages
    totalPages: number
  }
}

CodeNotFoundMessage

// Indicates that the specified QR code was not found
{
  // The specified QR code could not be found
  message: string
}

CodeRouterRuleResponse

// Code router rule assignment response object
{
  // Unique rule assignment identifier
  id: string
  // Parent QR code ID
  codeId: string
  // Template ID or null for inline
  templateId: string | null
  // Denormalized rule type for filtering
  ruleType: string
  // Resolved rule object
  rule: {
    // Template ID (only for template rules)
    id?: string
    // Rule name
    name: string | null
    // Rule description
    description: string | null
    // Rule type
    type: string
    // Rule conditions (null for scanLimit)
    conditions: object | null
    // Is global template
    isGlobal?: boolean
    // Organization ID
    orgId?: string | null
    // Workspace ID
    workspaceId?: string | null
    // Total template scans
    totalScans?: integer
    // Template creation date
    createdAt?: string
    // Template update date
    updatedAt?: string
  }
  priority: integer
  // The type of data the QR code contains. Only applies to dynamic codes. Determines how the QR code data is processed and what content type is returned when scanned. Available options: url (default, standard web redirect), wifi (WiFi configuration), vcard (contact card), text (plain text), email (mailto format), event (calendar event), json (custom JSON), file (file download).
  dataType: enum[url, wifi, vcard, text, email, event, json, file]
  dynamicData: {
  }
  maxScans: integer | null
  loop: boolean
  expiresAt: string | null
  disabled: boolean
  currentScans: integer
  totalScans: integer
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

RouterRulePriorityAlreadyExistsMessage

// Error response when a router rule with the specified priority already exists
{
  message: string
}

RouterRuleInvalidConditionsMessage

// Error response when router rule conditions are invalid for the specified rule type
{
  message: string
}

RouterRuleMaxScansRequiredMessage

// Error response when scanLimit rule is missing required maxScans field
{
  message: string
}

RouterRuleInvalidCountryCodeMessage

// Error response when an invalid country code is provided for router rule
{
  message: string
}

RouterRuleNotFoundMessage

// Indicates that the specified router rule assignment was not found
{
  // The specified router rule assignment could not be found
  message: string
}

BaseCodeResponse

// Base QR code response schema
{
  // Unique identifier for the QR code
  id: string
  // Name of the QR code
  name: string
  // Type of the QR code
  type?: enum[static, dynamic]
  // The type of data the QR code contains. Only applies to dynamic codes.
  dataType?: enum[url, wifi, vcard, text, email, event, json, file, ]
  // Short alias for the QR code
  shortAlias?: string | null
  // Functional content for dynamic QR codes. Structure depends on dataType.
  dynamicData?: object | null
  // Data encoded in the QR code
  data: string
  // Description of the QR code
  description: string | null
  // Number of times the QR code has been scanned
  totalScans: number | null
  // Custom user metadata for the QR code as JSON object. This is separate from the dynamicData field and stores additional information that is not part of the functional content.
  metadata: object | null
  // ID of the style applied to the QR code
  styleId: string | null
  // ID of the template applied to the QR code
  templateId: string | null
  // ID of the border applied to the QR code
  borderId: string | null
  // ID of the text applied to the QR code
  textId: string | null
  // Style object with its configuration
  style?: {
    id?: string | null
    name?: string | null
  }
  // Template object with its configuration
  template?: {
    id?: string | null
    name?: string | null
  }
  // Border object with its configuration
  border?: {
    id?: string | null
    name?: string | null
  }
  // Text object with its configuration
  text?: {
    id?: string | null
    name?: string | null
  }
  // ID of the workspace the QR code belongs to
  workspaceId: string | null
  // Whether the QR code is valid
  isValid: boolean | null
  // When the QR code was last validated
  validatedAt: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // Version number of the QR code
  version: number
  // Whether the QR code is deleted
  isDeleted?: boolean
}

QRCodeOptions

// Complete configuration for QR code generation
{
  // Data to encode in the QR code (required)
  data: string
  // Overall shape of the QR code
  shape?: enum[square, circle, ]
  // Margin around the QR code in pixels
  margin?: number | null
  // Whether QR code is responsive
  isResponsive?: boolean | null
  // Scale factor for QR code (0-1.5)
  scale?: number | null
  // General offset in pixels
  offset?: number | null
  // Vertical offset in pixels
  verticalOffset?: number | null
  // Horizontal offset in pixels
  horizontalOffset?: number | null
  // QR code specific options
  qrOptions?: object | null
  // Options for QR code dots
  dotsOptions?: object | null
  // Options for QR code corner squares
  cornersSquareOptions?: object | null
  // Options for QR code corner dots
  cornersDotOptions?: object | null
  // Options for QR code background or false to disable
  backgroundOptions?: anyOf: [
    {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
    {"type":"boolean","const":false}
  ]
  // Image to embed in the QR code (URL, Buffer, or Blob)
  image?: anyOf: [
    {"type":"string"},
    {},
    {},
    {"type":"null"}
  ]
  // Options for embedded image
  imageOptions?: object | null
  // Border configuration options
  borderOptions?: object | null
}

Gradient

// Gradient definition
{
  // Type of gradient
  type?: enum[linear, radial]
  // Rotation angle of gradient in degrees
  rotation?: number
  colorStops?:   // Color stop in a gradient
  {
    // Position of the color stop (0-1)
    offset?: number
    // Color in CSS format
    color?: string
  }[]
}

BorderInnerOuter

// Inner or outer border configuration
{
  // Border color in CSS format
  color?: string
  // Border thickness in pixels
  thickness?: number
}

DecorationOptions

// Options for QR code decoration
{
  // Whether decoration is disabled
  disabled?: boolean
  // Whether text is enabled
  enableText?: boolean
  // Offset position in pixels
  offset?: number
  // Curve adjustment value
  curveAdjustment?: number
  // Whether curve is disabled
  curveDisabled?: boolean
  // Curve radius value (CSS format)
  curveRadius?: string
  // Type of decoration
  type?: enum[text, image]
  // Content value for decoration
  value?: string
}

TextDecorationStyle

// Text decoration style
{
  // Font face for the text
  fontFace?: string
  // Font size in pixels
  fontSize?: number
  // Font color in CSS format
  fontColor?: string
  // Letter spacing in pixels
  letterSpacing?: number
  // Font weight
  fontWeight?: enum[normal, bold]
}

StyleOptions

// Configuration options for QR code styling
{
  // Primary color for QR code elements in CSS format
  primaryColor?: string | null
  // Secondary color for QR code elements in CSS format
  secondaryColor?: string | null
  // Tertiary color for QR code elements in CSS format
  thirdColor?: string | null
  // Background color of the QR code in CSS format
  backgroundColor?: string | null
  // Gradient configuration for QR code dots
  dotsGradient?: oneOf: [
    {"$ref":"Gradient"},
    {"type":"null"}
  ]
  // Gradient configuration for corner dots
  cornersDotGradient?: oneOf: [
    {"$ref":"Gradient"},
    {"type":"null"}
  ]
  // Gradient configuration for corners
  cornersGradient?: oneOf: [
    {"$ref":"Gradient"},
    {"type":"null"}
  ]
  // Gradient configuration for QR code background
  backgroundGradient?: oneOf: [
    {"$ref":"Gradient"},
    {"type":"null"}
  ]
  // Shape style for the QR code dots
  dotShape?: enum[dot, square, rounded, extra-rounded, classy, classy-rounded, vertical-line, horizontal-line, random-dot, small-square, tiny-square, star, plus, diamond, ]
  // Shape style for the QR code corner squares
  cornerSquareShape?: enum[dot, square, rounded, classy, outpoint, inpoint, ]
  // Shape style for the QR code corner dots
  cornerDotShape?: enum[dot, square, heart, rounded, classy, outpoint, inpoint, ]
  // Logo to be placed on the QR code (URL, Base64, Buffer, or Blob)
  logo?: anyOf: [
    {"type":"string"},
    {},
    {},
    {"type":"null"}
  ]
  // Size of the logo relative to QR code (0-1)
  logoSize?: number | null
  // Placement mode for the logo
  logoMode?: enum[center, overlay, background, ]
  // Margin around the logo in pixels
  logoMargin?: number | null
  // Background color for logo in CSS format
  logoBackgroundColor?: string | null
  // Padding around the logo in pixels
  logoPadding?: number | null
  // Border radius for logo in pixels or CSS format
  logoRadius?: anyOf: [
    {"type":"string"},
    {"type":"number"},
    {"type":"null"}
  ]
  // Color of the QR code border in CSS format
  borderColor?: string | null
  // Thickness of the border in pixels
  borderThickness?: number | null
  // Border radius in pixels or CSS format
  borderRadius?: anyOf: [
    {"type":"string"},
    {"type":"number"},
    {"type":"null"}
  ]
  // Color of the inner border in CSS format
  borderInnerColor?: string | null
  // Thickness of the inner border in pixels
  borderInnerThickness?: number | null
  // Inner border radius in pixels or CSS format
  borderInnerRadius?: anyOf: [
    {"type":"string"},
    {"type":"number"},
    {"type":"null"}
  ]
  // Color of the outer border in CSS format
  borderOuterColor?: string | null
  // Thickness of the outer border in pixels
  borderOuterThickness?: number | null
  // Text to display on top border
  borderTextTop?: string | null
  // Text to display on right border
  borderTextRight?: string | null
  // Text to display on bottom border
  borderTextBottom?: string | null
  // Text to display on left border
  borderTextLeft?: string | null
  // Font family for border text
  borderFontFace?: string | null
  // Font size for border text in pixels
  borderFontSize?: number | null
  // Font color for border text in CSS format
  borderFontColor?: string | null
  // Letter spacing for border text in pixels
  borderLetterSpacing?: number | null
  // Text transformation for border text
  borderTextTransform?: enum[uppercase, lowercase, capitalize, ]
  // Font weight for border text
  borderFontWeight?: string
}

Schemas: Gradient

QRCodeOptionsWithOptionalData

// QR code configuration with optional data field
{
  // Overall shape of the QR code
  shape?: enum[square, circle, ]
  // Margin around the QR code in pixels
  margin?: number | null
  // Whether QR code is responsive
  isResponsive?: boolean | null
  // Scale factor for QR code (0-1.5)
  scale?: number | null
  // General offset in pixels
  offset?: number | null
  // Vertical offset in pixels
  verticalOffset?: number | null
  // Horizontal offset in pixels
  horizontalOffset?: number | null
  // QR code specific options
  qrOptions?: object | null
  // Options for QR code dots
  dotsOptions?: object | null
  // Options for QR code corner squares
  cornersSquareOptions?: object | null
  // Options for QR code corner dots
  cornersDotOptions?: object | null
  // Options for QR code background or false to disable
  backgroundOptions?: anyOf: [
    {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
    {"type":"boolean","const":false}
  ]
  // Image to embed in the QR code (URL, Buffer, or Blob)
  image?: anyOf: [
    {"type":"string"},
    {},
    {},
    {"type":"null"}
  ]
  // Options for embedded image
  imageOptions?: object | null
  // Border configuration options
  borderOptions?: object | null
  // Data to encode in the QR code (optional in this context)
  data?: string
}

BorderOptions

// Border options configuration
{
  // Overall shape of the QR code
  shape?: enum[square, circle, ]
  // Margin around the QR code in pixels
  margin?: number | null
  // Whether QR code is responsive
  isResponsive?: boolean | null
  // Scale factor for QR code (0-1.5)
  scale?: number | null
  // General offset in pixels
  offset?: number | null
  // Vertical offset in pixels
  verticalOffset?: number | null
  // Horizontal offset in pixels
  horizontalOffset?: number | null
  // QR code specific options
  qrOptions?: object | null
  // Options for QR code dots
  dotsOptions?: object | null
  // Options for QR code corner squares
  cornersSquareOptions?: object | null
  // Options for QR code corner dots
  cornersDotOptions?: object | null
  // Options for QR code background or false to disable
  backgroundOptions?: anyOf: [
    {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
    {"type":"boolean","const":false}
  ]
  // Image to embed in the QR code (URL, Buffer, or Blob)
  image?: anyOf: [
    {"type":"string"},
    {},
    {},
    {"type":"null"}
  ]
  // Options for embedded image
  imageOptions?: object | null
  borderOptions: {
    // Whether to show border
    hasBorder?: boolean | null
    // Border thickness in pixels
    thickness?: number | null
    // Border color in CSS format
    color?: string | null
    // Border radius in CSS format
    radius?: string | null
    // Thickness when no border is shown
    noBorderThickness?: number | null
    // Border background color in CSS format
    background?: string | null
    // Inner border configuration
    inner?: object | null
    // Outer border configuration
    borderOuter?: oneOf: [
      {"$ref":"BorderInnerOuter"},
      {"type":"null"}
    ]
    // Inner border configuration
    borderInner?: oneOf: [
      {"$ref":"BorderInnerOuter"},
      {"type":"null"}
    ]
    // Border decorations configuration
    decorations?: object | null
  }
}

Schemas: BorderInnerOuter

TextOptions

// Text options configuration
{
  // Text value for all positions
  value?: string | null
  // Text value for the top position
  topValue?: string | null
  // Text value for the bottom position
  bottomValue?: string | null
  // Text value for the right position
  rightValue?: string | null
  // Text value for the left position
  leftValue?: string | null
}

BaseCodeResponseWithAudit

// QR code response with audit information
allOf: [
  {"$ref":"BaseCodeResponse"}
]

Schemas: BaseCodeResponse

// QR code response with audit information and file links
allOf: [
  {"$ref":"BaseCodeResponseWithAudit"}
]

Schemas: BaseCodeResponseWithAudit

// QR code file link
{
  // Format of the QR code file
  format: string
  // URL to access the QR code file
  url: string
}

CodeResponse

// QR code response with audit information and file links
allOf: [
  {"$ref":"BaseCodeResponseWithAudit"}
]

Schemas: BaseCodeResponseWithAudit

CodeLinksResponse

{
  // Unique identifier for the code link
  id: string
  // Type of the link file
  type: string
  // Name of the link
  name: string
  // URL to access the file
  url: string
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // ID of the user who created the link
  createdByUserId: string | null
  // ID of the API key used to create the link
  createdByApiKeyId: string | null
  // Associated QR code information
  code: {
    // ID of the related code
    id: string
    // Name of the related code
    name: string | null
    // Data encoded in the QR code
    data: string
    // Description of the related code
    description: string | null
  }
  // Version number of the code
  version?: number
  // Whether this link is for the current version
  isCurrentVersion?: boolean
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

CodeDataRequiredMessage

// Error response when the data for QR Code is missing
{
  message: string
}

CodeIsInvalidMessage

// Error response when the QR Code configuration is invalid
{
  message: string
}

InvalidCodeTypeMessage

// Error response when an invalid code type is provided
{
  message: string
}

DynamicDataForNewStaticCodeMessage

// Error response when a dynamic data is provided for a new static QR code
{
  message: string
}

DynamicDataRequiredMessage

// Error response when a dynamic data is required for a dynamic QR code
{
  message: string
}

ShortAliasAlreadyTakenMessage

// Error response when a QR Code with the specified short alias already exists
{
  message: string
}

ShortAliasForStaticCodeMessage

// Error response when a short alias is provided for a static QR code
{
  message: string
}

InfiniteRedirectLoopDetectedMessage

// Error response when a dynamic data points to the redirect domain
{
  message: string
}

DataTypeForStaticCodeMessage

// Error response when a dataType is provided for a static QR code
{
  message: string
}

DataTypeForDynamicToStaticCodeMessage

// Error response when a dataType is provided for a dynamic to static QR code
{
  message: string
}

DataForDynamicCodeMessage

// Error response when a data is provided for a dynamic QR code
{
  message: string
}

StyleNotFoundMessage

// Indicates that the specified style was not found
{
  // The specified style could not be found
  message: string
}

TemplateNotFoundMessage

// Indicates that the specified template was not found
{
  // The specified template could not be found
  message: string
}

BorderNotFoundMessage

// Indicates that the specified border entity was not found
{
  // The specified border entity could not be found
  message: string
}

TextNotFoundMessage

// Indicates that the specified text entity was not found
{
  // The specified text entity could not be found
  message: string
}

CreateCodeRequest

{
  // Type of QR code
  type?: enum[static, dynamic]
  // The type of data the QR code contains. Only applies to dynamic codes. Defaults to "url" for dynamic codes. Each dataType has specific content structure requirements. url: {url}, wifi: {ssid, password?, security?, hidden?}, vcard: {fullName?, email?, phone?, organization?}, text: {text}, email: {to, subject?, body?}, event: {eventTitle, startDate, endDate?, location?}, file: {fileName, fileUrl, mimeType?}, json: any valid JSON.
  dataType?: enum[url, wifi, vcard, text, email, event, json, file]
  // Functional content for dynamic QR codes. Structure depends on dataType. url: {url}, wifi: {ssid, password?, security?, hidden?}, vcard: {fullName?, email?, phone?, organization?}, text: {text}, email: {to, subject?, body?}, event: {eventTitle, startDate, endDate?, location?}, file: {fileName, fileUrl, mimeType?}, json: any valid JSON.
  dynamicData?: {
  }
  // Short alias for the QR code link (URL-safe characters only)
  shortAlias?: string
  // QR code data content
  data?: string
  // Name of the QR code
  name: string
  // Optional description for the QR code
  description?: string
  // Custom user metadata for the QR code as JSON object. This is separate from the dynamicData field and can store any additional information about the QR code that is not part of the functional content (e.g., campaign info, tags, internal references).
  metadata?: object | null
  // Format for the generated QR code link
  linkFormat?: enum[svg, png, pdf]
  // Whether to validate the QR code during creation
  validate?: boolean
  // QR code generation options
  options?: oneOf: [
    {"$ref":"QRCodeOptionsWithOptionalData"},
    {"type":"null"}
  ]
  // Style ID to apply to the QR code
  styleId?: string | null
  // Style object with options or style name string
  style?: anyOf: [
    {"type":["object","null"],"properties":{"id":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"StyleOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Template ID to apply to the QR code
  templateId?: string | null
  // Template object with options or template name string
  template?: anyOf: [
    {"type":["object","null"],"properties":{"id":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"QRCodeOptionsWithOptionalData"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Border ID to apply to the QR code
  borderId?: string | null
  // Border object with options or border name string
  border?: anyOf: [
    {"type":["object","null"],"properties":{"id":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"BorderOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Text ID to apply to the QR code
  textId?: string | null
  // Text object with options or text name string
  text?: anyOf: [
    {"type":["object","null"],"properties":{"id":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"TextOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: QRCodeOptionsWithOptionalData

CodeIsSoftDeletedMessage

// Error response when attempting to update a soft-deleted code
{
  message: string
}

DynamicDataForStaticCodeMessage

// Error response when a dynamic data is provided for a static QR code
{
  message: string
}

ShortAliasForDynamicToStaticCodeMessage

// Error response when a short alias is provided for a dynamic to static QR code
{
  message: string
}

UpdateCodeRequest

{
  // Type of QR code
  type?: enum[static, dynamic]
  // The type of data the QR code contains. Only applies to dynamic codes. Determines how the QR code data is processed and what content type is returned when scanned. Each dataType has specific content structure requirements.
  dataType?: enum[url, wifi, vcard, text, email, event, json, file, ]
  // Functional content for dynamic QR codes. Structure depends on dataType. url: {url}, wifi: {ssid, password?, security?, hidden?}, vcard: {fullName?, email?, phone?, organization?}, text: {text}, email: {to, subject?, body?}, event: {eventTitle, startDate, endDate?, location?}, file: {fileName, fileUrl, mimeType?}, json: any valid JSON.
  dynamicData?: object | null
  // Short alias for the QR code link (URL-safe characters only)
  shortAlias?: string | null
  // QR code data content
  data?: string | null
  // QR code generation options
  options?: oneOf: [
    {"$ref":"QRCodeOptionsWithOptionalData"},
    {"type":"null"}
  ]
  // Name of the QR code
  name?: string
  // Description for the QR code
  description?: string
  // Custom user metadata for the QR code as JSON object. This is separate from the dynamicData field and can store any additional information about the QR code that is not part of the functional content (e.g., campaign info, tags, internal references).
  metadata?: object | null
  // Style ID to apply to the QR code
  styleId?: string | null
  // Style object with options or style name string
  style?: anyOf: [
    {"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"StyleOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Template ID to apply to the QR code
  templateId?: string | null
  // Template object with options or template name string
  template?: anyOf: [
    {"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"QRCodeOptionsWithOptionalData"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Border ID to apply to the QR code
  borderId?: string | null
  // Border object with options or border name string
  border?: anyOf: [
    {"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"BorderOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Text ID to apply to the QR code
  textId?: string | null
  // Text object with options or text name string
  text?: anyOf: [
    {"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"options":{"oneOf":[{"$ref":"TextOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Format for the generated QR code link. Return existing link if generated before or create new link with provided format.
  linkFormat?: enum[svg, png, pdf]
  // Whether to validate the QR code during update
  validate?: boolean
}

Schemas: QRCodeOptionsWithOptionalData

UpdateOptionsFieldRequiredMessage

// Error response when at least one field within options is required for an update operation
{
  message: string
}

UpdateCodeOptionsRequest

{
  // The type of data the QR code contains. Only applies to dynamic codes. Determines how the QR code data is processed and what content type is returned when scanned.
  dataType?: enum[url, wifi, vcard, text, email, event, json, file]
  // Partial QR code generation options to update. All fields are optional. At least one option field must be provided.
  options: {
    // Data to encode in the QR code (required)
    data?: string
    // Shape of the QR code
    shape?: enum[square, circle, ]
    margin?: number | null
    isResponsive?: boolean | null
    scale?: number | null
    offset?: number | null
    verticalOffset?: number | null
    horizontalOffset?: number | null
    qrOptions?: object | null
    dotsOptions?: object | null
    cornersSquareOptions?: object | null
    cornersDotOptions?: object | null
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    imageOptions?: object | null
    borderOptions?: object | null
  }
  // Format for the generated QR code link. Return existing link if generated before or create new link with provided format.
  linkFormat?: enum[svg, png, pdf]
  // Whether to validate the QR code after updating options.
  validate?: boolean
}

BulkPermanentDeleteCodesResponse

{
  // Success message for the bulk permanent deletion operation
  message: string
  // Detailed results categorized by outcome (only included when showDetails=true)
  details?: {
    deleted:     string[]
    notFound:     string[]
    forbidden:     string[]
    failed:     string[]
  }
}

CodeSoftDeleteResponse

{
  // Confirmation message
  message: string
}

CodeAlreadyDeletedMessage

// Error response when a code is already deleted
{
  message: string
}

FileDeleteResponse

{
  // Confirmation message
  message: string
}

CodeNotSoftDeletedMessage

// Error response when a code is not soft deleted
{
  message: string
}

CodeNotDeletedMessage

// Error response when a code is not deleted
{
  message: string
}

BulkSoftDeleteCodesResponse

{
  // Success message for the bulk operation
  message: string
  // Detailed results categorized by outcome (only included when showDetails=true)
  details?: {
    deleted:     string[]
    alreadyDeleted:     string[]
    notFound:     string[]
    forbidden:     string[]
    failed:     string[]
  }
}

ValidationErrorResponseMessage

// Validation error response message
{
  message: string
  errors?: []
}

GenerateCodeRequest

{
  // QR code data content
  data?: string
  // QR code generation options
  options?: {
    // Overall shape of the QR code
    shape?: enum[square, circle, ]
    // Margin around the QR code in pixels
    margin?: number | null
    // Whether QR code is responsive
    isResponsive?: boolean | null
    // Scale factor for QR code (0-1.5)
    scale?: number | null
    // General offset in pixels
    offset?: number | null
    // Vertical offset in pixels
    verticalOffset?: number | null
    // Horizontal offset in pixels
    horizontalOffset?: number | null
    // QR code specific options
    qrOptions?: object | null
    // Options for QR code dots
    dotsOptions?: object | null
    // Options for QR code corner squares
    cornersSquareOptions?: object | null
    // Options for QR code corner dots
    cornersDotOptions?: object | null
    // Options for QR code background or false to disable
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    // Image to embed in the QR code (URL, Buffer, or Blob)
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Options for embedded image
    imageOptions?: object | null
    // Border configuration options
    borderOptions?: object | null
    // Data to encode in the QR code (optional in this context)
    data?: string
  }
  // Style ID to apply to the QR code
  styleId?: string | null
  // Style object with options or style name string
  style?: anyOf: [
    {"type":["object","null"],"properties":{"options":{"oneOf":[{"$ref":"StyleOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Template ID to apply to the QR code
  templateId?: string | null
  // Template object with options or template ID string
  template?: anyOf: [
    {"type":["object","null"],"properties":{"options":{"type":["object","null"],"properties":{"shape":{"type":["string","null"],"enum":["square","circle",null],"description":"Overall shape of the QR code","example":"square"},"margin":{"type":["number","null"],"description":"Margin around the QR code in pixels","example":10},"isResponsive":{"type":["boolean","null"],"description":"Whether QR code is responsive","example":true},"scale":{"type":["number","null"],"minimum":0,"maximum":1.5,"description":"Scale factor for QR code (0-1.5)","example":1},"offset":{"type":["number","null"],"description":"General offset in pixels","example":0},"verticalOffset":{"type":["number","null"],"description":"Vertical offset in pixels","example":0},"horizontalOffset":{"type":["number","null"],"description":"Horizontal offset in pixels","example":0},"qrOptions":{"type":["object","null"],"properties":{"typeNumber":{"type":["number","null"],"minimum":0,"maximum":40,"description":"QR code type number (0-40)","example":0},"mode":{"type":"string","enum":["numeric","alphanumeric","byte","kanji","unicode"],"description":"QR code encoding mode","example":"byte"},"errorCorrectionLevel":{"type":["string","null"],"enum":["L","M","Q","H",null],"description":"Error correction level","example":"M"}},"description":"QR code specific options"},"dotsOptions":{"type":["object","null"],"properties":{"type":{"type":["string","null"],"enum":["dot","square","rounded","extra-rounded","classy","classy-rounded","vertical-line","horizontal-line","random-dot","small-square","tiny-square","star","plus","diamond",null],"description":"Type of dots","example":"rounded"},"color":{"type":["string","null"],"description":"Color of dots in CSS format","example":"#000000"},"size":{"type":["number","null"],"description":"Size of dots relative to module size (0-1)","example":0.5},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for dots"}},"description":"Options for QR code dots"},"cornersSquareOptions":{"type":["object","null"],"properties":{"type":{"type":["string","null"],"enum":["dot","square","rounded","classy","outpoint","inpoint",null],"description":"Type of corner squares","example":"square"},"color":{"type":["string","null"],"description":"Color of corner squares in CSS format","example":"#000000"},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for corner squares"}},"description":"Options for QR code corner squares"},"cornersDotOptions":{"type":["object","null"],"properties":{"type":{"type":["string","null"],"enum":["dot","square","heart","rounded","classy","outpoint","inpoint",null],"description":"Type of corner dots","example":"dot"},"color":{"type":["string","null"],"description":"Color of corner dots in CSS format","example":"#000000"},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for corner dots"}},"description":"Options for QR code corner dots"},"backgroundOptions":{"anyOf":[{"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},{"type":"boolean","const":false}],"description":"Options for QR code background or false to disable"},"image":{"anyOf":[{"type":"string"},{},{},{"type":"null"}],"description":"Image to embed in the QR code (URL, Buffer, or Blob)","example":"https://example.com/logo.png"},"imageOptions":{"type":["object","null"],"properties":{"mode":{"type":["string","null"],"enum":["center","overlay","background",null],"description":"Mode for embedded image","example":"center"},"imageSize":{"type":["number","null"],"minimum":0,"maximum":1,"description":"Size of image relative to QR code (0-1)","example":0.2},"margin":{"type":["number","null"],"description":"Margin around the image in pixels","example":5},"crossOrigin":{"type":["string","null"],"description":"Cross-origin attribute for image","example":"anonymous"},"fill":{"type":["object","null"],"properties":{"color":{"type":["string","null"],"description":"Fill color in CSS format","example":"#ffffff"},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for fill"}},"description":"Fill options for image area"}},"description":"Options for embedded image"},"borderOptions":{"type":["object","null"],"properties":{"hasBorder":{"type":["boolean","null"],"description":"Whether to show border","example":true},"thickness":{"type":["number","null"],"description":"Border thickness in pixels","example":2},"color":{"type":["string","null"],"description":"Border color in CSS format","example":"#000000"},"radius":{"type":["string","null"],"description":"Border radius in CSS format","example":"10px"},"noBorderThickness":{"type":["number","null"],"description":"Thickness when no border is shown","example":0},"background":{"type":["string","null"],"description":"Border background color in CSS format","example":"#ffffff"},"inner":{"type":["object","null"],"properties":{"radius":{"type":["string","null"],"description":"Inner radius in CSS format","example":"5px"},"scale":{"type":["number","null"],"minimum":0,"maximum":1.5,"description":"Inner scale factor (0-1.5)","example":1},"horizontalOffset":{"type":["number","null"],"description":"Inner horizontal offset in pixels","example":0},"verticalOffset":{"type":["number","null"],"description":"Inner vertical offset in pixels","example":0}},"description":"Inner border configuration"},"borderOuter":{"oneOf":[{"$ref":"BorderInnerOuter"},{"type":"null"}],"description":"Outer border configuration"},"borderInner":{"oneOf":[{"$ref":"BorderInnerOuter"},{"type":"null"}],"description":"Inner border configuration"},"decorations":{"type":["object","null"],"properties":{"top":{"oneOf":[{"$ref":"DecorationOptions"},{"type":"null"}],"description":"Top decoration configuration"},"right":{"oneOf":[{"$ref":"DecorationOptions"},{"type":"null"}],"description":"Right decoration configuration"},"bottom":{"oneOf":[{"$ref":"DecorationOptions"},{"type":"null"}],"description":"Bottom decoration configuration"},"left":{"oneOf":[{"$ref":"DecorationOptions"},{"type":"null"}],"description":"Left decoration configuration"}},"description":"Border decorations configuration"}},"description":"Border configuration options"}},"description":"Complete configuration for QR code generation"}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Border ID to apply to the QR code
  borderId?: string | null
  // Border object with options or border ID string
  border?: anyOf: [
    {"type":["object","null"],"properties":{"options":{"oneOf":[{"$ref":"BorderOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
  // Text ID to apply to the QR code
  textId?: string | null
  // Text object with options or text ID string
  text?: anyOf: [
    {"type":["object","null"],"properties":{"options":{"oneOf":[{"$ref":"TextOptions"},{"type":"null"}]}}},
    {"type":"string"},
    {"type":"null"}
  ]
}

CodeValidationResponse

{
  // Whether the QR code options are valid
  isValid: boolean
}

ExistingCodeValidationResponse

{
  // Unique identifier for the QR code
  id: string
  // Whether the QR code is valid
  isValid: boolean
  // Detailed validation results
  validationDetails: {
    // Boolean indicating if the QR code uses inverted colors
    isInverted: boolean
    // The decoded data from the QR code
    data?: string | null
    // Validation message explaining the result
    message: string
    // Number of decoding attempts made
    attempts?: number | null
    // Identifier of the validation method used
    validator: string
  }
}

RefreshCodeLinksResponse

{
  // Whether the operation was successful
  success: boolean
  // Summary of the regeneration operation
  summary: {
    // Number of code versions processed
    codeVersionsProcessed: number
    // Number of files regenerated
    filesRegenerated: number
    // Number of errors encountered
    errors: number
  }
}

CodeVersionResponse

// QR code response with audit information and file links
allOf: [
  {"$ref":"BaseCodeResponseWithAudit"}
]

Schemas: BaseCodeResponseWithAudit

VersionNotFoundMessage

// Indicates that the specified QR code version was not found
{
  // The specified QR code version could not be found
  message: string
}

CodeVersionsDeleteResponse

{
  // Confirmation message
  message: string
}

FileUrlResponse

{
  // URL to access the generated file
  url: string
}

LinkNotFoundMessage

// Indicates that the specified QR code link was not found
{
  // The specified QR code link could not be found
  message: string
}

CodeVersionLinkNotFoundForTypeMessage

// Error response when no link is found for a specified file type for a code version
{
  message: string
}

CodeNoVersionsFoundForLinkDeletionMessage

// Error response when no code versions are found to delete links from
{
  message: string
}

CodeNoLinksOfTypeFoundForAnyVersionMessage

// Error response when no links of a specified type are found for any code version
{
  message: string
}

TemplateResponse

// Response schema for a template
{
  // Unique identifier for the template
  id: string
  // Name of the template
  name: string
  // Description of the template
  description?: string | null
  // QR code options for the template (without data field)
  options: {
    // Overall shape of the QR code
    shape?: enum[square, circle, ]
    // Margin around the QR code in pixels
    margin?: number | null
    // Whether QR code is responsive
    isResponsive?: boolean | null
    // Scale factor for QR code (0-1.5)
    scale?: number | null
    // General offset in pixels
    offset?: number | null
    // Vertical offset in pixels
    verticalOffset?: number | null
    // Horizontal offset in pixels
    horizontalOffset?: number | null
    // QR code specific options
    qrOptions?: object | null
    // Options for QR code dots
    dotsOptions?: object | null
    // Options for QR code corner squares
    cornersSquareOptions?: object | null
    // Options for QR code corner dots
    cornersDotOptions?: object | null
    // Options for QR code background or false to disable
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    // Image to embed in the QR code (URL, Buffer, or Blob)
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Options for embedded image
    imageOptions?: object | null
    // Border configuration options
    borderOptions?: object | null
  }
  // Custom metadata for the template as JSON object
  metadata: object | null
  // Workspace ID if the template is workspace-specific
  workspaceId?: string | null
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

OptionsRequiredMessage

// Error response when required options are missing for an operation
{
  message: string
}

TemplateNameTakenMessage

// Error response when a template entity name is already taken within the scope (organization/workspace)
{
  message: string
}

TemplateBase

// Base template schema
{
  // Name of the template
  name: string
  // Description of the template
  description?: string
  // QR code options for the template (without data field)
  options: {
    // Overall shape of the QR code
    shape?: enum[square, circle, ]
    // Margin around the QR code in pixels
    margin?: number | null
    // Whether QR code is responsive
    isResponsive?: boolean | null
    // Scale factor for QR code (0-1.5)
    scale?: number | null
    // General offset in pixels
    offset?: number | null
    // Vertical offset in pixels
    verticalOffset?: number | null
    // Horizontal offset in pixels
    horizontalOffset?: number | null
    // QR code specific options
    qrOptions?: object | null
    // Options for QR code dots
    dotsOptions?: object | null
    // Options for QR code corner squares
    cornersSquareOptions?: object | null
    // Options for QR code corner dots
    cornersDotOptions?: object | null
    // Options for QR code background or false to disable
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    // Image to embed in the QR code (URL, Buffer, or Blob)
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Options for embedded image
    imageOptions?: object | null
    // Border configuration options
    borderOptions?: object | null
  }
  // Custom metadata for the template as JSON object
  metadata?: object | null
  // Workspace ID if the template is workspace-specific
  workspaceId?: string | null
}

CreateTemplate

// Base template schema
{
  // Name of the template
  name: string
  // Description of the template
  description?: string
  // QR code options for the template (without data field)
  options: {
    // Overall shape of the QR code
    shape?: enum[square, circle, ]
    // Margin around the QR code in pixels
    margin?: number | null
    // Whether QR code is responsive
    isResponsive?: boolean | null
    // Scale factor for QR code (0-1.5)
    scale?: number | null
    // General offset in pixels
    offset?: number | null
    // Vertical offset in pixels
    verticalOffset?: number | null
    // Horizontal offset in pixels
    horizontalOffset?: number | null
    // QR code specific options
    qrOptions?: object | null
    // Options for QR code dots
    dotsOptions?: object | null
    // Options for QR code corner squares
    cornersSquareOptions?: object | null
    // Options for QR code corner dots
    cornersDotOptions?: object | null
    // Options for QR code background or false to disable
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    // Image to embed in the QR code (URL, Buffer, or Blob)
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Options for embedded image
    imageOptions?: object | null
    // Border configuration options
    borderOptions?: object | null
  }
  // Custom metadata for the template as JSON object
  metadata?: object | null
  // Workspace ID if the template is workspace-specific
  workspaceId?: string | null
}

GetTemplatesResponse

// Response schema for getting templates
{
  organizations: []
  workspaces:   TemplateResponse[]
}

Schemas: TemplateResponse

EmptyTemplatesOrgContextResponse

// Response body when no templates are found for the organization context
{
  organizations: []
  workspaces: []
}

BaseTemplates

[]

BaseTemplate

// A predefined base template that can be used as a template
{
  // Unique identifier of the base template
  id: string
  // Name of the base template
  name: string
  // QR code options for the template (without data field)
  options: {
    // Overall shape of the QR code
    shape?: enum[square, circle, ]
    // Margin around the QR code in pixels
    margin?: number | null
    // Whether QR code is responsive
    isResponsive?: boolean | null
    // Scale factor for QR code (0-1.5)
    scale?: number | null
    // General offset in pixels
    offset?: number | null
    // Vertical offset in pixels
    verticalOffset?: number | null
    // Horizontal offset in pixels
    horizontalOffset?: number | null
    // QR code specific options
    qrOptions?: object | null
    // Options for QR code dots
    dotsOptions?: object | null
    // Options for QR code corner squares
    cornersSquareOptions?: object | null
    // Options for QR code corner dots
    cornersDotOptions?: object | null
    // Options for QR code background or false to disable
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    // Image to embed in the QR code (URL, Buffer, or Blob)
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Options for embedded image
    imageOptions?: object | null
    // Border configuration options
    borderOptions?: object | null
  }
}

UpdateTemplate

// Schema for updating a template
{
  // Name of the template
  name?: string
  // Description of the template
  description?: string
  // QR code options for the template (without data field)
  options?: {
    // Overall shape of the QR code
    shape?: enum[square, circle, ]
    // Margin around the QR code in pixels
    margin?: number | null
    // Whether QR code is responsive
    isResponsive?: boolean | null
    // Scale factor for QR code (0-1.5)
    scale?: number | null
    // General offset in pixels
    offset?: number | null
    // Vertical offset in pixels
    verticalOffset?: number | null
    // Horizontal offset in pixels
    horizontalOffset?: number | null
    // QR code specific options
    qrOptions?: object | null
    // Options for QR code dots
    dotsOptions?: object | null
    // Options for QR code corner squares
    cornersSquareOptions?: object | null
    // Options for QR code corner dots
    cornersDotOptions?: object | null
    // Options for QR code background or false to disable
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    // Image to embed in the QR code (URL, Buffer, or Blob)
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Options for embedded image
    imageOptions?: object | null
    // Border configuration options
    borderOptions?: object | null
  }
  // Updated custom metadata for the template as JSON object
  metadata?: object | null
}

UpdateTemplateOptionsRequest

{
  // Partial QR code options for the template (without data field) to update. All fields are optional. Use null as a value to delete a field. At least one option field must be provided.
  options: {
    // Shape of the QR code
    shape?: enum[square, circle, ]
    margin?: number | null
    isResponsive?: boolean | null
    scale?: number | null
    offset?: number | null
    verticalOffset?: number | null
    horizontalOffset?: number | null
    qrOptions?: object | null
    dotsOptions?: object | null
    cornersSquareOptions?: object | null
    cornersDotOptions?: object | null
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    imageOptions?: object | null
    borderOptions?: object | null
  }
}

ResourceInUseMessage

// Error response when a resource cannot be modified/deleted because it is in use
{
  message: string
}

TemplateArrayResponse

[]

StyleResponse

// Style data returned in API responses
{
  // Unique identifier of the style
  id: string
  // Name of the style
  name: string
  // Description of the style
  description?: string | null
  // Style configuration options
  options: {
    // Primary color for QR code elements in CSS format
    primaryColor?: string | null
    // Secondary color for QR code elements in CSS format
    secondaryColor?: string | null
    // Tertiary color for QR code elements in CSS format
    thirdColor?: string | null
    // Background color of the QR code in CSS format
    backgroundColor?: string | null
    // Gradient configuration for QR code dots
    dotsGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Gradient configuration for corner dots
    cornersDotGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Gradient configuration for corners
    cornersGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Gradient configuration for QR code background
    backgroundGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Shape style for the QR code dots
    dotShape?: enum[dot, square, rounded, extra-rounded, classy, classy-rounded, vertical-line, horizontal-line, random-dot, small-square, tiny-square, star, plus, diamond, ]
    // Shape style for the QR code corner squares
    cornerSquareShape?: enum[dot, square, rounded, classy, outpoint, inpoint, ]
    // Shape style for the QR code corner dots
    cornerDotShape?: enum[dot, square, heart, rounded, classy, outpoint, inpoint, ]
    // Logo to be placed on the QR code (URL, Base64, Buffer, or Blob)
    logo?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Size of the logo relative to QR code (0-1)
    logoSize?: number | null
    // Placement mode for the logo
    logoMode?: enum[center, overlay, background, ]
    // Margin around the logo in pixels
    logoMargin?: number | null
    // Background color for logo in CSS format
    logoBackgroundColor?: string | null
    // Padding around the logo in pixels
    logoPadding?: number | null
    // Border radius for logo in pixels or CSS format
    logoRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    // Color of the QR code border in CSS format
    borderColor?: string | null
    // Thickness of the border in pixels
    borderThickness?: number | null
    // Border radius in pixels or CSS format
    borderRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    // Color of the inner border in CSS format
    borderInnerColor?: string | null
    // Thickness of the inner border in pixels
    borderInnerThickness?: number | null
    // Inner border radius in pixels or CSS format
    borderInnerRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    // Color of the outer border in CSS format
    borderOuterColor?: string | null
    // Thickness of the outer border in pixels
    borderOuterThickness?: number | null
    // Text to display on top border
    borderTextTop?: string | null
    // Text to display on right border
    borderTextRight?: string | null
    // Text to display on bottom border
    borderTextBottom?: string | null
    // Text to display on left border
    borderTextLeft?: string | null
    // Font family for border text
    borderFontFace?: string | null
    // Font size for border text in pixels
    borderFontSize?: number | null
    // Font color for border text in CSS format
    borderFontColor?: string | null
    // Letter spacing for border text in pixels
    borderLetterSpacing?: number | null
    // Text transformation for border text
    borderTextTransform?: enum[uppercase, lowercase, capitalize, ]
    // Font weight for border text
    borderFontWeight?: string
  }
  // Custom metadata for the style as JSON object
  metadata: object | null
  // ID of the workspace this style belongs to (null for organization-level styles)
  workspaceId?: string | null
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: Gradient AuditInfoMember AuditInfoApiKey

StyleNameTakenMessage

// Error response when a style entity name is already taken within the scope (organization/workspace)
{
  message: string
}

StyleBase

// Base schema for style definitions
{
  // Name of the style
  name: string
  // Description of the style
  description?: string
  // Custom metadata for the style as JSON object
  metadata?: object | null
  // ID of the workspace this style belongs to (null for organization-level styles)
  workspaceId?: string | null
}

CreateStyle

// Base schema for style definitions
{
  // Name of the style
  name: string
  // Description of the style
  description?: string
  // Custom metadata for the style as JSON object
  metadata?: object | null
  // ID of the workspace this style belongs to (null for organization-level styles)
  workspaceId?: string | null
}

BaseStyles

[]

BaseStyle

// A predefined base style that can be used as a template
{
  // Unique identifier of the base style
  id: string
  // Name of the base style
  name: string
  // Style configuration options
  options: {
    // Primary color for QR code elements in CSS format
    primaryColor?: string | null
    // Secondary color for QR code elements in CSS format
    secondaryColor?: string | null
    // Tertiary color for QR code elements in CSS format
    thirdColor?: string | null
    // Background color of the QR code in CSS format
    backgroundColor?: string | null
    // Gradient configuration for QR code dots
    dotsGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Gradient configuration for corner dots
    cornersDotGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Gradient configuration for corners
    cornersGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Gradient configuration for QR code background
    backgroundGradient?: oneOf: [
      {"$ref":"Gradient"},
      {"type":"null"}
    ]
    // Shape style for the QR code dots
    dotShape?: enum[dot, square, rounded, extra-rounded, classy, classy-rounded, vertical-line, horizontal-line, random-dot, small-square, tiny-square, star, plus, diamond, ]
    // Shape style for the QR code corner squares
    cornerSquareShape?: enum[dot, square, rounded, classy, outpoint, inpoint, ]
    // Shape style for the QR code corner dots
    cornerDotShape?: enum[dot, square, heart, rounded, classy, outpoint, inpoint, ]
    // Logo to be placed on the QR code (URL, Base64, Buffer, or Blob)
    logo?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Size of the logo relative to QR code (0-1)
    logoSize?: number | null
    // Placement mode for the logo
    logoMode?: enum[center, overlay, background, ]
    // Margin around the logo in pixels
    logoMargin?: number | null
    // Background color for logo in CSS format
    logoBackgroundColor?: string | null
    // Padding around the logo in pixels
    logoPadding?: number | null
    // Border radius for logo in pixels or CSS format
    logoRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    // Color of the QR code border in CSS format
    borderColor?: string | null
    // Thickness of the border in pixels
    borderThickness?: number | null
    // Border radius in pixels or CSS format
    borderRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    // Color of the inner border in CSS format
    borderInnerColor?: string | null
    // Thickness of the inner border in pixels
    borderInnerThickness?: number | null
    // Inner border radius in pixels or CSS format
    borderInnerRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    // Color of the outer border in CSS format
    borderOuterColor?: string | null
    // Thickness of the outer border in pixels
    borderOuterThickness?: number | null
    // Text to display on top border
    borderTextTop?: string | null
    // Text to display on right border
    borderTextRight?: string | null
    // Text to display on bottom border
    borderTextBottom?: string | null
    // Text to display on left border
    borderTextLeft?: string | null
    // Font family for border text
    borderFontFace?: string | null
    // Font size for border text in pixels
    borderFontSize?: number | null
    // Font color for border text in CSS format
    borderFontColor?: string | null
    // Letter spacing for border text in pixels
    borderLetterSpacing?: number | null
    // Text transformation for border text
    borderTextTransform?: enum[uppercase, lowercase, capitalize, ]
    // Font weight for border text
    borderFontWeight?: string
  }
}

Schemas: Gradient

GetStylesResponse

// Response containing organization and workspace styles
{
  organizations: []
  workspaces:   StyleResponse[]
}

Schemas: StyleResponse

EmptyStylesOrgContextResponse

// Response body when no styles are found for the organization context
{
  organizations: []
  workspaces: []
}

UpdateStyle

// Schema for updating an existing style
{
  // Updated name of the style
  name?: string
  // Updated description of the style
  description?: string
  // Updated custom metadata for the style as JSON object
  metadata?: object | null
}

UpdateStyleOptionsRequest

{
  // Partial style options to update. All fields are optional. Use null as a value to delete a field. At least one option field must be provided.
  options: {
    primaryColor?: string | null
    secondaryColor?: string | null
    thirdColor?: string | null
    backgroundColor?: string | null
    // Gradient definition
    dotsGradient?: object | null
    // Gradient definition
    cornersDotGradient?: object | null
    // Gradient definition
    cornersGradient?: object | null
    // Gradient definition
    backgroundGradient?: object | null
    // Type of dots in QR code
    dotShape?: enum[dot, square, rounded, extra-rounded, classy, classy-rounded, vertical-line, horizontal-line, random-dot, small-square, tiny-square, star, plus, diamond, ]
    // Type of corner squares in QR code
    cornerSquareShape?: enum[dot, square, rounded, classy, outpoint, inpoint, ]
    // Type of corner dots in QR code
    cornerDotShape?: enum[dot, square, heart, rounded, classy, outpoint, inpoint, ]
    logo?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    logoSize?: number | null
    // Mode for embedding images in QR code
    logoMode?: enum[center, overlay, background, ]
    logoMargin?: number | null
    logoBackgroundColor?: string | null
    logoPadding?: number | null
    logoRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    borderColor?: string | null
    borderThickness?: number | null
    borderRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    borderInnerColor?: string | null
    borderInnerThickness?: number | null
    borderInnerRadius?: anyOf: [
      {"type":"string"},
      {"type":"number"},
      {"type":"null"}
    ]
    borderOuterColor?: string | null
    borderOuterThickness?: number | null
    borderTextTop?: string | null
    borderTextRight?: string | null
    borderTextBottom?: string | null
    borderTextLeft?: string | null
    borderFontFace?: string | null
    borderFontSize?: number | null
    borderFontColor?: string | null
    borderLetterSpacing?: number | null
    borderTextTransform?: enum[uppercase, lowercase, capitalize, ]
    borderFontWeight?: string
  }
}

StyleArray

[]

TextResponse

// Text data returned in API responses
{
  // Unique identifier for the text
  id: string
  // Name of the text
  name: string
  // Description of the text
  description?: string | null
  // Text configuration options
  options: {
    // Text value for all positions
    value?: string | null
    // Text value for the top position
    topValue?: string | null
    // Text value for the bottom position
    bottomValue?: string | null
    // Text value for the right position
    rightValue?: string | null
    // Text value for the left position
    leftValue?: string | null
  }
  // Custom metadata for the text as JSON object
  metadata: object | null
  // ID of the workspace this text belongs to, if any
  workspaceId?: string | null
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

TextNameTakenMessage

// Error response when a text entity name is already taken within the scope (organization/workspace)
{
  message: string
}

TextBase

// Base schema for text definitions
{
  // Name of the text
  name: string
  // Description of the text
  description?: string
  // Custom metadata for the text as JSON object
  metadata?: object | null
  // ID of the workspace this text belongs to, if any
  workspaceId?: string | null
}

CreateText

// Base schema for text definitions
{
  // Name of the text
  name: string
  // Description of the text
  description?: string
  // Custom metadata for the text as JSON object
  metadata?: object | null
  // ID of the workspace this text belongs to, if any
  workspaceId?: string | null
}

GetTextsResponse

// List of texts grouped by organization and workspace
{
  organizations: []
  workspaces:   TextResponse[]
}

Schemas: TextResponse

EmptyTextsOrgContextResponse

// Response body when no text entities are found for the organization context
{
  organizations: []
  workspaces: []
}

BaseTexts

[]

BaseText

// A predefined base text that can be used as a template
{
  // Unique identifier of the base text
  id: string
  // Name of the base text
  name: string
  // Text configuration options
  options: {
    // Text value for all positions
    value?: string | null
    // Text value for the top position
    topValue?: string | null
    // Text value for the bottom position
    bottomValue?: string | null
    // Text value for the right position
    rightValue?: string | null
    // Text value for the left position
    leftValue?: string | null
  }
}

UpdateText

// Schema for updating an existing text
{
  // Name of the text
  name?: string
  // Description of the text
  description?: string
  // Updated custom metadata for the text as JSON object
  metadata?: object | null
  // ID of the workspace this text belongs to, if any
  workspaceId?: string | null
}

UpdateTextOptionsRequest

{
  // Partial text options to update. All fields are optional. Use null as a value to delete a field. At least one option field must be provided.
  options: {
    value?: string | null
    topValue?: string | null
    bottomValue?: string | null
    rightValue?: string | null
    leftValue?: string | null
  }
}

DeleteTextResponse

// Response for successful text deletion
{
  // Success message
  message: string
}

TextArray

[]

BorderResponse

// Border Response Schema
{
  // Unique identifier for the border
  id: string
  // Name of the border
  name: string
  // Description of the border
  description?: string | null
  // Custom metadata for the border as JSON object
  metadata: object | null
  // ID of the workspace this border belongs to, if any
  workspaceId?: string | null
  // User who created the resource
  createdByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // User who last updated the resource
  updatedByUser?: oneOf: [
    {"$ref":"AuditInfoMember"},
    {"type":"null"}
  ]
  // API key used to create the resource
  createdByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // API key used to last update the resource
  updatedByApiKey?: oneOf: [
    {"$ref":"AuditInfoApiKey"},
    {"type":"null"}
  ]
  // When the resource was created
  createdAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
  // When the resource was last updated
  updatedAt?: anyOf: [
    {"type":"string"},
    {"type":"string"},
    {"type":"null"}
  ]
}

Schemas: AuditInfoMember AuditInfoApiKey

BorderNameTakenMessage

// Error response when a border name is already taken within the scope (organization/workspace)
{
  message: string
}

BorderBase

// Border Base Schema
{
  // Name of the border
  name: string
  // Description of the border
  description?: string
  // Custom metadata for the border as JSON object
  metadata?: object | null
  // ID of the workspace this border belongs to, if any
  workspaceId?: string | null
}

GetBordersResponse

// List of borders grouped by organization and workspace
{
  organizations: []
  workspaces:   BorderResponse[]
}

Schemas: BorderResponse

EmptyBordersOrgContextResponseMessage

// Response body when no border entities are found for the organization context
{
  // No borders found for the specified organization and workspace
  message: string
}

BaseBorders

[]

BaseBorder

// A predefined base border that can be used as a template
{
  // Unique identifier of the base border
  id: string
  // Name of the base border
  name: string
  // Border configuration options
  options: allOf: [
    {"$ref":"BorderOptions"}
  ]
}

Schemas: BorderOptions

UpdateBorder

// Update Border Schema
{
  // Name of the border
  name?: string
  // Description of the border
  description?: string
  // Updated custom metadata for the border as JSON object
  metadata?: object | null
}

DeleteBorderResponse

// Delete Border Response Schema
{
  // Success message
  message: string
}

UpdateBorderOptionsRequest

{
  // Partial border options to update. borderOptions is required and must contain at least one field (can be nullable). Other top-level options are optional. Use null as a value to delete a field.
  options: {
    borderOptions: {
      hasBorder?: boolean | null
      thickness?: number | null
      color?: string | null
      radius?: string | null
      noBorderThickness?: number | null
      background?: string | null
      inner?: object | null
      // Inner or outer border configuration
      borderOuter?: object | null
      // Inner or outer border configuration
      borderInner?: object | null
      decorations?: object | null
    }
    // Overall shape of the QR code
    shape?: enum[square, circle, ]
    // Margin around the QR code in pixels
    margin?: number | null
    // Whether QR code is responsive
    isResponsive?: boolean | null
    // Scale factor for QR code (0-1.5)
    scale?: number | null
    // General offset in pixels
    offset?: number | null
    // Vertical offset in pixels
    verticalOffset?: number | null
    // Horizontal offset in pixels
    horizontalOffset?: number | null
    // QR code specific options
    qrOptions?: object | null
    // Options for QR code dots
    dotsOptions?: object | null
    // Options for QR code corner squares
    cornersSquareOptions?: object | null
    // Options for QR code corner dots
    cornersDotOptions?: object | null
    // Options for QR code background or false to disable
    backgroundOptions?: anyOf: [
      {"type":"object","properties":{"color":{"type":["string","null"],"description":"Background color in CSS format","example":"#ffffff"},"round":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"string"},{"type":"null"}],"description":"Background corner rounding (0-1 or CSS value)","example":0.1},"gradient":{"oneOf":[{"$ref":"Gradient"},{"type":"null"}],"description":"Gradient for background"}},"required":["color"]},
      {"type":"boolean","const":false}
    ]
    // Image to embed in the QR code (URL, Buffer, or Blob)
    image?: anyOf: [
      {"type":"string"},
      {},
      {},
      {"type":"null"}
    ]
    // Options for embedded image
    imageOptions?: object | null
  }
}

RouterRuleTemplateNotFoundMessage

// Indicates that the specified router rule template was not found
{
  // The specified router rule template could not be found
  message: string
}

WorkspaceRouterRuleResponse

// Workspace router rule assignment response object with code context
allOf: [
  {"$ref":"CodeRouterRuleResponse"}
]

Schemas: CodeRouterRuleResponse


QR-Platformis All-in-One QR Codes Management Solution.