Verisoul Account API

The Account API from Verisoul — 3 operation(s) for account.

OpenAPI Specification

verisoul-account-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Verisoul Account API
  description: The Verisoul API is used to integrate Verisoul into your application.
  license:
    name: MIT
  version: 1.0.0
servers:
- url: https://api.sandbox.verisoul.ai
security:
- apiKeyAuth: []
tags:
- name: Account
paths:
  /account/{account_id}:
    get:
      description: Returns detailed information about a specific account
      parameters:
      - name: account_id
        in: path
        description: ID of the account to retrieve
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Account information response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponse'
              example:
                project_id: 00000000-0000-0000-0000-000000000001
                request_id: 81fca4e3-0111-45b8-a8eb-0c2b638e1d29
                account:
                  id: john-doe
                  email: johndoe.example@gmail.com
                  phone: '+14155550123'
                  first_name: John
                  last_name: Doe
                  username: john.doe
                  expected_countries:
                  - US
                  - CA
                  metadata: {}
                  group: ''
                num_sessions: 1
                first_seen: '2025-06-10T16:47:29.661Z'
                last_seen: '2025-06-10T16:47:29.661Z'
                last_session: 56f9a065-1583-48af-a5c4-cd5921b21a12
                country: US
                countries:
                - US
                decision: Real
                account_score: 0.2191
                bot: 0
                multiple_accounts: 0.2053
                risk_signals: 0.2979
                accounts_linked: 2
                lists:
                - us_users
                unique_devices:
                  1_day: 1
                  7_day: 1
                unique_networks:
                  1_day: 1
                  7_day: 1
                email:
                  email: johndoe.example@gmail.com
                  disposable: false
                  personal: true
                  valid: true
                  domain_type: personal
                  email_score: 0
                  trust_signals:
                  - email_age_greater_than_5_years
                  - email_known_online_history
                  risk_signals:
                  - email_alias
                  num_account_from_domain: 156
                risk_signal_average:
                  device_risk: 0.3971
                  proxy: 0
                  vpn: 0
                  tor: 0
                  spoofed_ip: 0
                  datacenter: 0
                  recent_fraud_ip: 0
                  impossible_travel: 0
                  device_network_mismatch: 0.0001
                  location_spoofing: 0
        '400':
          description: Account not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountError'
              example:
                statusCode: 400
                message: Account not found
      tags:
      - Account
    put:
      description: Updates an existing account with new information
      parameters:
      - name: account_id
        in: path
        description: ID of the account to update
        required: true
        schema:
          type: string
      requestBody:
        description: Account information to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountUpdateRequest'
        required: true
      responses:
        '200':
          description: Updated account information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponse'
              example:
                project_id: 00000000-0000-0000-0000-000000000001
                request_id: e23cf3bd-7d33-440e-af9f-6d1d3182e2f9
                account:
                  id: john-doe
                  email: johndoe.example@gmail.com
                  phone: '+14155550123'
                  first_name: John
                  last_name: Doe
                  username: john.doe
                  expected_countries:
                  - US
                  - CA
                  metadata: {}
                  group: ''
                num_sessions: 1
                first_seen: '2025-06-10T16:47:29.661079410Z'
                last_seen: '2025-06-10T16:47:29.661079410Z'
                last_session: 56f9a065-1583-48af-a5c4-cd5921b21a12
                country: US
                countries:
                - US
                decision: Real
                account_score: 0.9392
                bot: 0
                multiple_accounts: 0.2053
                risk_signals: 1
                accounts_linked: 2
                lists:
                - us_users
                unique_devices:
                  1_day: 1
                  7_day: 1
                unique_networks:
                  1_day: 1
                  7_day: 1
                email:
                  email: johndoe.example@gmail.com
                  disposable: false
                  personal: true
                  valid: true
                  domain_type: personal
                  email_score: 0
                  trust_signals:
                  - email_age_greater_than_5_years
                  - email_known_online_history
                  risk_signals:
                  - email_alias
                  num_account_from_domain: 156
                risk_signal_average:
                  device_risk: 0.3971
                  proxy: 0
                  vpn: 0
                  tor: 0
                  spoofed_ip: 0
                  datacenter: 0
                  recent_fraud_ip: 0
                  impossible_travel: 0
                  device_network_mismatch: 0.0001
                  location_spoofing: 0
        '400':
          description: Account not found or invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountError'
              example:
                statusCode: 400
                message: Account not found
      tags:
      - Account
    delete:
      description: Deletes a specific account
      parameters:
      - name: account_id
        in: path
        description: ID of the account to delete
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Account deletion confirmation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteAccountResponse'
              example:
                request_id: b733c6eb-d22e-406d-a0aa-2b2cfda2cd44
                account_id: john-doe
                success: true
        '400':
          description: Account not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountError'
              example:
                statusCode: 400
                message: Account not found
      tags:
      - Account
  /account/{account_id}/sessions:
    get:
      description: Returns all sessions associated with a specific account
      parameters:
      - name: account_id
        in: path
        description: ID of the account to retrieve sessions for
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Account sessions response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionsResponse'
              example:
                request_id: e57b7c0f-34bc-4770-8ec7-71aacc72e5a4
                sessions:
                - 56f9a065-1583-48af-a5c4-cd5921b21a12
                - 2ddd11ed-2a46-4e21-9dc2-c2dbe7f7ef69
        '400':
          description: Account not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountError'
              example:
                statusCode: 400
                message: Account not found
      tags:
      - Account
  /account/{account_id}/accounts-linked:
    get:
      description: Returns all accounts linked to a specific account
      parameters:
      - name: account_id
        in: path
        description: ID of the account to retrieve linked accounts for
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Linked accounts response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkedAccountsResponse'
              example:
                request_id: 9b3f35c7-a4e6-4762-91db-b026bfe46e9c
                accounts_linked:
                - account_id: john-doe-1
                  score: 0.1085
                  match_type:
                  - network
                  - email
                  - browser
                  - device
                  - phone
                  - username
                  email: john.doe@example.com
                  phone: '+14155550123'
                  first_name: Jane
                  last_name: Doe
                  username: jane.doe
                  expected_countries:
                  - US
                  - CA
                  lists:
                  - us_users
                  metadata: {}
                - account_id: john-doe-2
                  score: 0.1085
                  match_type:
                  - network
                  - email
                  - browser
                  - phone
                  - username
                  email: john.doe2@example.com
                  phone: '+14155550123'
                  first_name: Jane
                  last_name: Doe
                  username: jane.doe
                  expected_countries:
                  - US
                  - CA
                  lists:
                  - us_users
                  metadata: {}
        '400':
          description: Account not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountError'
              example:
                statusCode: 400
                message: Account not found
      tags:
      - Account
components:
  schemas:
    AccountResponse:
      type: object
      properties:
        project_id:
          type: string
          description: The ID of the project
        request_id:
          type: string
          description: The ID of the request
        account:
          type: object
          properties:
            id:
              type: string
              description: The account identifier
            email:
              type: string
              description: The email associated with the account
            phone:
              type: string
              description: The phone number stored for the account in E.164 format
            first_name:
              type: string
              description: The account holder's first name
            last_name:
              type: string
              description: The account holder's last name
            username:
              type: string
              description: The username stored for the account
            expected_countries:
              type: array
              items:
                type: string
              description: Countries the account is expected to operate from (ISO 3166-1 alpha-2 codes)
            metadata:
              type: object
              additionalProperties: true
              description: Additional metadata about the account
            group:
              type: string
              description: Groups must be enabled for the project to use this field. See [Multi Accounting Groups](/integration/advanced/multi-accounting-groups) for more information.
        num_sessions:
          type: integer
          description: Number of sessions associated with this account
        first_seen:
          type: string
          format: date-time
          description: Timestamp when the account was first seen
        last_seen:
          type: string
          format: date-time
          description: Timestamp when the account was last seen
        last_session:
          type: string
          description: ID of the last session
        decision:
          type: string
          description: Decision about the account authenticity
        account_score:
          type: number
          format: float
          description: Overall account risk score
        bot:
          type: number
          format: float
          description: Bot detection score
        multiple_accounts:
          type: number
          format: float
          description: Multiple accounts detection score
        risk_signals:
          type: number
          format: float
          description: Risk signals score
        accounts_linked:
          type: integer
          description: Number of accounts linked to this account
        country:
          type: string
          description: Country code of the account
        lists:
          type: array
          items:
            type: string
          description: Lists the account belongs to
        unique_devices:
          type: object
          properties:
            1_day:
              type: integer
              description: Number of unique devices in the last day
            7_day:
              type: integer
              description: Number of unique devices in the last 7 days
        unique_networks:
          type: object
          properties:
            1_day:
              type: integer
              description: Number of unique networks in the last day
            7_day:
              type: integer
              description: Number of unique networks in the last 7 days
        email:
          type: object
          properties:
            email:
              type: string
              description: Email address
            disposable:
              type: boolean
              description: Whether the email is disposable
            personal:
              type: boolean
              description: Whether the email is personal
            valid:
              type: boolean
              description: Whether the email is valid
            domain_type:
              type: string
              enum:
              - relay
              - personal
              - disposable
              - business
              - government
              - education
              - invalid
              - not_active
              description: The type of domain. See [Domain Types](/signals-scores/email#domain-types) for details.
            email_score:
              type: number
              format: float
              description: Email risk score from -1 (most trustworthy) to 1 (most risky)
            trust_signals:
              type: array
              items:
                type: string
              description: Array of trust signals detected for this email. See [Trust Flags](/signals-scores/email#trust-flags) for descriptions.
            risk_signals:
              type: array
              items:
                type: string
              description: Array of risk signals detected for this email. See [Risk Flags](/signals-scores/email#risk-flags) for descriptions.
            num_account_from_domain:
              type: integer
              description: Number of accounts from the same apex domain seen in your project. Capped at 1000. See [Domain Account Velocity](/signals-scores/email#domain-account-velocity) for details.
        risk_signal_average:
          type: object
          properties:
            device_risk:
              type: number
              format: float
              description: Device risk score
            proxy:
              type: number
              format: float
              description: Proxy detection score
            vpn:
              type: number
              format: float
              description: VPN detection score
            datacenter:
              type: number
              format: float
              description: Datacenter detection score
            tor:
              type: number
              format: float
              description: Tor detection score
            spoofed_ip:
              type: number
              format: float
              description: Spoofed IP detection score
            recent_fraud_ip:
              type: number
              format: float
              description: Recent fraud IP detection score
            impossible_travel:
              type: number
              format: float
              description: Impossible travel detection score
            device_network_mismatch:
              type: number
              format: float
              description: Device network mismatch score
            location_spoofing:
              type: number
              format: float
              description: Location spoofing detection score
    DeleteAccountResponse:
      type: object
      properties:
        request_id:
          type: string
          description: The ID of the request
        success:
          type: boolean
          description: Whether the deletion was successful
        account_id:
          type: string
          description: The ID of the deleted account
    LinkedAccount:
      type: object
      properties:
        account_id:
          type: string
          description: The ID of the linked account
        score:
          type: number
          format: float
          description: Confidence score of the link between accounts
        email:
          type: string
          description: Email associated with the linked account
        phone:
          type: string
          description: Phone number associated with the linked account
        first_name:
          type: string
          description: First name associated with the linked account
        last_name:
          type: string
          description: Last name associated with the linked account
        username:
          type: string
          description: Username associated with the linked account
        expected_countries:
          type: array
          items:
            type: string
          description: Expected countries declared for the linked account (ISO 3166-1 alpha-2 codes)
        match_type:
          type: array
          items:
            type: string
          description: 'Types of matches that linked these accounts. Possible values: browser, device, network, email, phone, username, name, mobile_id, apple_device_check.'
        lists:
          type: array
          items:
            type: string
          description: Lists the linked account belongs to
        metadata:
          type: object
          additionalProperties: true
          description: Additional metadata about the linked account
    LinkedAccountsResponse:
      type: object
      properties:
        request_id:
          type: string
          description: The ID of the request
        accounts_linked:
          type: array
          items:
            $ref: '#/components/schemas/LinkedAccount'
          description: List of accounts linked to the specified account
    SessionsResponse:
      type: object
      properties:
        request_id:
          type: string
          description: The ID of the request
        sessions:
          type: array
          items:
            type: string
          description: List of session IDs associated with the account
    AccountUpdateRequest:
      type: object
      properties:
        id:
          type: string
          description: The account identifier
        email:
          type: string
          description: The email associated with the account
        phone:
          type: string
          maxLength: 32
          description: The phone number on file for the account in E.164 format (e.g. +14155550123)
        first_name:
          type: string
          maxLength: 256
          description: The account holder's first name
        last_name:
          type: string
          maxLength: 256
          description: The account holder's last name
        username:
          type: string
          maxLength: 256
          description: The username associated with the account
        expected_countries:
          type: array
          items:
            type: string
            minLength: 2
            maxLength: 2
          description: Countries the account is expected to legitimately operate from, as ISO 3166-1 alpha-2 codes. A non-empty list replaces the stored list; an empty or omitted list leaves the stored list unchanged.
        metadata:
          type: object
          additionalProperties: true
          description: Additional metadata about the account
      required:
      - id
    AccountError:
      type: object
      properties:
        message:
          type: string
          description: Error message
        statusCode:
          type: integer
          description: Status code
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key