{
  "swagger": "2.0",
  "info": {
    "contact": {
      "email": "contact@namsor.com",
      "name": "Namsor SAS",
      "url": "http://www.namsor.com/",
      "x-twitter": "gendreapp"
    },
    "description": "NamSor API v2 : enpoints to process personal names (gender, cultural origin or ethnicity) in all alphabets or languages. Use GET methods for small tests, but prefer POST methods for higher throughput (batch processing of up to 100 names at a time). Need something you can't find here? We have many more features coming soon. Let us know, we'll do our best to add it! ",
    "license": {
      "name": "NamSorAPI_Lic_v0.0.7",
      "url": "https://v2.namsor.com/NamSorAPIv2/assets/pdf/201803_NamSor_API_Terms_v007.pdf"
    },
    "title": "NamSor API v2",
    "version": "2.0.10",
    "x-apisguru-categories": [
      "text"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_twitter.com_gendreapp_profile_image.png"
    },
    "x-origin": [
      {
        "converter": {
          "url": "https://github.com/lucybot/api-spec-converter",
          "version": "2.7.31"
        },
        "format": "openapi",
        "url": "https://v2.namsor.com/NamSorAPIv2/api2/openapi.json",
        "version": "3.0"
      }
    ],
    "x-preferred": true,
    "x-providerName": "namsor.com",
    "x-datafire": {
      "name": "namsor",
      "type": "openapi"
    }
  },
  "host": "v2.namsor.com",
  "basePath": "/NamSorAPIv2",
  "schemes": [
    "https"
  ],
  "paths": {
    "/api2/json/addCredits/{apiKey}/{usageCredits}/{userMessage}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "apiKey",
            "required": true,
            "type": "string"
          },
          {
            "format": "int64",
            "in": "path",
            "name": "usageCredits",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "userMessage",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Estimate new after applying credits.",
            "schema": {
              "$ref": "#/definitions/SystemMetricsOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "addCredits",
        "summary": "Add usage credits to an API Key."
      }
    },
    "/api2/json/anonymize/{source}/{anonymized}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "source",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "anonymized",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Anonymization of a source."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "anonymize",
        "summary": "Activate/deactivate anonymization for a source."
      }
    },
    "/api2/json/apiServices": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Available services",
            "schema": {
              "$ref": "#/definitions/APIPlansOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "availableServices",
        "summary": "List of API services and usage cost in Units (default is 1=ONE Unit)."
      }
    },
    "/api2/json/apiStatus": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Available classifiers and status",
            "schema": {
              "$ref": "#/definitions/APIPlansOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "apiStatus",
        "summary": "Prints the current status of the classifiers."
      }
    },
    "/api2/json/apiUsage": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Print current API usage.",
            "schema": {
              "$ref": "#/definitions/APIPeriodUsageOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "apiUsage",
        "summary": "Print current API usage."
      }
    },
    "/api2/json/apiUsageHistory": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Print historical API usage.",
            "schema": {
              "$ref": "#/definitions/APIPeriodUsageOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "apiUsageHistory",
        "summary": "Print historical API usage."
      }
    },
    "/api2/json/apiUsageHistoryAggregate": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Print historical API usage.",
            "schema": {
              "$ref": "#/definitions/APIPeriodUsageOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "apiUsageHistoryAggregate",
        "summary": "Print historical API usage (in an aggregated view, by service, by day/hour/min)."
      }
    },
    "/api2/json/availablePlans": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Available plans",
            "schema": {
              "$ref": "#/definitions/APIPlansOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "availablePlans",
        "summary": "List all available plans in the default currency (usd)."
      }
    },
    "/api2/json/availablePlans/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Available plans",
            "schema": {
              "$ref": "#/definitions/APIPlansOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "availablePlans_1",
        "summary": "List all available plans in the user's preferred currency."
      }
    },
    "/api2/json/billingCurrencies": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "The supported billing currencies.",
            "schema": {
              "$ref": "#/definitions/CurrenciesOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "billingCurrencies",
        "summary": "List possible currency options for billing (USD, EUR, GBP, ...)"
      }
    },
    "/api2/json/billingHistory/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The billing history",
            "schema": {
              "$ref": "#/definitions/BillingHistoryOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "billingHistory",
        "summary": "Read the history billing information (invoices paid via Stripe or manually)."
      }
    },
    "/api2/json/billingInfo/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The current billing info",
            "schema": {
              "$ref": "#/definitions/BillingInfoInOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "billingInfo",
        "summary": "Read the billing information (company name, address, phone, vat ID)"
      }
    },
    "/api2/json/charge": {
      "post": {
        "consumes": [],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "schema": {
              "properties": {
                "stripeEmail": {
                  "type": "string"
                },
                "stripeToken": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A stripe customerID",
            "schema": {
              "$ref": "#/definitions/APIKeyOut"
            }
          },
          "401": {
            "description": "Missing or incorrect email or payment token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "charge",
        "summary": "Create a Stripe Customer, based on a payment card token (from secure StripeJS) and email."
      }
    },
    "/api2/json/chineseNameCandidates/{chineseSurnameLatin}/{chineseGivenNameLatin}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "chineseSurnameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "chineseGivenNameLatin",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A romanized name.",
            "schema": {
              "$ref": "#/definitions/RomanizedNameOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "chineseNameCandidates",
        "summary": "Identify Chinese name candidates, based on the romanized name ex. Wang Xiaoming"
      }
    },
    "/api2/json/chineseNameCandidatesBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal Chinese names in LATIN, firstName = chineseGivenName; lastName=chineseSurname",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchNameMatchCandidatesOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "chineseNameCandidatesBatch",
        "summary": "Identify Chinese name candidates, based on the romanized name (firstName = chineseGivenName; lastName=chineseSurname), ex. Wang Xiaoming"
      }
    },
    "/api2/json/chineseNameCandidatesGenderBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal Chinese names in LATIN, firstName = chineseGivenName; lastName=chineseSurname",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchNameMatchCandidatesOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "chineseNameCandidatesGenderBatch",
        "summary": "Identify Chinese name candidates, based on the romanized name (firstName = chineseGivenName; lastName=chineseSurname) ex. Wang Xiaoming."
      }
    },
    "/api2/json/chineseNameGenderCandidates/{chineseSurnameLatin}/{chineseGivenNameLatin}/{knownGender}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "chineseSurnameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "chineseGivenNameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "knownGender",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A romanized name.",
            "schema": {
              "$ref": "#/definitions/RomanizedNameOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "chineseNameGenderCandidates",
        "summary": "Identify Chinese name candidates, based on the romanized name ex. Wang Xiaoming - having a known gender ('male' or 'female')"
      }
    },
    "/api2/json/chineseNameMatch/{chineseSurnameLatin}/{chineseGivenNameLatin}/{chineseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "chineseSurnameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "chineseGivenNameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "chineseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A romanized name.",
            "schema": {
              "$ref": "#/definitions/RomanizedNameOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "chineseNameMatch",
        "summary": "Return a score for matching Chinese name ex. 王晓明 with a romanized name ex. Wang Xiaoming"
      }
    },
    "/api2/json/chineseNameMatchBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal Chinese names in LATIN, firstName = chineseGivenName; lastName=chineseSurname",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchNameMatchCandidatesOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "chineseNameMatchBatch",
        "summary": "Identify Chinese name candidates, based on the romanized name (firstName = chineseGivenName; lastName=chineseSurname), ex. Wang Xiaoming"
      }
    },
    "/api2/json/corporateKey/{apiKey}/{corporate}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "apiKey",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "corporate",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "API Key set to a corporate status."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "corporateKey",
        "summary": "Setting an API Key to a corporate status."
      }
    },
    "/api2/json/country/{personalNameFull}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "personalNameFull",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A origined name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameGeoOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "country",
        "summary": "[USES 10 UNITS PER NAME] Infer the likely country of residence of a personal full name, or one surname. Assumes names as they are in the country of residence OR the country of origin."
      }
    },
    "/api2/json/countryBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameGeoOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "countryBatch",
        "summary": "[USES 10 UNITS PER NAME] Infer the likely country of residence of up to 100 personal full names, or surnames. Assumes names as they are in the country of residence OR the country of origin."
      }
    },
    "/api2/json/debugLevel/{logger}/{level}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "logger",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "level",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "debugLevel",
        "summary": "Update debug level for a classifier"
      }
    },
    "/api2/json/diaspora/{countryIso2}/{firstName}/{lastName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "countryIso2",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A diaspora / ethnicity for given name and geography.",
            "schema": {
              "$ref": "#/definitions/FirstLastNameDiasporaedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "diaspora",
        "summary": "[USES 20 UNITS PER NAME] Infer the likely ethnicity/diaspora of a personal name, given a country of residence ISO2 code (ex. US, CA, AU, NZ etc.)"
      }
    },
    "/api2/json/diasporaBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGeoIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of diaspora / ethnicity given a name and residency.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameDiasporaedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "diasporaBatch",
        "summary": "[USES 20 UNITS PER NAME] Infer the likely ethnicity/diaspora of up to 100 personal names, given a country of residence ISO2 code (ex. US, CA, AU, NZ etc.)"
      }
    },
    "/api2/json/flush": {
      "get": {
        "parameters": [],
        "responses": {
          "200": {
            "description": "Flush API Key caches."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "flush",
        "summary": "Flush counters."
      }
    },
    "/api2/json/gender/{firstName}/{lastName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/FirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "gender",
        "summary": "Infer the likely gender of a name."
      }
    },
    "/api2/json/genderBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "genderBatch",
        "summary": "Infer the likely gender of up to 100 names, detecting automatically the cultural context."
      }
    },
    "/api2/json/genderChineseName/{chineseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "chineseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "genderChineseName",
        "summary": "Infer the likely gender of a Chinese full name ex. 王晓明"
      }
    },
    "/api2/json/genderChineseNameBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names, with a country ISO2 code",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "genderChineseNameBatch",
        "summary": "Infer the likely gender of up to 100 full names ex. 王晓明"
      }
    },
    "/api2/json/genderChineseNamePinyin/{chineseSurnameLatin}/{chineseGivenNameLatin}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "chineseSurnameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "chineseGivenNameLatin",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/FirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "genderChineseNamePinyin",
        "summary": "Infer the likely gender of a Chinese name in LATIN (Pinyin)."
      }
    },
    "/api2/json/genderChineseNamePinyinBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of names, with country code.",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "genderChineseNamePinyinBatch",
        "summary": "Infer the likely gender of up to 100 Chinese names in LATIN (Pinyin)."
      }
    },
    "/api2/json/genderFull/{fullName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "fullName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "genderFull",
        "summary": "Infer the likely gender of a full name, ex. John H. Smith"
      }
    },
    "/api2/json/genderFullBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "genderFullBatch",
        "summary": "Infer the likely gender of up to 100 full names, detecting automatically the cultural context."
      }
    },
    "/api2/json/genderFullGeo/{fullName}/{countryIso2}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "fullName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "countryIso2",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "genderFullGeo",
        "summary": "Infer the likely gender of a full name, given a local context (ISO2 country code)."
      }
    },
    "/api2/json/genderFullGeoBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names, with a country ISO2 code",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameGeoIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "genderFullGeoBatch",
        "summary": "Infer the likely gender of up to 100 full names, with a given cultural context (country ISO2 code)."
      }
    },
    "/api2/json/genderGeo/{firstName}/{lastName}/{countryIso2}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "countryIso2",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/FirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "genderGeo",
        "summary": "Infer the likely gender of a name, given a local context (ISO2 country code)."
      }
    },
    "/api2/json/genderGeoBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of names, with country code.",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGeoIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "genderGeoBatch",
        "summary": "Infer the likely gender of up to 100 names, each given a local context (ISO2 country code)."
      }
    },
    "/api2/json/genderJapaneseName/{japaneseSurname}/{japaneseGivenName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "japaneseSurname",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "japaneseGivenName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/FirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "genderJapaneseNamePinyin",
        "summary": "Infer the likely gender of a Japanese name in LATIN (Pinyin)."
      }
    },
    "/api2/json/genderJapaneseNameBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of names, with country code.",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "genderJapaneseNamePinyinBatch",
        "summary": "Infer the likely gender of up to 100 Japanese names in LATIN (Pinyin)."
      }
    },
    "/api2/json/genderJapaneseNameFull/{japaneseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "japaneseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A genderized name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "genderJapaneseNameFull",
        "summary": "Infer the likely gender of a Japanese full name ex. 王晓明"
      }
    },
    "/api2/json/genderJapaneseNameFullBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "genderJapaneseNameFullBatch",
        "summary": "Infer the likely gender of up to 100 full names"
      }
    },
    "/api2/json/invalidateCache": {
      "get": {
        "parameters": [],
        "responses": {
          "200": {
            "description": "Clear caches."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "invalidateCache",
        "summary": "Invalidate system caches."
      }
    },
    "/api2/json/japaneseNameKanjiCandidates/{japaneseSurnameLatin}/{japaneseGivenNameLatin}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "japaneseSurnameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "japaneseGivenNameLatin",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A romanized name.",
            "schema": {
              "$ref": "#/definitions/RomanizedNameOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "japaneseNameKanjiCandidates",
        "summary": "Identify japanese name candidates in KANJI, based on the romanized name ex. Yamamoto Sanae"
      }
    },
    "/api2/json/japaneseNameKanjiCandidatesBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal japanese names in LATIN, firstName = japaneseGivenName; lastName=japaneseSurname",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchNameMatchCandidatesOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "japaneseNameKanjiCandidatesBatch",
        "summary": "Identify japanese name candidates in KANJI, based on the romanized name (firstName = japaneseGivenName; lastName=japaneseSurname), ex. Yamamoto Sanae"
      }
    },
    "/api2/json/japaneseNameLatinCandidates/{japaneseSurnameKanji}/{japaneseGivenNameKanji}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "japaneseSurnameKanji",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "japaneseGivenNameKanji",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A romanized name.",
            "schema": {
              "$ref": "#/definitions/RomanizedNameOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "japaneseNameLatinCandidates",
        "summary": "Romanize japanese name, based on the name in Kanji."
      }
    },
    "/api2/json/japaneseNameLatinCandidatesBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal japanese names in KANJI, firstName = japaneseGivenName; lastName=japaneseSurname",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchNameMatchCandidatesOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "japaneseNameLatinCandidatesBatch",
        "summary": "Romanize japanese names, based on the name in KANJI"
      }
    },
    "/api2/json/japaneseNameMatch/{japaneseSurnameLatin}/{japaneseGivenNameLatin}/{japaneseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "japaneseSurnameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "japaneseGivenNameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "japaneseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A romanized name.",
            "schema": {
              "$ref": "#/definitions/RomanizedNameOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "japaneseNameMatch",
        "summary": "Return a score for matching Japanese name in KANJI ex. 山本 早苗 with a romanized name ex. Yamamoto Sanae"
      }
    },
    "/api2/json/japaneseNameMatchBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal Japanese names in LATIN, firstName = japaneseGivenName; lastName=japaneseSurname",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of matched names.",
            "schema": {
              "$ref": "#/definitions/BatchNameMatchCandidatesOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "japaneseNameMatchBatch",
        "summary": "Return a score for matching a list of Japanese names in KANJI ex. 山本 早苗 with romanized names ex. Yamamoto Sanae"
      }
    },
    "/api2/json/japaneseNameMatchFeedbackLoop/{japaneseSurnameLatin}/{japaneseGivenNameLatin}/{japaneseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "japaneseSurnameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "japaneseGivenNameLatin",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "japaneseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A romanized name.",
            "schema": {
              "$ref": "#/definitions/RomanizedNameOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "japaneseNameMatchFeedbackLoop",
        "summary": "[CREDITS 1 UNIT] Feedback loop to better perform matching Japanese name in KANJI ex. 山本 早苗 with a romanized name ex. Yamamoto Sanae"
      }
    },
    "/api2/json/learnable/{source}/{learnable}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "source",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "learnable",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Vetting of a source."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "learnable",
        "summary": "Activate/deactivate learning from a source."
      }
    },
    "/api2/json/namsorCounter": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "The overall API counter",
            "schema": {
              "$ref": "#/definitions/SoftwareVersionOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "namsorCounter",
        "summary": "Get the overall API counter"
      }
    },
    "/api2/json/origin/{firstName}/{lastName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A origined name.",
            "schema": {
              "$ref": "#/definitions/FirstLastNameOriginedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "origin",
        "summary": "[USES 10 UNITS PER NAME] Infer the likely country of origin of a personal name. Assumes names as they are in the country of origin. For US, CA, AU, NZ and other melting-pots : use 'diaspora' instead."
      }
    },
    "/api2/json/originBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameOriginedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "originBatch",
        "summary": "[USES 10 UNITS PER NAME] Infer the likely country of origin of up to 100 names, detecting automatically the cultural context."
      }
    },
    "/api2/json/parseChineseName/{chineseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "chineseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A origined name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "parseChineseName",
        "summary": "Infer the likely first/last name structure of a name, ex. 王晓明 -> 王(surname) 晓明(given name)"
      }
    },
    "/api2/json/parseChineseNameBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of parsed names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "parseChineseNameBatch",
        "summary": "Infer the likely first/last name structure of a name, ex. 王晓明 -> 王(surname) 晓明(given name)."
      }
    },
    "/api2/json/parseJapaneseName/{japaneseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "japaneseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A origined name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "parseJapaneseName",
        "summary": "Infer the likely first/last name structure of a name, ex. 山本 早苗 or Yamamoto Sanae"
      }
    },
    "/api2/json/parseJapaneseNameBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of parsed names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "japanese"
        ],
        "operationId": "parseJapaneseNameBatch",
        "summary": "Infer the likely first/last name structure of a name, ex. 山本 早苗 or Yamamoto Sanae "
      }
    },
    "/api2/json/parseName/{nameFull}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "nameFull",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A origined name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "parseName",
        "summary": "Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John. "
      }
    },
    "/api2/json/parseName/{nameFull}/{countryIso2}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "nameFull",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "countryIso2",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A origined name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "parseNameGeo",
        "summary": "Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John. For better accuracy, provide a geographic context."
      }
    },
    "/api2/json/parseNameBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of parsed names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "parseNameBatch",
        "summary": "Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John."
      }
    },
    "/api2/json/parseNameGeoBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameGeoIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of parsed names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "parseNameGeoBatch",
        "summary": "Infer the likely first/last name structure of a name, ex. John Smith or SMITH, John or SMITH; John. Giving a local context improves precision. "
      }
    },
    "/api2/json/parsedGenderBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchParsedFullNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "parsedGenderBatch",
        "summary": "Infer the likely gender of up to 100 fully parsed names, detecting automatically the cultural context."
      }
    },
    "/api2/json/parsedGenderGeoBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchParsedFullNameGeoIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGenderedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "parsedGenderGeoBatch",
        "summary": "Infer the likely gender of up to 100 fully parsed names, detecting automatically the cultural context."
      }
    },
    "/api2/json/paymentInfo/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An session token",
            "schema": {
              "$ref": "#/definitions/APIKeyOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "paymentInfo",
        "summary": "Get the Stripe payment information associated with the current google auth session token."
      }
    },
    "/api2/json/phoneCode/{firstName}/{lastName}/{phoneNumber}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "phoneNumber",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A name with country and phone code.",
            "schema": {
              "$ref": "#/definitions/FirstLastNamePhoneCodedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "social"
        ],
        "operationId": "phoneCode",
        "summary": "[USES 11 UNITS PER NAME] Infer the likely country and phone prefix, given a personal name and formatted / unformatted phone number."
      }
    },
    "/api2/json/phoneCodeBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNamePhoneNumberIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNamePhoneCodedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "social"
        ],
        "operationId": "phoneCodeBatch",
        "summary": "[USES 11 UNITS PER NAME] Infer the likely country and phone prefix, of up to 100 personal names, detecting automatically the local context given a name and formatted / unformatted phone number."
      }
    },
    "/api2/json/phoneCodeGeo/{firstName}/{lastName}/{phoneNumber}/{countryIso2}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "phoneNumber",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "countryIso2",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A name with country and phone code.",
            "schema": {
              "$ref": "#/definitions/FirstLastNamePhoneCodedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "social"
        ],
        "operationId": "phoneCodeGeo",
        "summary": "[USES 11 UNITS PER NAME] Infer the likely phone prefix, given a personal name and formatted / unformatted phone number, with a local context (ISO2 country of residence)."
      }
    },
    "/api2/json/phoneCodeGeoBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNamePhoneNumberGeoIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of genderized names.",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNamePhoneCodedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "social"
        ],
        "operationId": "phoneCodeGeoBatch",
        "summary": "[USES 11 UNITS PER NAME] Infer the likely country and phone prefix, of up to 100 personal names, with a local context (ISO2 country of residence)."
      }
    },
    "/api2/json/phoneCodeGeoFeedbackLoop/{firstName}/{lastName}/{phoneNumber}/{phoneNumberE164}/{countryIso2}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "phoneNumber",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "phoneNumberE164",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "countryIso2",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A name with country and phone code.",
            "schema": {
              "$ref": "#/definitions/FirstLastNamePhoneCodedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "social"
        ],
        "operationId": "phoneCodeGeoFeedbackLoop",
        "summary": "[CREDITS 1 UNIT] Feedback loop to better infer the likely phone prefix, given a personal name and formatted / unformatted phone number, with a local context (ISO2 country of residence)."
      }
    },
    "/api2/json/pinyinChineseName/{chineseName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "chineseName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "A pinyin name.",
            "schema": {
              "$ref": "#/definitions/PersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "pinyinChineseName",
        "summary": "Romanize the Chinese name to Pinyin, ex. 王晓明 -> Wang (surname) Xiaoming (given name)"
      }
    },
    "/api2/json/pinyinChineseNameBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of Chinese names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Pinyin names.",
            "schema": {
              "$ref": "#/definitions/BatchPersonalNameParsedOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "chinese"
        ],
        "operationId": "pinyinChineseNameBatch",
        "summary": "Romanize a list of Chinese name to Pinyin, ex. 王晓明 -> Wang (surname) Xiaoming (given name)."
      }
    },
    "/api2/json/procureKey/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API Key",
            "schema": {
              "$ref": "#/definitions/APIKeyOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "procureKey",
        "summary": "Procure an API Key (sent via Email), based on an auth token. Keep your API Key secret."
      }
    },
    "/api2/json/redeployUI": {
      "get": {
        "parameters": [],
        "responses": {
          "200": {
            "description": "Redeploy UI from DEV."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "redeployUI",
        "summary": "Redeploy UI from current dev branch."
      }
    },
    "/api2/json/redeployUI/{live}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "live",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Redeploy UI from DEV."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "redeployUI_1",
        "summary": "Redeploy UI from current dev branch."
      }
    },
    "/api2/json/removeUserAccount/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API subscription",
            "schema": {
              "$ref": "#/definitions/APIPlanSubscriptionOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "removeUserAccount",
        "summary": "Remove the user account."
      }
    },
    "/api2/json/removeUserAccountOnBehalf/{apiKey}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "apiKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API subscription",
            "schema": {
              "$ref": "#/definitions/APIPlanSubscriptionOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "removeUserAccountOnBehalf",
        "summary": "Remove (on behalf) a user account."
      }
    },
    "/api2/json/shutdown": {
      "get": {
        "parameters": [],
        "responses": {
          "200": {
            "description": "Shutdown AI."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "shutdown",
        "summary": "Stop learning and shutdown system."
      }
    },
    "/api2/json/softwareVersion": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "The current software version",
            "schema": {
              "$ref": "#/definitions/SoftwareVersionOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "softwareVersion",
        "summary": "Get the current software version"
      }
    },
    "/api2/json/sourceStats/{source}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "source",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Current system status.",
            "schema": {
              "$ref": "#/definitions/SystemMetricsOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "sourceStats",
        "summary": "Print basic source statistics."
      }
    },
    "/api2/json/stats": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Current system status.",
            "schema": {
              "$ref": "#/definitions/SystemMetricsOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "stats",
        "summary": "Print basic system statistics."
      }
    },
    "/api2/json/stripeConnect": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "scope",
            "type": "string"
          },
          {
            "in": "query",
            "name": "code",
            "type": "string"
          },
          {
            "in": "query",
            "name": "error",
            "type": "string"
          },
          {
            "in": "query",
            "name": "error_description",
            "type": "string"
          }
        ],
        "responses": {
          "401": {
            "description": "Missing or incorrect email or payment token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "stripeConnect",
        "summary": "Connects a Stripe Account."
      }
    },
    "/api2/json/subscribePlan/{planName}/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "planName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API subscription",
            "schema": {
              "$ref": "#/definitions/APIPlanSubscriptionOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "subscribePlan",
        "summary": "Subscribe to a give API plan, using the user's preferred or default currency."
      }
    },
    "/api2/json/subscribePlanOnBehalf/{planName}/{apiKey}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "planName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "apiKey",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API subscription",
            "schema": {
              "$ref": "#/definitions/APIPlanSubscriptionOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "subscribePlanOnBehalf",
        "summary": "Subscribe to a give API plan, using the user's preferred or default currency (admin only)."
      }
    },
    "/api2/json/taxonomyClasses/{classifierName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "classifierName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Available plans",
            "schema": {
              "$ref": "#/definitions/APIPlansOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "taxonomyClasses",
        "summary": "Print the taxonomy classes valid for the given classifier."
      }
    },
    "/api2/json/updateBillingInfo/{token}": {
      "post": {
        "consumes": [
          "application/json;charset=UTF-8"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BillingInfoInOut"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The updated billing info",
            "schema": {
              "$ref": "#/definitions/BillingInfoInOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "updateBillingInfo",
        "summary": "Sets or update the billing information (company name, address, phone, vat ID)"
      }
    },
    "/api2/json/updateLimit/{usageLimit}/{hardOrSoft}/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "format": "int32",
            "in": "path",
            "name": "usageLimit",
            "required": true,
            "type": "integer"
          },
          {
            "in": "path",
            "name": "hardOrSoft",
            "required": true,
            "type": "boolean"
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API subscription",
            "schema": {
              "$ref": "#/definitions/APIPeriodUsageOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "updateLimit",
        "summary": "Modifies the hard/soft limit on the API plan's overages (default is 0$ soft limit)."
      }
    },
    "/api2/json/updatePaymentDefault/{defautSourceId}/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "defautSourceId",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An session token",
            "schema": {
              "$ref": "#/definitions/APIKeyOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "updatePaymentDefault",
        "summary": "Update the default Stripe card associated with the current google auth session token."
      }
    },
    "/api2/json/usRaceEthnicity/{firstName}/{lastName}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "a US resident's likely race/ethnicity : W_NL (white, non latino), HL (hispano latino),  A (asian, non latino), B_NL (black, non latino).",
            "schema": {
              "$ref": "#/definitions/FirstLastNameUSRaceEthnicityOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "usRaceEthnicity",
        "summary": "[USES 10 UNITS PER NAME] Infer a US resident's likely race/ethnicity according to US Census taxonomy W_NL (white, non latino), HL (hispano latino),  A (asian, non latino), B_NL (black, non latino)."
      }
    },
    "/api2/json/usRaceEthnicityBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGeoIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of US resident's likely race/ethnicity. W_NL (white, non latino), HL (hispano latino),  A (asian, non latino), B_NL (black, non latino).",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameUSRaceEthnicityOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "usRaceEthnicityBatch",
        "summary": "[USES 10 UNITS PER NAME] Infer up-to 100 US resident's likely race/ethnicity according to US Census taxonomy."
      }
    },
    "/api2/json/usRaceEthnicityZIP5/{firstName}/{lastName}/{zip5Code}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "firstName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "lastName",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "zip5Code",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "a US resident's likely race/ethnicity : W_NL (white, non latino), HL (hispano latino),  A (asian, non latino), B_NL (black, non latino).",
            "schema": {
              "$ref": "#/definitions/FirstLastNameUSRaceEthnicityOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "usRaceEthnicityZIP5",
        "summary": "[USES 10 UNITS PER NAME] Infer a US resident's likely race/ethnicity according to US Census taxonomy, using (optional) ZIP5 code info. Output is W_NL (white, non latino), HL (hispano latino),  A (asian, non latino), B_NL (black, non latino)."
      }
    },
    "/api2/json/usZipRaceEthnicityBatch": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "description": "A list of personal names",
            "in": "body",
            "name": "body",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameGeoZippedIn"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A list of US resident's likely race/ethnicity. W_NL (white, non latino), HL (hispano latino),  A (asian, non latino), B_NL (black, non latino).",
            "schema": {
              "$ref": "#/definitions/BatchFirstLastNameUSRaceEthnicityOut"
            }
          },
          "401": {
            "description": "Missing or incorrect API Key"
          },
          "403": {
            "description": "API Limit Reached or API Key Disabled"
          }
        },
        "security": [
          {
            "api_key": []
          }
        ],
        "tags": [
          "personal"
        ],
        "operationId": "usZipRaceEthnicityBatch",
        "summary": "[USES 10 UNITS PER NAME] Infer up-to 100 US resident's likely race/ethnicity according to US Census taxonomy, with (optional) ZIP code."
      }
    },
    "/api2/json/userInfo/{token}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An session token",
            "schema": {
              "$ref": "#/definitions/APIKeyOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "userInfo",
        "summary": "Get the user profile associated with the current google auth session token."
      }
    },
    "/api2/json/verifyEmail/{emailToken}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "emailToken",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API Key",
            "schema": {
              "$ref": "#/definitions/APIKeyOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "verifyEmail",
        "summary": "Verifies an email, based on token sent to that email"
      }
    },
    "/api2/json/verifyRemoveEmail/{emailToken}": {
      "get": {
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "emailToken",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "An API Key",
            "schema": {
              "$ref": "#/definitions/APIKeyOut"
            }
          },
          "401": {
            "description": "Missing or incorrect token"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "verifyRemoveEmail",
        "summary": "Verifies an email, based on token sent to that email"
      }
    },
    "/api2/json/vetting/{source}/{vetted}": {
      "get": {
        "parameters": [
          {
            "in": "path",
            "name": "source",
            "required": true,
            "type": "string"
          },
          {
            "in": "path",
            "name": "vetted",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Vetting of a source."
          },
          "401": {
            "description": "Missing or incorrect API Key"
          }
        },
        "tags": [
          "admin"
        ],
        "operationId": "vet",
        "summary": "Vetting of a source."
      }
    }
  },
  "definitions": {
    "APIBillingPeriodUsageOut": {
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "billingStatus": {
          "type": "string"
        },
        "hardLimit": {
          "format": "int64",
          "type": "integer"
        },
        "periodEnded": {
          "format": "int64",
          "type": "integer"
        },
        "periodStarted": {
          "format": "int64",
          "type": "integer"
        },
        "softLimit": {
          "format": "int64",
          "type": "integer"
        },
        "stripeCurrentPeriodEnd": {
          "format": "int64",
          "type": "integer"
        },
        "stripeCurrentPeriodStart": {
          "format": "int64",
          "type": "integer"
        },
        "subscriptionStarted": {
          "format": "int64",
          "type": "integer"
        },
        "usage": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIBillingPeriodUsageOut"
      }
    },
    "APIClassifierOut": {
      "properties": {
        "classifierName": {
          "type": "string"
        },
        "learning": {
          "type": "boolean"
        },
        "probabilityCalibrated": {
          "type": "boolean"
        },
        "serving": {
          "type": "boolean"
        },
        "shuttingDown": {
          "type": "boolean"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIClassifierOut"
      }
    },
    "APIClassifierTaxonomyOut": {
      "properties": {
        "classifierName": {
          "type": "string"
        },
        "taxonomyClasses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIClassifierTaxonomyOut"
      }
    },
    "APIClassifiersStatusOut": {
      "properties": {
        "classifiers": {
          "items": {
            "$ref": "#/definitions/APIClassifierOut"
          },
          "type": "array"
        },
        "softwareVersion": {
          "$ref": "#/definitions/SoftwareVersionOut"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIClassifiersStatusOut"
      }
    },
    "APICounterV2Out": {
      "properties": {
        "apiKey": {
          "$ref": "#/definitions/APIKeyOut"
        },
        "apiService": {
          "type": "string"
        },
        "createdDateTime": {
          "format": "int64",
          "type": "integer"
        },
        "lastFlushedDateTime": {
          "format": "int64",
          "type": "integer"
        },
        "lastUsedDateTime": {
          "format": "int64",
          "type": "integer"
        },
        "serviceFeaturesUsage": {
          "additionalProperties": {
            "format": "int64",
            "type": "integer"
          },
          "type": "object"
        },
        "totalUsage": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "xml": {
        "name": "APICallStatOut"
      }
    },
    "APIKeyOut": {
      "properties": {
        "admin": {
          "type": "boolean"
        },
        "anonymized": {
          "type": "boolean"
        },
        "apiKey": {
          "type": "string",
          "xml": {
            "name": "api_key"
          }
        },
        "corporate": {
          "type": "boolean"
        },
        "disabled": {
          "type": "boolean"
        },
        "learnable": {
          "type": "boolean"
        },
        "partner": {
          "type": "boolean"
        },
        "striped": {
          "type": "boolean"
        },
        "userId": {
          "type": "string"
        },
        "vetted": {
          "type": "boolean"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIKeyOut"
      }
    },
    "APIPeriodUsageOut": {
      "properties": {
        "billingPeriod": {
          "$ref": "#/definitions/APIBillingPeriodUsageOut"
        },
        "overageCurrency": {
          "type": "string"
        },
        "overageExclTax": {
          "format": "double",
          "type": "number"
        },
        "overageInclTax": {
          "format": "double",
          "type": "number"
        },
        "overageQuantity": {
          "format": "int64",
          "type": "integer"
        },
        "subscription": {
          "$ref": "#/definitions/APIPlanSubscriptionOut"
        }
      },
      "type": "object",
      "xml": {
        "name": "APICurrentUsageOut"
      }
    },
    "APIPlanOut": {
      "properties": {
        "planName": {
          "type": "string"
        },
        "planQuota": {
          "format": "int64",
          "type": "integer"
        },
        "price": {
          "format": "double",
          "type": "number"
        },
        "priceOverage": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIPlanOut"
      }
    },
    "APIPlanSubscriptionOut": {
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "currency": {
          "type": "string"
        },
        "currencyFactor": {
          "format": "double",
          "type": "number"
        },
        "planBaseFeesKey": {
          "type": "string"
        },
        "planEnded": {
          "format": "int64",
          "type": "integer"
        },
        "planName": {
          "type": "string"
        },
        "planQuota": {
          "format": "int64",
          "type": "integer"
        },
        "planStarted": {
          "format": "int64",
          "type": "integer"
        },
        "planStatus": {
          "type": "string"
        },
        "price": {
          "format": "double",
          "type": "number"
        },
        "priceOverage": {
          "format": "double",
          "type": "number"
        },
        "priceOverageUSD": {
          "format": "double",
          "type": "number"
        },
        "priceUSD": {
          "format": "double",
          "type": "number"
        },
        "priorPlanStarted": {
          "format": "int64",
          "type": "integer"
        },
        "stripeCustomerId": {
          "type": "string"
        },
        "stripeStatus": {
          "type": "string"
        },
        "stripeSubscription": {
          "type": "string"
        },
        "taxRate": {
          "format": "double",
          "type": "number"
        },
        "userId": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIPlanSubscriptionOut"
      }
    },
    "APIPlansOut": {
      "properties": {
        "currencyIso3": {
          "type": "string"
        },
        "currencySymbol": {
          "type": "string"
        },
        "plans": {
          "items": {
            "$ref": "#/definitions/APIPlanOut"
          },
          "type": "array"
        },
        "usageRatioForDupplicates": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIPlansOut"
      }
    },
    "APIServiceOut": {
      "properties": {
        "costInUnits": {
          "format": "int32",
          "type": "integer"
        },
        "serviceGroup": {
          "type": "string"
        },
        "serviceName": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIServiceOut"
      }
    },
    "APIServicesOut": {
      "properties": {
        "apiServices": {
          "items": {
            "$ref": "#/definitions/APIServiceOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIServicesOut"
      }
    },
    "APIUsageAggregatedOut": {
      "properties": {
        "colHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "data": {
          "items": {
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "type": "array"
        },
        "historyTruncated": {
          "type": "boolean"
        },
        "periodEnd": {
          "format": "int64",
          "type": "integer"
        },
        "periodStart": {
          "format": "int64",
          "type": "integer"
        },
        "rowHeaders": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "timeUnit": {
          "type": "string"
        },
        "totalUsage": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "xml": {
        "name": "APIUsageAggregatedOut"
      }
    },
    "BatchFirstLastNameDiasporaedOut": {
      "description": "Represents the output of inferring the LIKELY ethnicity from a personal name, given an country of residence.",
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameDiasporaedOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameDiasporaedOut"
      }
    },
    "BatchFirstLastNameGenderIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameGenderIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameGenderIn"
      }
    },
    "BatchFirstLastNameGenderedOut": {
      "description": "Represents the output of inferring the LIKELY gender from a list of personal names.",
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameGenderedOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameGenderedOut"
      }
    },
    "BatchFirstLastNameGeoIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameGeoIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameGeoIn"
      }
    },
    "BatchFirstLastNameGeoZippedIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameGeoZippedIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameGeoZippedIn"
      }
    },
    "BatchFirstLastNameIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameIn"
      }
    },
    "BatchFirstLastNameOriginedOut": {
      "description": "Represents the output of inferring the LIKELY origin from a list of personal names.",
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameOriginedOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameOriginedOut"
      }
    },
    "BatchFirstLastNamePhoneCodedOut": {
      "description": "Represents the output of inferring the LIKELY country and phone code of personal names+phones.",
      "properties": {
        "personalNamesWithPhoneNumbers": {
          "items": {
            "$ref": "#/definitions/FirstLastNamePhoneCodedOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNamePhoneCodedOut"
      }
    },
    "BatchFirstLastNamePhoneNumberGeoIn": {
      "properties": {
        "personalNamesWithPhoneNumbers": {
          "items": {
            "$ref": "#/definitions/FirstLastNamePhoneNumberGeoIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNamePhoneNumberGeoIn"
      }
    },
    "BatchFirstLastNamePhoneNumberIn": {
      "properties": {
        "personalNamesWithPhoneNumbers": {
          "items": {
            "$ref": "#/definitions/FirstLastNamePhoneNumberIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNamePhoneNumberIn"
      }
    },
    "BatchFirstLastNameUSRaceEthnicityOut": {
      "description": "Represents the output of inferring the LIKELY US 'race/ethnicity' from a personal name, given US country of residence and (optionally) a ZIP5 code.",
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/FirstLastNameUSRaceEthnicityOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchFirstLastNameUSRaceEthnicityOut"
      }
    },
    "BatchMatchPersonalFirstLastNameIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/MatchPersonalFirstLastNameIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchMatchPersonalFirstLastNameIn"
      }
    },
    "BatchNameMatchCandidatesOut": {
      "properties": {
        "namesAndMatchCandidates": {
          "items": {
            "$ref": "#/definitions/NameMatchCandidatesOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchNameMatchCandidatesOut"
      }
    },
    "BatchNameMatchedOut": {
      "properties": {
        "matchedNames": {
          "items": {
            "$ref": "#/definitions/NameMatchedOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchNameMatchedOut"
      }
    },
    "BatchParsedFullNameGeoIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/ParsedFullNameGeoIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchParsedFullNameGeoIn"
      }
    },
    "BatchParsedFullNameIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/ParsedFullNameIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchParsedFullNameIn"
      }
    },
    "BatchPersonalNameGenderedOut": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/PersonalNameGenderedOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchPersonalNameGenderedOut"
      }
    },
    "BatchPersonalNameGeoIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/PersonalNameGeoIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchPersonalNameGeoIn"
      }
    },
    "BatchPersonalNameGeoOut": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/PersonalNameGeoOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchPersonalNameGeoOut"
      }
    },
    "BatchPersonalNameIn": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/PersonalNameIn"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchPersonalNameIn"
      }
    },
    "BatchPersonalNameParsedOut": {
      "properties": {
        "personalNames": {
          "items": {
            "$ref": "#/definitions/PersonalNameParsedOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BatchPersonalNameParsedOut"
      }
    },
    "BillingHistoryOut": {
      "properties": {
        "corporateInvoices": {
          "items": {
            "$ref": "#/definitions/InvoiceOut"
          },
          "type": "array"
        },
        "stripeInvoices": {
          "items": {
            "$ref": "#/definitions/InvoiceOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "BillingHistoryOut"
      }
    },
    "BillingInfoInOut": {
      "properties": {
        "addressCity": {
          "type": "string"
        },
        "addressCountry": {
          "type": "string"
        },
        "addressLine1": {
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "addressPostalCode": {
          "type": "string"
        },
        "addressState": {
          "type": "string"
        },
        "billingEmail": {
          "type": "string"
        },
        "customerName": {
          "type": "string"
        },
        "customerPhone": {
          "type": "string"
        },
        "preferredCurrency": {
          "type": "string"
        },
        "vatID": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "BillingInfoInOut"
      }
    },
    "CacheMetricsOut": {
      "description": "Simple metrics system caches",
      "properties": {
        "cacheName": {
          "type": "string"
        },
        "cacheStats": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "CacheMetricsOut"
      }
    },
    "ClassifierMetricsOut": {
      "description": "Simple metrics on a classifier",
      "properties": {
        "aiNonVettedEstimatePrecision": {
          "format": "double",
          "type": "number"
        },
        "aiNonVettedEstimateRecall": {
          "format": "double",
          "type": "number"
        },
        "aiNonVettedEstimateTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiNonVettedExpectedClassMetrics": {
          "items": {
            "$ref": "#/definitions/ExpectedClassMetricsOut"
          },
          "type": "array"
        },
        "aiNonVettedLearnTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiStartTime": {
          "format": "int64",
          "type": "integer"
        },
        "aiVettedEstimatePrecision": {
          "format": "double",
          "type": "number"
        },
        "aiVettedEstimateRecall": {
          "format": "double",
          "type": "number"
        },
        "aiVettedEstimateTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiVettedExpectedClassMetrics": {
          "items": {
            "$ref": "#/definitions/ExpectedClassMetricsOut"
          },
          "type": "array"
        },
        "aiVettedLearnTotal": {
          "format": "int64",
          "type": "integer"
        },
        "bufferSize": {
          "format": "int32",
          "type": "integer"
        },
        "classifierName": {
          "type": "string"
        },
        "classifyDurationsCurrent": {
          "format": "double",
          "type": "number"
        },
        "classifyDurationsSummary": {
          "format": "double",
          "type": "number"
        },
        "factKeysSize": {
          "format": "int32",
          "type": "integer"
        },
        "factsLearned": {
          "format": "int64",
          "type": "integer"
        },
        "featuresSize": {
          "format": "int64",
          "type": "integer"
        },
        "hostAddress": {
          "type": "string"
        },
        "learnDurationsCurrent": {
          "format": "double",
          "type": "number"
        },
        "learnDurationsSummary": {
          "format": "double",
          "type": "number"
        },
        "learnQueueSize": {
          "format": "int32",
          "type": "integer"
        },
        "metricTimeStamp": {
          "format": "int64",
          "type": "integer"
        },
        "preClassifyQueueSize": {
          "format": "int32",
          "type": "integer"
        },
        "softwareVersion": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "ClassifierMetricsOut"
      }
    },
    "CurrenciesOut": {
      "properties": {
        "currenciesIso3": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "CurrenciesOut"
      }
    },
    "DeployUIOut": {
      "properties": {
        "errorMessage": {
          "type": "string"
        },
        "succeeded": {
          "type": "boolean"
        }
      },
      "type": "object",
      "xml": {
        "name": "DeployUIOut"
      }
    },
    "ExpectedClassMetricsOut": {
      "description": "Simple metrics on a classifier, for a given expected class",
      "properties": {
        "aiEstimatePrecision": {
          "format": "double",
          "type": "number"
        },
        "aiEstimateRecall": {
          "format": "double",
          "type": "number"
        },
        "aiEstimateTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiLearnTotal": {
          "format": "int64",
          "type": "integer"
        },
        "classifierName": {
          "type": "string"
        },
        "expectedClass": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "ExpectedClassMetricsOut"
      }
    },
    "FeedbackLoopOut": {
      "properties": {
        "feedbackCredits": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "xml": {
        "name": "FeedbackLoopOut"
      }
    },
    "FirstLastNameDiasporaedOut": {
      "description": "Represents the output of inferring the LIKELY ethnicity from a personal name, given an country of residence.",
      "properties": {
        "countryIso2": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "ethnicitiesTop": {
          "description": "List ethnicities (top 10)",
          "items": {
            "description": "List ethnicities (top 10)",
            "type": "string"
          },
          "type": "array"
        },
        "ethnicity": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "ethnicityAlt": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "lifted": {
          "type": "boolean",
          "xml": {
            "attribute": true
          }
        },
        "score": {
          "description": "Compatibility to NamSor_v1 Origin score value",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNameDiasporaedOut"
      }
    },
    "FirstLastNameGenderIn": {
      "properties": {
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "gender": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastName"
      }
    },
    "FirstLastNameGenderedOut": {
      "description": "Represents the output of inferring the LIKELY gender from a personal name.",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "genderScale": {
          "description": "Compatibility to NamSor_v1 Gender Scale M[-1..U..+1]F value",
          "format": "double",
          "type": "number"
        },
        "id": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "likelyGender": {
          "description": "Most likely gender",
          "enum": [
            "male",
            "female",
            "unknown"
          ],
          "type": "string"
        },
        "probabilityCalibrated": {
          "format": "double",
          "type": "number"
        },
        "score": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNameGenderedOut"
      }
    },
    "FirstLastNameGeoIn": {
      "properties": {
        "countryIso2": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNameGeoIn"
      }
    },
    "FirstLastNameGeoZippedIn": {
      "properties": {
        "countryIso2": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "zipCode": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNameGeoZippedIn"
      }
    },
    "FirstLastNameIn": {
      "properties": {
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastName"
      }
    },
    "FirstLastNameOriginedOut": {
      "description": "Represents the output of inferring the LIKELY country of Origin from a personal name.",
      "properties": {
        "countriesOriginTop": {
          "description": "List countries of Origin (top 10)",
          "items": {
            "description": "List countries of Origin (top 10)",
            "type": "string"
          },
          "type": "array"
        },
        "countryOrigin": {
          "description": "Most likely country of Origin",
          "type": "string"
        },
        "countryOriginAlt": {
          "description": "Second best alternative : country of Origin",
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "probabilityAltCalibrated": {
          "format": "double",
          "type": "number"
        },
        "probabilityCalibrated": {
          "format": "double",
          "type": "number"
        },
        "regionOrigin": {
          "description": "Most likely region of Origin (based on countryOrigin ISO2 code)",
          "type": "string"
        },
        "score": {
          "description": "Compatibility to NamSor_v1 Origin score value",
          "format": "double",
          "type": "number"
        },
        "subRegionOrigin": {
          "description": "Most likely region of Origin (based on countryOrigin ISO2 code)",
          "type": "string"
        },
        "topRegionOrigin": {
          "description": "Most likely region of Origin (based on countryOrigin ISO2 code)",
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNameOriginedOut"
      }
    },
    "FirstLastNameOut": {
      "properties": {
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNameOut"
      }
    },
    "FirstLastNamePhoneCodedOut": {
      "description": "Represents the output of inferring the LIKELY country and phone code from a personal name and phone number.",
      "properties": {
        "countryIso2": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "internationalPhoneNumberVerified": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "originCountryIso2": {
          "type": "string"
        },
        "originCountryIso2Alt": {
          "type": "string"
        },
        "phoneCountryCode": {
          "format": "int32",
          "type": "integer"
        },
        "phoneCountryCodeAlt": {
          "format": "int32",
          "type": "integer"
        },
        "phoneCountryIso2": {
          "type": "string"
        },
        "phoneCountryIso2Alt": {
          "type": "string"
        },
        "phoneCountryIso2Verified": {
          "type": "string"
        },
        "phoneNumber": {
          "type": "string"
        },
        "score": {
          "format": "double",
          "type": "number"
        },
        "verified": {
          "type": "boolean"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNamePhoneCodedOut"
      }
    },
    "FirstLastNamePhoneNumberGeoIn": {
      "properties": {
        "FirstLastNameOriginedOut": {
          "$ref": "#/definitions/FirstLastNameOriginedOut"
        },
        "countryIso2": {
          "type": "string"
        },
        "countryIso2Alt": {
          "type": "string"
        },
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "phoneNumber": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNamePhoneNumberGeoIn"
      }
    },
    "FirstLastNamePhoneNumberIn": {
      "properties": {
        "FirstLastNameOriginedOut": {
          "$ref": "#/definitions/FirstLastNameOriginedOut"
        },
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "phoneNumber": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNamePhoneNumberIn"
      }
    },
    "FirstLastNameUSRaceEthnicityOut": {
      "description": "Represents the output of inferring the LIKELY US 'race/ethnicity' from a personal name, given US country of residence and (optionally) a ZIP5 code.",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "probabilityAltCalibrated": {
          "format": "double",
          "type": "number"
        },
        "probabilityCalibrated": {
          "format": "double",
          "type": "number"
        },
        "raceEthnicitiesTop": {
          "description": "List 'race'/ethnicities",
          "items": {
            "description": "List 'race'/ethnicities",
            "type": "string"
          },
          "type": "array"
        },
        "raceEthnicity": {
          "description": "Most likely US 'race'/ethnicity",
          "enum": [
            "W_NL",
            "HL",
            "A",
            "B_NL"
          ],
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "raceEthnicityAlt": {
          "description": "Second most likely US 'race'/ethnicity",
          "enum": [
            "W_NL",
            "HL",
            "A",
            "B_NL"
          ],
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "score": {
          "description": "Compatibility to NamSor_v1 Origin score value",
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "FirstLastNameUSRaceEthnicityOut"
      }
    },
    "InvoiceItemOut": {
      "properties": {
        "amount": {
          "format": "int64",
          "type": "integer"
        },
        "currency": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "invoiceItemType": {
          "type": "string"
        },
        "itemId": {
          "type": "string"
        },
        "planDesc": {
          "type": "string"
        },
        "planName": {
          "type": "string"
        },
        "planNickname": {
          "type": "string"
        },
        "quantity": {
          "format": "int64",
          "type": "integer"
        },
        "subscription": {
          "type": "string"
        },
        "subscriptionItem": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "InvoiceItemOut"
      }
    },
    "InvoiceOut": {
      "properties": {
        "amountDue": {
          "format": "int64",
          "type": "integer"
        },
        "amountPaid": {
          "format": "int64",
          "type": "integer"
        },
        "amountRemaining": {
          "format": "int64",
          "type": "integer"
        },
        "attempted": {
          "type": "boolean"
        },
        "currency": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "dueDate": {
          "format": "date-time",
          "type": "string"
        },
        "invoiceDate": {
          "format": "date-time",
          "type": "string"
        },
        "invoiceId": {
          "type": "string"
        },
        "invoicePdf": {
          "type": "string"
        },
        "invoiceStatus": {
          "type": "string"
        },
        "isStriped": {
          "type": "boolean"
        },
        "items": {
          "items": {
            "$ref": "#/definitions/InvoiceItemOut"
          },
          "type": "array"
        },
        "periodEnd": {
          "format": "date-time",
          "type": "string"
        },
        "periodStart": {
          "format": "date-time",
          "type": "string"
        },
        "receiptNumber": {
          "type": "string"
        },
        "stripeCustomerId": {
          "type": "string"
        },
        "subTotal": {
          "format": "int64",
          "type": "integer"
        },
        "tax": {
          "format": "int64",
          "type": "integer"
        },
        "taxPercent": {
          "format": "int64",
          "type": "integer"
        },
        "total": {
          "format": "int64",
          "type": "integer"
        },
        "userId": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "InvoiceOut"
      }
    },
    "MatchPersonalFirstLastNameIn": {
      "properties": {
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "name": {
          "type": "string"
        },
        "name1": {
          "$ref": "#/definitions/FirstLastNameIn"
        },
        "name2": {
          "$ref": "#/definitions/PersonalNameIn"
        }
      },
      "type": "object",
      "xml": {
        "name": "MatchPersonalFirstLastNameIn"
      }
    },
    "NamSorCounterOut": {
      "properties": {
        "counter": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "xml": {
        "name": "NamSorCounterOut"
      }
    },
    "NameMatchCandidateOut": {
      "properties": {
        "candidateName": {
          "type": "string"
        },
        "probability": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "NameMatchCandidateOut"
      }
    },
    "NameMatchCandidatesOut": {
      "properties": {
        "firstName": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "matchCandidates": {
          "items": {
            "$ref": "#/definitions/NameMatchCandidateOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "NameMatchCandidatesOut"
      }
    },
    "NameMatchedOut": {
      "properties": {
        "id": {
          "type": "string"
        },
        "matchStatus": {
          "type": "string"
        },
        "score": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "NameMatchedOut"
      }
    },
    "ParsedFullNameGeoIn": {
      "properties": {
        "countryIso2": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "middleName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "prefixOrTitle": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "suffix": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "ParsedFullNameGeoIn"
      }
    },
    "ParsedFullNameIn": {
      "properties": {
        "firstName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "lastName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "middleName": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "prefixOrTitle": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "suffix": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "ParsedFullNameIn"
      }
    },
    "PersonalNameGenderedOut": {
      "properties": {
        "genderScale": {
          "description": "Compatibility to NamSor_v1 Gender Scale M[-1..U..+1]F value",
          "format": "double",
          "type": "number"
        },
        "id": {
          "type": "string"
        },
        "likelyGender": {
          "description": "Most likely gender",
          "enum": [
            "male",
            "female",
            "unknown"
          ],
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "probabilityCalibrated": {
          "format": "double",
          "type": "number"
        },
        "score": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "PersonalNameGenderedOut"
      }
    },
    "PersonalNameGeoIn": {
      "properties": {
        "countryIso2": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "name": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "PersonalNameGeoIn"
      }
    },
    "PersonalNameGeoOut": {
      "properties": {
        "countriesTop": {
          "description": "List countries (top 10)",
          "items": {
            "description": "List countries (top 10)",
            "type": "string"
          },
          "type": "array"
        },
        "country": {
          "type": "string"
        },
        "countryAlt": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "probabilityAltCalibrated": {
          "format": "double",
          "type": "number"
        },
        "probabilityCalibrated": {
          "format": "double",
          "type": "number"
        },
        "region": {
          "type": "string"
        },
        "score": {
          "format": "double",
          "type": "number"
        },
        "subRegion": {
          "type": "string"
        },
        "topRegion": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "PersonalNameGeoOut"
      }
    },
    "PersonalNameIn": {
      "properties": {
        "id": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        },
        "name": {
          "type": "string",
          "xml": {
            "attribute": true
          }
        }
      },
      "type": "object",
      "xml": {
        "name": "PersonalNameIn"
      }
    },
    "PersonalNameParsedOut": {
      "properties": {
        "firstLastName": {
          "$ref": "#/definitions/FirstLastNameOut"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "nameParserType": {
          "type": "string"
        },
        "nameParserTypeAlt": {
          "type": "string"
        },
        "score": {
          "format": "double",
          "type": "number"
        }
      },
      "type": "object",
      "xml": {
        "name": "PersonalNameParsedOut"
      }
    },
    "RomanizedNameOut": {
      "properties": {
        "id": {
          "type": "string"
        },
        "latinName": {
          "type": "string"
        },
        "originalName": {
          "type": "string"
        },
        "score": {
          "format": "double",
          "type": "number"
        },
        "sourceLanguage": {
          "type": "string"
        },
        "sourceScript": {
          "type": "string"
        },
        "targetLanguage": {
          "type": "string"
        },
        "targetScript": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "RomanizedNameOut"
      }
    },
    "SoftwareVersionOut": {
      "properties": {
        "softwareNameAndVersion": {
          "type": "string"
        },
        "softwareVersion": {
          "items": {
            "format": "int32",
            "type": "integer"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "SoftwareVersionOut"
      }
    },
    "SourceDetailedMetricsOut": {
      "description": "Simple metrics on source, with details by classifier.",
      "properties": {
        "aiEstimatePrecision": {
          "format": "double",
          "type": "number"
        },
        "aiEstimateRecall": {
          "format": "double",
          "type": "number"
        },
        "aiEstimateTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiLearnTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiStartTime": {
          "format": "int64",
          "type": "integer"
        },
        "classifierName": {
          "type": "string"
        },
        "expectedClassMetrics": {
          "items": {
            "$ref": "#/definitions/ExpectedClassMetricsOut"
          },
          "type": "array"
        },
        "metricTimeStamp": {
          "format": "int64",
          "type": "integer"
        },
        "snapshotDate": {
          "format": "int64",
          "type": "integer"
        },
        "source": {
          "$ref": "#/definitions/APIKeyOut"
        }
      },
      "type": "object",
      "xml": {
        "name": "SourceDetailedMetricsOut"
      }
    },
    "SourceMetricsOut": {
      "description": "Simple metrics on a classifier, for a given source",
      "properties": {
        "aiEstimatePrecision": {
          "format": "double",
          "type": "number"
        },
        "aiEstimateRecall": {
          "format": "double",
          "type": "number"
        },
        "aiEstimateTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiLearnTotal": {
          "format": "int64",
          "type": "integer"
        },
        "aiStartTime": {
          "format": "int64",
          "type": "integer"
        },
        "classifierName": {
          "type": "string"
        },
        "metricTimeStamp": {
          "format": "int64",
          "type": "integer"
        },
        "snapshotDate": {
          "format": "int64",
          "type": "integer"
        },
        "source": {
          "$ref": "#/definitions/APIKeyOut"
        }
      },
      "type": "object",
      "xml": {
        "name": "SourceMetricsOut"
      }
    },
    "StripeCardOut": {
      "properties": {
        "brand": {
          "type": "string"
        },
        "defaultCard": {
          "type": "boolean"
        },
        "expMonth": {
          "format": "int64",
          "type": "integer"
        },
        "expYear": {
          "format": "int64",
          "type": "integer"
        },
        "last4": {
          "type": "string"
        },
        "sourceId": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "StripeCustomerOut"
      }
    },
    "StripeCustomerOut": {
      "properties": {
        "sourceCountry": {
          "type": "string"
        },
        "sourceCurrency": {
          "type": "string"
        },
        "stripeCustomerId": {
          "type": "string"
        },
        "stripedCards": {
          "items": {
            "$ref": "#/definitions/StripeCardOut"
          },
          "type": "array"
        }
      },
      "type": "object",
      "xml": {
        "name": "StripeCustomerOut"
      }
    },
    "SystemMetricsOut": {
      "properties": {
        "cacheMetrics": {
          "items": {
            "$ref": "#/definitions/CacheMetricsOut"
          },
          "type": "array"
        },
        "classifierMetrics": {
          "items": {
            "$ref": "#/definitions/ClassifierMetricsOut"
          },
          "type": "array"
        },
        "freeMem": {
          "format": "int64",
          "type": "integer"
        },
        "maxMem": {
          "format": "int64",
          "type": "integer"
        },
        "sourceMetrics": {
          "items": {
            "$ref": "#/definitions/SourceMetricsOut"
          },
          "type": "array"
        },
        "totalMem": {
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "xml": {
        "name": "SystemMetricsOut"
      }
    },
    "UserInfoOut": {
      "properties": {
        "apiKey": {
          "type": "string"
        },
        "disabled": {
          "type": "boolean"
        },
        "displayName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "emailVerified": {
          "type": "boolean"
        },
        "firstKnownIpAddress": {
          "type": "string"
        },
        "otherInfos": {
          "items": {
            "$ref": "#/definitions/UserInfoOut"
          },
          "type": "array"
        },
        "phoneNumber": {
          "type": "string"
        },
        "photoUrl": {
          "type": "string"
        },
        "providerId": {
          "type": "string"
        },
        "stripeCustomerId": {
          "type": "string"
        },
        "stripePerishableKey": {
          "type": "string"
        },
        "timeStamp": {
          "format": "int64",
          "type": "integer"
        },
        "uid": {
          "type": "string"
        },
        "verifyToken": {
          "type": "string"
        }
      },
      "type": "object",
      "xml": {
        "name": "UserInfoOut"
      }
    }
  },
  "securityDefinitions": {
    "api_key": {
      "description": "api_key required",
      "in": "header",
      "name": "X-API-KEY",
      "type": "apiKey"
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "tags": [
    {
      "description": "Personal names (anthroponyms) : gender, country origin/ethnicity, diaspora, US 'race'/ethniciy",
      "name": "personal"
    },
    {
      "description": "Social media and pseudonyms",
      "name": "social"
    },
    {
      "description": "CHINESE special features",
      "name": "chinese"
    },
    {
      "description": "JAPANESE special features",
      "name": "japanese"
    },
    {
      "description": "Administrative, system management.",
      "name": "admin"
    }
  ],
  "externalDocs": {
    "description": "NamSor API client SDKs v2 for Java, Python",
    "url": "https://github.com/namsor"
  },
  "x-components": {}
}