Cubist User API
The User API from Cubist — 11 operation(s) for user.
The User API from Cubist — 11 operation(s) for user.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cubist-user-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CubeSigner Account User API
description: The CubeSigner management and signing service.
contact:
name: Cubist Inc.
email: hello@cubist.dev
version: v0.1.0
servers:
- url: https://gamma.signer.cubist.dev
description: Testing and staging environment
- url: https://prod.signer.cubist.dev
description: Production environment
security:
- Cognito: []
tags:
- name: User
paths:
/v0/about_me:
get:
tags:
- User
summary: User Info
description: 'User Info
Retrieves information about the current user.
PREFER `GET /v0/orgs/{org_id}/user/me`'
operationId: aboutMeLegacy
responses:
'200':
$ref: '#/components/responses/UserInfo'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- ''
/v0/org/{org_id}/user/me:
get:
tags:
- User
summary: User Info
description: 'User Info
Retrieves information about the current user.'
operationId: aboutMe
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
responses:
'200':
$ref: '#/components/responses/UserInfo'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth: []
/v0/org/{org_id}/user/me/email:
post:
tags:
- User
summary: Initiate Reset Verified Email Flow
description: 'Initiate Reset Verified Email Flow
'
operationId: userResetEmailInit
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailResetRequest'
required: true
responses:
'200':
$ref: '#/components/responses/EmailOtpResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:register:email
patch:
tags:
- User
summary: Finalize a Reset Verified Email Flow
description: Finalize a Reset Verified Email Flow
operationId: userResetEmailComplete
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailOtpAnswer'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:register:email
/v0/org/{org_id}/user/me/fido:
post:
tags:
- User
summary: Initiate registration of a FIDO key.
description: 'Initiate registration of a FIDO key.
If a discoverable key is requested, user verification (PIN) is required.
Generates a challenge that must be answered to prove ownership of a key.'
operationId: userRegisterFidoInit
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FidoCreateRequest'
required: true
responses:
'200':
$ref: '#/components/responses/FidoCreateChallengeResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:register:fido
patch:
tags:
- User
summary: Finalize registration of a FIDO key
description: 'Finalize registration of a FIDO key
Accepts the response to the challenge generated by the POST to this endpoint.'
operationId: userRegisterFidoComplete
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FidoCreateChallengeAnswer'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:register:fido
/v0/org/{org_id}/user/me/fido/{fido_id}:
delete:
tags:
- User
summary: Delete FIDO key
description: 'Delete FIDO key
Deletes a FIDO key from the user''s account (if the key is not the sole MFA factor). MFA is always required.'
operationId: userDeleteFido
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
- name: fido_id
in: path
description: Name or ID of the desired FidoKey
required: true
schema:
type: string
example: FidoKey#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Empty'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:unregister:fido
/v0/org/{org_id}/user/me/totp:
post:
tags:
- User
summary: Initialize TOTP Reset
description: 'Initialize TOTP Reset
Creates a new TOTP challenge that must be answered to prove that the new TOTP
was successfully imported into an authenticator app.
This operation is allowed if EITHER
- the user account is not yet initialized and no TOTP is already set, OR
- the user has not configured any auth factors;
otherwise, MFA is required.'
operationId: userResetTotpInit
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TotpResetRequest'
required: false
responses:
'200':
$ref: '#/components/responses/TotpInfo'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:register:totp
delete:
tags:
- User
summary: Delete TOTP
description: 'Delete TOTP
Deletes TOTP from the user''s account (if TOTP is not the sole MFA factor). MFA is always required.
'
operationId: userDeleteTotp
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Empty'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:unregister:totp
patch:
tags:
- User
summary: Finalize resetting TOTP
description: 'Finalize resetting TOTP
Checks if the response contains the correct TOTP code corresponding to the
challenge generated by the POST method of this endpoint.'
operationId: userResetTotpComplete
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TotpChallengeAnswer'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:register:totp
/v0/org/{org_id}/user/me/totp/verify:
post:
tags:
- User
summary: Verify TOTP
description: 'Verify TOTP
Checks if a given code matches the current TOTP code for the current user.
Errors with 403 if the current user has not set up TOTP or the code fails verification.'
operationId: userVerifyTotp
parameters:
- name: org_id
in: path
description: Name or ID of the desired Org
required: true
schema:
type: string
example: Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TotpApproveRequest'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- SignerAuth:
- manage:mfa:verify:totp
/v0/user/me/fido:
post:
tags:
- User
summary: Initiate registration of a FIDO key
description: 'Initiate registration of a FIDO key
DEPRECATED. Use `POST /v0/org/{org_id}/user/me/fido` instead.
Generates a challenge that must be answered to prove ownership of a key'
operationId: registerFidoInitLegacy
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FidoCreateRequest'
required: true
responses:
'200':
$ref: '#/components/responses/FidoCreateChallengeResponse'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
deprecated: true
security:
- SignerAuth:
- manage:mfa:register:fido
patch:
tags:
- User
summary: Finalize registration of a FIDO key
description: 'Finalize registration of a FIDO key
DEPRECATED. Use `PATCH /v0/org/{org_id}/user/me/fido` instead.
Accepts the response to the challenge generated by the POST to this endpoint.'
operationId: registerFidoCompleteLegacy
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FidoCreateChallengeAnswer'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
deprecated: true
security:
- SignerAuth:
- manage:mfa:register:fido
/v0/user/me/totp:
post:
tags:
- User
summary: Initialize TOTP Reset
description: 'Initialize TOTP Reset
DEPRECATED. Use `POST /v0/org/{org_id}/user/me/totp` instead.
Creates a new TOTP challenge that must be answered to prove that the new TOTP
was successfully imported into an authenticator app.
This operation is allowed if EITHER
- the user account is not yet initialized and no TOTP is already set, OR
- the user has not configured any auth factors;
otherwise, MFA is required.'
operationId: resetTotpInitLegacy
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/TotpResetRequest'
required: false
responses:
'200':
$ref: '#/components/responses/TotpInfo'
'202':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AcceptedResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
deprecated: true
security:
- SignerAuth:
- manage:mfa:register:totp
patch:
tags:
- User
summary: Finalize resetting TOTP
description: 'Finalize resetting TOTP
DEPRECATED. Use `PATCH /v0/org/{org_id}/user/me/totp` instead.
Checks if the response contains the correct TOTP code corresponding to the
challenge generated by the POST method of this endpoint.'
operationId: resetTotpCompleteLegacy
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TotpChallengeAnswer'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
deprecated: true
security:
- SignerAuth:
- manage:mfa:register:totp
/v0/user/me/totp/verify:
post:
tags:
- User
summary: Verify TOTP
description: 'Verify TOTP
DEPRECATED. Use `POST /v0/org/{org_id}/user/me/totp/verify` instead.
Checks if a given code matches the current TOTP code for the current user.
Errors with 403 if the current user has not set up TOTP or the code fails verification.'
operationId: verifyTotpLegacy
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TotpApproveRequest'
required: true
responses:
'200':
$ref: '#/components/responses/EmptyImpl'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
deprecated: true
security:
- SignerAuth:
- manage:mfa:verify:totp
/v0/user/orgs:
get:
tags:
- User
summary: Retrieves all the orgs the user is a part of
description: Retrieves all the orgs the user is a part of
operationId: userOrgs
responses:
'200':
$ref: '#/components/responses/UserOrgsResponse'
default:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- Oidc: []
components:
schemas:
AttestationConveyancePreference:
type: string
description: 'WebAuthn Relying Parties may use AttestationConveyancePreference to specify
their preference regarding attestation conveyance during credential
generation.
https://www.w3.org/TR/webauthn-2/#enumdef-attestationconveyancepreference'
enum:
- none
- indirect
- direct
- enterprise
BadRequestErrorCode:
type: string
enum:
- GenericBadRequest
- DisallowedAllowRuleReference
- InvalidPaginationToken
- InvalidEmail
- InvalidEmailTemplate
- QueryMetricsError
- InvalidTelegramData
- ValidationError
- WebhookPolicyTimeoutOutOfBounds
- WebhookPolicyDisallowedUrlScheme
- WebhookPolicyDisallowedUrlHost
- WebhookPolicyDisallowedHeaders
- ReservedName
- UserEmailNotConfigured
- EmailPasswordNotFound
- PasswordAuthNotAllowedByInvitation
- OneTimeCodeExpired
- InvalidBody
- InvalidJwt
- InvitationNoLongerValid
- TokenRequestError
- InvalidMfaReceipt
- InvalidMfaPolicyCount
- InvalidMfaPolicyNumAuthFactors
- InvalidMfaPolicyNumAllowedApprovers
- InvalidMfaPolicyGracePeriodTooLong
- InvalidBabylonStakingPolicyParams
- InvalidSuiTxReceiversEmptyAllowlist
- InvalidBtcTxReceiversEmptyAllowlist
- InvalidRequireRoleSessionAllowlist
- InvalidCreateKeyCount
- InvalidDiffieHellmanCount
- OrgInviteExistingUser
- OrgUserAlreadyExists
- OrgNameTaken
- KwkNotFoundInRegion
- OrgIsNotOrgExport
- RoleNameTaken
- PolicyNameTaken
- NameTaken
- ContactNameInvalid
- ContactAddressesInvalid
- ContactLabelInvalid
- ContactModified
- PolicyNotFound
- PolicyVersionNotFound
- PolicyRuleDisallowedByType
- PolicyTypeDisallowed
- PolicyDuplicateError
- PolicyStillAttached
- PolicyModified
- PolicyNotAttached
- AddKeyToRoleCountTooHigh
- InvalidKeyId
- InvalidTimeLockAlreadyInThePast
- InvalidRestrictedScopes
- InvalidUpdate
- InvalidMetadataLength
- InvalidLength
- InvalidKeyMaterialId
- KeyNotFound
- SiweChallengeNotFound
- SiweInvalidRequest
- SiwsChallengeNotFound
- SiwsInvalidRequest
- UserExportDerivedKey
- UserExportPublicKeyInvalid
- NistP256PublicKeyInvalid
- UnableToAccessSmtpRelay
- UserExportInProgress
- RoleNotFound
- InvalidRoleNameOrId
- InvalidMfaReceiptOrgIdMissing
- InvalidMfaReceiptInvalidOrgId
- MfaRequestNotFound
- InvalidKeyType
- InvalidPropertiesForKeyType
- MismatchedKeyPropertiesPatch
- MissingBinanceApiKey
- MissingBybitApiKey
- MissingCoinbaseApiKey
- BinanceKeyMasterMismatch
- BybitAccountMismatch
- InvalidKeyMaterial
- InvalidHexValue
- InvalidBase32Value
- InvalidBase58Value
- InvalidBase64Value
- InvalidSs58Value
- InvalidForkVersionLength
- InvalidEthAddress
- InvalidStellarAddress
- InvalidOrgNameOrId
- InvalidUpdateOrgRequestDisallowedMfaType
- InvalidUpdateOrgRequestEmptyAllowedMfaTypes
- EmailOtpDelayTooShortForRegisterMfa
- InvalidStakeDeposit
- InvalidBlobSignRequest
- InvalidDiffieHellmanRequest
- InvalidSolanaSignRequest
- InvalidEip712SignRequest
- InvalidEip7702SignRequest
- OnlySpecifyOne
- IncompatibleParams
- NoOidcDataInProof
- InvalidEvmSignRequest
- InvalidEth2SignRequest
- InvalidDeriveKeyRequest
- InvalidStakingAmount
- CustomStakingAmountNotAllowedForWrapperContract
- InvalidUnstakeRequest
- InvalidCreateUserRequest
- UserAlreadyExists
- IdpUserAlreadyExists
- CognitoUserAlreadyOrgMember
- UserNotFound
- UserWithEmailNotFound
- PolicyKeyMismatch
- EmptyScopes
- InvalidScopesForRoleSession
- InvalidLifetime
- NoSingleKeyForUser
- InvalidOrgPolicyRule
- SourceIpAllowlistEmpty
- LimitWindowTooLong
- Erc20ContractDisallowed
- EmptyRuleError
- PolicyFieldValidationError
- OptionalListEmpty
- MultipleExclusiveFieldsProvided
- DuplicateFieldEntry
- InvalidRange
- InvalidOrgPolicyRepeatedRule
- InvalidSuiTransaction
- SuiSenderMismatch
- AvaSignHashError
- AvaSignError
- BtcSegwitHashError
- BtcTaprootHashError
- BtcSignError
- TaprootSignError
- Eip712SignError
- InvalidMemberRoleInUserAdd
- InvalidMemberRoleInRecipientAdd
- ThirdPartyUserAlreadyExists
- OidcIdentityAlreadyExists
- UserAlreadyHasIdentity
- ThirdPartyUserNotFound
- DeleteOidcUserError
- DeleteUserError
- SessionRoleMismatch
- InvalidOidcToken
- InvalidOidcIdentity
- OidcIssuerUnsupported
- OidcIssuerNotAllowed
- OidcIssuerNoApplicableJwk
- FidoKeyAlreadyRegistered
- FidoKeySignCountTooLow
- FidoVerificationFailed
- FidoChallengeMfaMismatch
- UnsupportedLegacyCognitoSession
- InvalidIdentityProof
- PaginationDataExpired
- ExistingKeysViolateExclusiveKeyAccess
- ExportDelayTooShort
- ExportWindowTooLong
- InvalidTotpFailureLimit
- InvalidEip191SignRequest
- CannotResendUserInvitation
- InvalidNotificationEndpointCount
- CannotDeletePendingSubscription
- InvalidNotificationUrlProtocol
- EmptyOneOfOrgEventFilter
- EmptyAllExceptOrgEventFilter
- InvalidTapNodeHash
- InvalidOneTimeCode
- MessageNotFound
- MessageAlreadySigned
- MessageRejected
- MessageReplaced
- InvalidMessageType
- EmptyAddress
- InvalidEth2SigningPolicySlotRange
- InvalidEth2SigningPolicyEpochRange
- InvalidEth2SigningPolicyTimestampRange
- InvalidEth2SigningPolicyOverlappingRule
- RpcUrlMissing
- MmiChainIdMissing
- EthersInvalidRpcUrl
- EthersGetTransactionCountError
- InvalidPassword
- BabylonStakingFeePlusDustOverflow
- BabylonStaking
- BabylonStakingIncorrectKey
- BabylonStakingSegwitNonDeposit
- BabylonStakingRegistrationRequiresTaproot
- PsbtSigning
- TooManyResets
- TooManyRequests
- TooManyFailedLogins
- BadBtcMessageSignP2shFlag
- InvalidTendermintRequest
- PolicyVersionMaxReached
- PolicyVersionInvalid
- PolicySecretLimitReached
- PolicySecretTooLarge
- InvalidImportKey
- AlienOwnerInvalid
- EmptyUpdateRequest
- InvalidPolicyReference
- PolicyEngineDisabled
- InvalidWasmPolicy
- CelProgramTooLarge
- InvalidPolicy
- RedundantDerivationPath
- ImportKeyMissing
- InvalidAbiMethods
- BabylonCovSign
- InvalidPolicyLogsRequest
- UserProfileMigrationMultipleEntries
- UserProfileMigrationTooManyItems
- InputTooShort
- InvalidTweakLength
- InvalidCustomChains
- InvalidRpcRequest
PreconditionErrorCode:
oneOf:
- $ref: '#/components/schemas/PreconditionErrorOwnCodes'
- $ref: '#/components/schemas/PolicyErrorCode'
AcceptedValueCode:
type: string
enum:
- SignDryRun
- BinanceDryRun
- BybitDryRun
- CoinbaseDryRun
- MfaRequired
OperationKind:
type: string
description: All different kinds of sensitive operations
enum:
- AvaSign
- AvaChainTxSign
- BabylonCovSign
- BabylonRegistration
- BabylonStaking
- BinanceSubToMaster
- BinanceSubToSub
- BinanceUniversalTransfer
- BinanceSubAccountAssets
- BinanceAccountInfo
- BinanceSubAccountTransferHistory
- BinanceUniversalTransferHistory
- BinanceWithdraw
- BinanceWithdrawHistory
- BinanceDeposit
- BinanceDepositHistory
- BinanceListSubAccounts
- BinanceCoinInfo
- BlobSign
- BtcMessageSign
- BtcSign
- BybitQueryUser
- BybitQuerySubMembers
- BybitQueryCoinsBalance
- BybitQueryDepositAddress
- BybitUniversalTransfer
- BybitWithdraw
- BybitWithdrawals
- CoinbaseListAccounts
- CoinbaseListPortfolios
- CoinbaseMoveFunds
- DiffieHellman
- PsbtSign
- TaprootSign
- Eip191Sign
- Eip712Sign
- Eip7702Sign
- EotsNonces
- EotsSign
- Eth1Sign
- Eth2Sign
- Eth2Stake
- Eth2Unstake
- SolanaSign
- SuiSign
- TendermintSign
- RoleUpdate
AuthenticatorAssertionResponse:
type: object
description: 'Represents the assertion response used by clients when attempting to log in with a known credential
https://www.w3.org/TR/webauthn-2/#authenticatorassertionresponse'
required:
- clientDataJSON
- authenticatorData
- signature
properties:
authenticatorData:
type: string
description: 'Contains the standard CTAP2 authenticator data. Must be a valid [`AuthenticatorData`].
This contains information about how key was invoked.
https://www.w3.org/TR/webauthn-2/#dom-authenticatorassertionresponse-authenticatordata'
clientDataJSON:
type: string
description: 'Contains UTF8 encoded JSON which must be a valid [`ClientData`]
This data is combined with `authenticator_data` to produce the signature
meaning the client attests to the correctness of this data.
https://www.w3.org/TR/webauthn-2/#dom-authenticatorresponse-clientdatajson'
signature:
type: string
description: 'The signature of the concatenated `authenticatorData || hash` where
`hash` is the SHA256 hash of the `clientDataJSON` buffer:
Field Definition: https://www.w3.org/TR/webauthn-2/#dom-authenticatorassertionresponse-signature
Step 11 of `getAssertion` specifies the concatenation: https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion
Requirement for SHA-256: https://www.w3.org/TR/webauthn-2/#collectedclientdata-hash-of-the-serialized-client-data'
userHandle:
type:
- string
- 'null'
description: 'Allows the authenticator to optionally declare the credential identifier they used.
https://www.w3.org/TR/webauthn-2/#dom-authenticatorassertionresponse-userhandle'
ErrorResponse:
type: object
description: The structure of ErrorResponse must match the response template that AWS uses
required:
- message
- error_code
properties:
accepted:
allOf:
- $ref: '#/components/schemas/AcceptedValue'
error_code:
$ref: '#/components/schemas/SignerErrorCode'
message:
type: string
description: Error message
policy_eval_tree:
description: Optional policy evaluation tree (included in signer responses, when requested)
request_id:
type: string
description: Optional request identifier
AuthenticatorSelectionCriteria:
type: object
description: 'WebAuthn Relying Parties may use the AuthenticatorSelectionCriteria
dictionary to specify their requirements regarding authenticator
attributes.
https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria'
properties:
authenticatorAttachment:
allOf:
- $ref: '#/components/schemas/AuthenticatorAttachment'
requireResidentKey:
type: boolean
description: 'This member is retained for backwards compatibility with WebAuthn Level
1 and, for historical reasons, its naming retains the deprecated
“resident” terminology for discoverable credentials. Relying Parties
SHOULD set it to true if, and only if, residentKey is set to required.
https://www.w3.org/TR/webauthn-2/#dom-authenticatorselectioncriteria-requireresidentkey'
residentKey:
allOf:
- $ref: '#/components/schemas/ResidentKeyRequirement'
userVerification:
$ref: '#/components/schemas/UserVerificationRequirement'
AuthenticatorAttestationResponse:
type: object
description: 'The AuthenticatorAttestationResponse interface represents the authenticator''s
response to a client’s request for the creation of a new public key
credential. It contains information about the new credential that can be
used to identify it for later use, and metadata that can be used by the
WebAuthn Relying Party to assess the characteristics of the credential
during registration.
https://www.w3.org/TR/webauthn-2/#iface-authenticatorattestationresponse'
required:
- clientDataJSON
- attestationObject
properties:
attestationObject:
type: string
description: 'This attribute contains an attestation object, which is opaque to, and
cryptographically protected against tampering by, the client. The
attestation object contains both authenticator data and an attestation
statement. The former contains the AAGUID, a unique credential ID, and
the credential public key. The contents of the attestation statement are
determined by the attestation statement format used by the
authenticator. It also contains any additional information that the
Relying Party''s server requires to validate the attestation statement,
as well as to decode and validate the authenticator data along with the
JSON-compatible serialization of client data. For more details, see
§ 6.5 Attestation, § 6.5.4 Generating an Attestation Object, and Figure
6.'
clientDataJSON:
type: string
description: 'This attribute, inherited from AuthenticatorResponse, contains the
JSON-compatible serialization of client data (see § 6.5 Attestation)
passed to the authenticator by the client in order to generate this
credential. The exact JSON serialization MUST be preserved, as the hash
of the serialized client data has been computed over it.'
ResidentKeyRequirement:
type: string
description: 'This enumeration’s values describe the Relying Party''s requirements for
client-side discoverable credentials (formerly known as resident credentials
or resident keys):
https://www.w3.org/TR/webauthn-2/#enumdef-residentkeyrequirement'
enum:
- discouraged
- preferred
- required
HttpRequest:
# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cubist/refs/heads/main/openapi/cubist-user-api-openapi.yml