{
  "opencollection": "1.0.0",
  "info": {
    "name": "TypingDNA - Authentication API Documentation advanced standard API",
    "version": "2.3.0"
  },
  "items": [
    {
      "info": {
        "name": "standard",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Single endpoint that coordinates both enrollments and verifications",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.typingdna.com/auto/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "An anonymized string of your choice that identifies the user on your end (min 6 char, max 256 char). Please note that this string has to be unique and should not be personal information (email address, name, phone number, etc). If you still want to use something like an email address as ID, we suggest sending a salted hash of it. More about data privacy in our [SLA](https://www.typingdna.com/legal/legal.html)."
              }
            ],
            "body": {
              "type": "form-urlencoded",
              "data": []
            },
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "_/auto_ orchestrates the enrollment and verification process, requiring typing pattern(s) and a User ID to determine the appropriate action and response, based on the context of the request. The behavior depends on the number of saved patterns (_Enrollments_) associated with the User ID to determine whether to enroll, verify or both the pattern(s) supplied."
        },
        {
          "info": {
            "name": "Check user by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.typingdna.com/user/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "An anonymized string of your choice that identifies the user on your end (min 6 char, max 256 char). Please note that this string has to be unique and should not be personal information (email address, name, phone number, etc). If you still want to use something like an email address as ID, we suggest sending a salted hash of it. More about data privacy in our [SLA](https://www.typingdna.com/legal/legal.html)."
              },
              {
                "name": "type",
                "value": "",
                "type": "query",
                "description": "One of the following options [0, 1, 2, all], 0 for anytext pattern, 1 for sametext pattern and 2 for extended pattern (default: “all”)"
              },
              {
                "name": "textid",
                "value": "",
                "type": "query",
                "description": "You may provide textid (if the user has multiple ones). Relevant only for type 1 and 2."
              },
              {
                "name": "custom_field",
                "value": "",
                "type": "query",
                "description": "(optional) You may provide a custom field in the request that can serve as a unique identifier of the user or the session. This field will be returned on response, provided the request hasn't been rejected based on authentication or syntax."
              }
            ],
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "To check if a user exists and get the number of saved typing patterns you can call _/user/:id_ with _GET_ method. We recommend saving at least 2 typing patterns per user in order to perform accurate authentications"
        },
        {
          "info": {
            "name": "Delete user patterns by user ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.typingdna.com/user/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "An anonymized string of your choice that identifies the user on your end (min 6 char, max 256 char). Please note that this string has to be unique and should not be personal information (email address, name, phone number, etc). If you still want to use something like an email address as ID, we suggest sending a salted hash of it. More about data privacy in our [SLA](https://www.typingdna.com/legal/legal.html)."
              },
              {
                "name": "type",
                "value": "",
                "type": "query",
                "description": "One of the following options [0, 1, 2, all], 0 for anytext pattern, 1 for sametext pattern and 2 for extended pattern (default: “all”)"
              },
              {
                "name": "textid",
                "value": "",
                "type": "query",
                "description": "You may provide textid (if the user has multiple ones). Relevant only for type 1 and 2."
              },
              {
                "name": "device",
                "value": "",
                "type": "query",
                "description": "A string that identifies the device ['all','desktop','mobile']. The default value is 'all'."
              },
              {
                "name": "custom_field",
                "value": "",
                "type": "query",
                "description": "(optional) You may provide a custom field in the request that can serve as a unique identifier of the user or the session. This field will be returned on response, provided the request hasn't been rejected based on authentication or syntax."
              }
            ],
            "auth": {
              "type": "basic",
              "username": "{{username}}",
              "password": "{{password}}"
            }
          },
          "docs": "To delete a user and his saved typing patterns you can call _/user/:id_ with _DELETE_ method. The _type_, _textid_, and _device_ parameters can be used in the query string when making the request in order to delete only certain patterns from the user."
        },
        {
          "info": {
            "name": "Validate the OTP the user has submitted",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.typingdna.com/otp/validate",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "The /otp/validate endpoint is used to validate the OTP the user has submitted. The method uses the TypingDNA code validation service and returns either a success or failure. Upon a successful code validation, the end-user is considered verified. Note: Implementing this endpoint is mandatory for flow completion, even when disableRoT was set to true."
        }
      ]
    }
  ],
  "bundled": true
}