#%RAML 1.0
title: Neutrino API
version: 3.7.1
baseUri: https://neutrinoapi.net
baseUriParameters: {}
protocols:
- HTTPS
documentation:
- title: Neutrino API
  content: The general-purpose API
securitySchemes:
  user-id:
    type: Pass Through
    description: Your user ID
    describedBy:
      headers:
        user-id:
          required: true
          displayName: user-id
          description: Your user ID
          type: string
  api-key:
    type: Pass Through
    description: One of your API keys
    describedBy:
      headers:
        api-key:
          required: true
          displayName: api-key
          description: One of your API keys
          type: string
securedBy:
- user-id
- api-key
types:
  IPProbeResponse:
    example:
      value:
        as-age: 33
        as-cidr: 194.233.98.0/24
        as-country-code: DE
        as-country-code3: DEU
        as-description: TEFINCOMSA-AS-AP TEFINCOM S.A., PA, Packethub S.A
        as-domains:
        - nordvpn.com
        - packethub.tech
        - packethub.net
        - terratransit.de
        - dedipath.com
        asn: '136787'
        city: Atlanta
        continent-code: NA
        country: United States of America
        country-code: US
        country-code3: USA
        currency-code: USD
        host-domain: ''
        hostname: ''
        ip: 194.233.98.38
        is-bogon: false
        is-hosting: false
        is-isp: false
        is-proxy: false
        is-v4-mapped: false
        is-v6: false
        is-vpn: true
        provider-description: 'The best online VPN service for speed NordVPN: Online VPN service that encrypts your internet traffic and hides your IP with physical location. Upgrade your privacy and security now'
        provider-domain: nordvpn.com
        provider-type: vpn
        provider-website: https://nordvpn.com/
        region: Georgia
        region-code: GA
        valid: true
        vpn-domain: nordvpn.com
    displayName: IPProbeResponse
    description: Structure of ip-probe
    type: object
    properties:
      valid:
        required: true
        displayName: valid
        description: True if this is a valid IPv4 or IPv6 address
        type: boolean
      country:
        required: true
        displayName: country
        description: Full country name
        type: string
      provider-type:
        required: true
        displayName: provider-type
        description: 'The detected provider type, possible values are: <br> <ul> <li>isp - IP belongs to an internet service provider. This includes both mobile, home and business internet providers</li> <li>hosting - IP belongs to a hosting company. This includes website hosting, cloud computing platforms and colocation facilities</li> <li>vpn - IP belongs to a VPN provider</li> <li>proxy - IP belongs to a proxy service. This includes HTTP/SOCKS proxies and browser based proxies</li> <li>university - IP belongs to a university/college/campus</li> <li>government - IP belongs to a government department. This includes military facilities</li> <li>commercial - IP belongs to a commercial entity such as a corporate headquarters or company office</li> <li>unknown - could not identify the provider type</li> </ul>'
        type: string
      country-code:
        required: true
        displayName: country-code
        description: ISO 2-letter country code
        type: string
      hostname:
        required: true
        displayName: hostname
        description: The IPs full hostname (PTR)
        type: string
      provider-domain:
        required: true
        displayName: provider-domain
        description: The domain name of the provider
        type: string
      city:
        required: true
        displayName: city
        description: Full city name (if detectable)
        type: string
      provider-website:
        required: true
        displayName: provider-website
        description: The website URL for the provider
        type: string
      ip:
        required: true
        displayName: ip
        description: The IPv4 or IPv6 address returned
        type: string
      region:
        required: true
        displayName: region
        description: Full region name (if detectable)
        type: string
      provider-description:
        required: true
        displayName: provider-description
        description: A description of the provider (usually extracted from the providers website)
        type: string
      continent-code:
        required: true
        displayName: continent-code
        description: ISO 2-letter continent code
        type: string
      is-hosting:
        required: true
        displayName: is-hosting
        description: True if this IP belongs to a hosting company. Note that this can still be true even if the provider type is VPN/proxy, this occurs in the case that the IP is detected as both types
        type: boolean
      is-isp:
        required: true
        displayName: is-isp
        description: True if this IP belongs to an internet service provider. Note that this can still be true even if the provider type is VPN/proxy, this occurs in the case that the IP is detected as both types
        type: boolean
      country-code3:
        required: true
        displayName: country-code3
        description: ISO 3-letter country code
        type: string
      currency-code:
        required: true
        displayName: currency-code
        description: ISO 4217 currency code associated with the country
        type: string
      is-vpn:
        required: true
        displayName: is-vpn
        description: True if this IP ia a VPN
        type: boolean
      is-proxy:
        required: true
        displayName: is-proxy
        description: True if this IP is a proxy
        type: boolean
      asn:
        required: true
        displayName: asn
        description: The autonomous system (AS) number
        type: string
      as-cidr:
        required: true
        displayName: as-cidr
        description: The autonomous system (AS) CIDR range
        type: string
      as-country-code:
        required: true
        displayName: as-country-code
        description: The autonomous system (AS) ISO 2-letter country code
        type: string
      as-country-code3:
        required: true
        displayName: as-country-code3
        description: The autonomous system (AS) ISO 3-letter country code
        type: string
      as-domains:
        required: true
        displayName: as-domains
        description: Array of all the domains associated with the autonomous system (AS)
        type: array
        items:
          type: string
      as-description:
        required: true
        displayName: as-description
        description: The autonomous system (AS) description / company name
        type: string
      as-age:
        required: true
        displayName: as-age
        description: The age of the autonomous system (AS) in number of years since registration
        type: integer
        format: int32
      host-domain:
        required: true
        displayName: host-domain
        description: The IPs host domain
        type: string
      vpn-domain:
        required: true
        displayName: vpn-domain
        description: The domain of the VPN provider (may be empty if the VPN domain is not detectable)
        type: string
      is-v6:
        required: true
        displayName: is-v6
        description: True if this is a IPv6 address. False if IPv4
        type: boolean
      is-v4-mapped:
        required: true
        displayName: is-v4-mapped
        description: True if this is a <a href="https://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses">IPv4 mapped IPv6 address</a>
        type: boolean
      is-bogon:
        required: true
        displayName: is-bogon
        description: True if this is a bogon IP address such as a private network, local network or reserved address
        type: boolean
      region-code:
        required: true
        displayName: region-code
        description: ISO 3166-2 region code (if detectable)
        type: string
  ConvertResponse:
    example:
      value:
        from-name: United States Dollar
        from-symbol: $
        from-type: USD
        from-value: '100'
        historical-date: ''
        result: '92.3066'
        result-float: 92.3066
        to-name: Euro
        to-symbol: €
        to-type: EUR
        valid: true
    displayName: ConvertResponse
    description: Structure of convert
    type: object
    properties:
      valid:
        required: true
        displayName: valid
        description: True if the conversion was successful and produced a valid result
        type: boolean
      result:
        required: true
        displayName: result
        description: The result of the conversion in string format
        type: string
      from-value:
        required: true
        displayName: from-value
        description: The value being converted from
        type: string
      to-type:
        required: true
        displayName: to-type
        description: The type being converted to
        type: string
      from-type:
        required: true
        displayName: from-type
        description: The type of the value being converted from
        type: string
      result-float:
        required: true
        displayName: result-float
        description: The result of the conversion as a floating-point number
        type: number
        format: double
      from-name:
        required: true
        displayName: from-name
        description: The full name of the type being converted from
        type: string
      from-symbol:
        required: true
        displayName: from-symbol
        description: The standard UTF-8 symbol used to represent the type being converted from
        type: string
      to-name:
        required: true
        displayName: to-name
        description: The full name of the type being converted to
        type: string
      to-symbol:
        required: true
        displayName: to-symbol
        description: The standard UTF-8 symbol used to represent the type being converted to
        type: string
      historical-date:
        required: true
        displayName: historical-date
        description: "If a historical conversion was made using the 'historical-date' request option this will contain the exact date used for the conversion in ISO format: YYYY-MM-DD"
        type: string
  PhonePlaybackResponse:
    displayName: PhonePlaybackResponse
    description: Structure of phone-playback
    type: object
    properties:
      calling:
        required: true
        displayName: calling
        description: True if the call is being made now
        type: boolean
      number-valid:
        required: true
        displayName: number-valid
        description: True if this a valid phone number
        type: boolean
  GeocodeAddressResponse:
    example:
      value:
        found: 1
        locations:
        - address: 1 Molesworth Street, Pipitea, Wellington 6140, New Zealand
          address-components:
            city: Wellington
            country: New Zealand
            county: Wellington City
            house-number: '1'
            postal-code: '6140'
            road: Molesworth Street
            state: Wellington
            suburb: Pipitea
          city: Wellington
          country: New Zealand
          country-code: NZ
          country-code3: NZL
          currency-code: NZD
          language-code: en
          latitude: -41.2775847
          location-tags:
          - house
          location-type: address
          longitude: 174.7775229
          postal-address: |
            1 Molesworth Street

            Pipitea

            Wellington 6140

            New Zealand
          postal-code: '6140'
          region-code: WGN
          state: Wellington
          timezone:
            abbr: NZDT
            date: 2025-03-11
            id: Pacific/Auckland
            name: New Zealand Daylight Time
            offset: +13:00
            time: 11:15:11.904568
    displayName: GeocodeAddressResponse
    description: Structure of geocode-address
    type: object
    properties:
      found:
        required: true
        displayName: found
        description: The number of possible matching locations found
        type: integer
        format: int32
      locations:
        required: true
        displayName: locations
        description: Array of matching location objects
        type: array
        items:
          type: Location
  IPInfoResponse:
    example:
      value:
        city: Brisbane
        continent-code: OC
        country: Australia
        country-code: AU
        country-code3: AUS
        currency-code: AUD
        host-domain: ''
        hostname: ''
        ip: 1.1.1.1
        is-bogon: false
        is-v4-mapped: false
        is-v6: false
        language-code: en
        latitude: -27.46754
        longitude: 153.02809
        region: Queensland
        region-code: QLD
        timezone:
          abbr: AEST
          date: 2025-03-11
          id: Australia/Brisbane
          name: Australian Eastern Standard Time
          offset: +10:00
          time: 08:15:09.007568
        valid: true
    displayName: IPInfoResponse
    description: Structure of ip-info
    type: object
    properties:
      valid:
        required: true
        displayName: valid
        description: True if this is a valid IPv4 or IPv6 address
        type: boolean
      country:
        required: true
        displayName: country
        description: Full country name
        type: string
      hostname:
        required: true
        displayName: hostname
        description: The IPs full hostname (only set if reverse-lookup has been used)
        type: string
      city:
        required: true
        displayName: city
        description: Name of the city (if detectable)
        type: string
      country-code:
        required: true
        displayName: country-code
        description: ISO 2-letter country code
        type: string
      latitude:
        required: true
        displayName: latitude
        description: Location latitude
        type: number
        format: double
      region:
        required: true
        displayName: region
        description: Name of the region (if detectable)
        type: string
      longitude:
        required: true
        displayName: longitude
        description: Location longitude
        type: number
        format: double
      continent-code:
        required: true
        displayName: continent-code
        description: ISO 2-letter continent code
        type: string
      ip:
        required: true
        displayName: ip
        description: The IPv4 or IPv6 address returned
        type: string
      country-code3:
        required: true
        displayName: country-code3
        description: ISO 3-letter country code
        type: string
      currency-code:
        required: true
        displayName: currency-code
        description: ISO 4217 currency code associated with the country
        type: string
      host-domain:
        required: true
        displayName: host-domain
        description: The IPs host domain (only set if reverse-lookup has been used)
        type: string
      timezone:
        required: true
        displayName: timezone
        description: Map containing timezone details for the location
        type: Timezone
      is-v6:
        required: true
        displayName: is-v6
        description: True if this is a IPv6 address. False if IPv4
        type: boolean
      is-v4-mapped:
        required: true
        displayName: is-v4-mapped
        description: True if this is a <a href="https://en.wikipedia.org/wiki/IPv6#IPv4-mapped_IPv6_addresses">IPv4 mapped IPv6 address</a>
        type: boolean
      is-bogon:
        required: true
        displayName: is-bogon
        description: True if this is a bogon IP address such as a private network, local network or reserved address
        type: boolean
      region-code:
        required: true
        displayName: region-code
        description: ISO 3166-2 region code (if detectable)
        type: string
      language-code:
        required: true
        displayName: language-code
        description: The ISO 2-letter language code for the official language spoken in the country
        type: string
  UALookupResponse:
    example:
      value:
        browser-engine: Blink
        browser-release: '2020'
        device-brand: Samsung
        device-height-px: 1066
        device-model: Galaxy S21 Ultra 5G
        device-model-code: SM-G9980
        device-pixel-ratio: 3
        device-ppi: 515
        device-price: 1300
        device-release: '2021'
        device-resolution: 1440x3200
        device-width-px: 480
        is-mobile: true
        is-webview: false
        name: Chrome
        os: Android 11
        os-family: Android
        os-version: '11'
        os-version-major: '11'
        type: phone
        ua: Mozilla/5.0 (Linux; Android 11; SM-G9980U1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Mobile Safari/537.36
        version: 87.0.4280.101
        version-major: '87'
    displayName: UALookupResponse
    description: Structure of ua-lookup
    type: object
    properties:
      ua:
        required: true
        displayName: ua
        description: The user agent string
        type: string
      type:
        required: true
        displayName: type
        description: 'The user agent type, possible values are: <br> <ul> <li>desktop</li> <li>phone</li> <li>tablet</li> <li>wearable</li> <li>tv</li> <li>console</li> <li>email</li> <li>library</li> <li>robot</li> <li>unknown</li> </ul>'
        type: string
      name:
        required: true
        displayName: name
        description: The client software name
        type: string
      version:
        required: true
        displayName: version
        description: The client software full version
        type: string
      version-major:
        required: true
        displayName: version-major
        description: The client software major version
        type: string
      browser-engine:
        required: true
        displayName: browser-engine
        description: If the client is a web browser which underlying browser engine does it use
        type: string
      browser-release:
        required: true
        displayName: browser-release
        description: If the client is a web browser which year was this browser version released
        type: string
      os:
        required: true
        displayName: os
        description: The full operating system name
        type: string
      os-family:
        required: true
        displayName: os-family
        description: 'The operating system family. The major OS families are: Android, Windows, macOS, iOS, Linux'
        type: string
      os-version:
        required: true
        displayName: os-version
        description: The operating system full version
        type: string
      os-version-major:
        required: true
        displayName: os-version-major
        description: The operating system major version
        type: string
      is-mobile:
        required: true
        displayName: is-mobile
        description: Is this a mobile device (e.g. a phone or tablet)
        type: boolean
      is-webview:
        required: true
        displayName: is-webview
        description: Is this a WebView / embedded software client
        type: boolean
      device-brand:
        required: true
        displayName: device-brand
        description: The device brand / manufacturer
        type: string
      device-model:
        required: true
        displayName: device-model
        description: The device model
        type: string
      device-model-code:
        required: true
        displayName: device-model-code
        description: The device model code
        type: string
      device-release:
        required: true
        displayName: device-release
        description: The year when this device model was released
        type: string
      device-price:
        required: true
        displayName: device-price
        description: The average device price on release in USD
        type: number
        format: double
      device-resolution:
        required: true
        displayName: device-resolution
        description: The device display resolution in physical pixels (e.g. 720x1280)
        type: string
      device-ppi:
        required: true
        displayName: device-ppi
        description: The device display PPI (pixels per inch)
        type: number
        format: double
      device-pixel-ratio:
        required: true
        displayName: device-pixel-ratio
        description: The device display pixel ratio (the ratio of the resolution in physical pixels to the resolution in CSS pixels)
        type: number
        format: double
      device-width-px:
        required: true
        displayName: device-width-px
        description: The device display width in CSS 'px'
        type: number
        format: double
      device-height-px:
        required: true
        displayName: device-height-px
        description: The device display height in CSS 'px'
        type: number
        format: double
  HTMLElement:
    displayName: HTMLElement
    description: Structure of elements
    type: object
    properties:
      class:
        required: true
        displayName: class
        description: The 'class' attribute of the element
        type: string
      href:
        required: true
        displayName: href
        description: The 'href' attribute of the element
        type: string
      html:
        required: true
        displayName: html
        description: The raw HTML of the element
        type: string
      id:
        required: true
        displayName: id
        description: The 'id' attribute of the element
        type: string
      text:
        required: true
        displayName: text
        description: The plain-text content of the element with normalized whitespace
        type: string
  PhoneValidateResponse:
    example:
      value:
        country: New Zealand
        country-code: NZ
        country-code3: NZL
        currency-code: NZD
        international-calling-code: '64'
        international-number: '+6495552000'
        is-mobile: false
        local-number: 09 555 2000
        location: Auckland
        prefix-network: ''
        type: fixed-line
        valid: true
    displayName: PhoneValidateResponse
    description: Structure of phone-validate
    type: object
    properties:
      valid:
        required: true
        displayName: valid
        description: Is this a valid phone number
        type: boolean
      international-calling-code:
        required: true
        displayName: international-calling-code
        description: The international calling code
        type: string
      country-code:
        required: true
        displayName: country-code
        description: The phone number country as an ISO 2-letter country code
        type: string
      location:
        required: true
        displayName: location
        description: The phone number location. Could be the city, region or country depending on the type of number
        type: string
      is-mobile:
        required: true
        displayName: is-mobile
        description: True if this is a mobile number. If the number type is unknown this value will be false
        type: boolean
      type:
        required: true
        displayName: type
        description: 'The number type based on the number prefix. <br>Possible values are: <br> <ul> <li>mobile</li> <li>fixed-line</li> <li>premium-rate</li> <li>toll-free</li> <li>voip</li> <li>unknown (use HLR lookup)</li> </ul>'
        type: string
      international-number:
        required: true
        displayName: international-number
        description: The number represented in full international format (E.164)
        type: string
      local-number:
        required: true
        displayName: local-number
        description: The number represented in local dialing format
        type: string
      country:
        required: true
        displayName: country
        description: The phone number country
        type: string
      country-code3:
        required: true
        displayName: country-code3
        description: The phone number country as an ISO 3-letter country code
        type: string
      currency-code:
        required: true
        displayName: currency-code
        description: ISO 4217 currency code associated with the country
        type: string
      prefix-network:
        required: true
        displayName: prefix-network
        description: The network/carrier who owns the prefix (this only works for some countries, use HLR lookup for global network detection)
        type: string
  VerifySecurityCodeResponse:
    example:
      value:
        verified: false
    displayName: VerifySecurityCodeResponse
    description: Structure of verify-security-code
    type: object
    properties:
      verified:
        required: true
        displayName: verified
        description: True if the code is valid
        type: boolean
  BlocklistSensor:
    displayName: BlocklistSensor
    description: Structure of sensors
    type: object
    properties:
      id:
        required: true
        displayName: id
        description: The sensor ID. This is a permanent and unique ID for each sensor
        type: integer
        format: int32
      blocklist:
        required: true
        displayName: blocklist
        description: The primary blocklist category this sensor belongs to
        type: string
      description:
        required: true
        displayName: description
        description: Contains details about the sensor source and what type of malicious activity was detected
        type: string
  EmailValidateResponse:
    example:
      value:
        domain: neutrinoapi.com
        domain-error: false
        domain-status: ok
        email: tech@neutrinoapi.com
        is-disposable: false
        is-freemail: false
        is-personal: false
        mx-ip: 111.65.230.108
        provider: isx.net.nz
        syntax-error: false
        typos-fixed: false
        valid: true
    displayName: EmailValidateResponse
    description: Structure of email-validate
    type: object
    properties:
      valid:
        required: true
        displayName: valid
        description: 'Is this a valid email address. To be valid an email must have: correct syntax, a registered and active domain name, correct DNS records and operational MX servers'
        type: boolean
      syntax-error:
        required: true
        displayName: syntax-error
        description: True if this address has any syntax errors or is not in RFC compliant formatting
        type: boolean
      domain:
        required: true
        displayName: domain
        description: The domain name of this email address
        type: string
      domain-error:
        required: true
        displayName: domain-error
        description: True if this address has any domain name or DNS related errors. Check the 'domain-status' field for the detailed error reason
        type: boolean
      is-freemail:
        required: true
        displayName: is-freemail
        description: True if this address is from a free email provider
        type: boolean
      email:
        required: true
        displayName: email
        description: The complete email address. If you enabled the 'fix-typos' option then this will be the corrected address
        type: string
      is-disposable:
        required: true
        displayName: is-disposable
        description: True if this address is a disposable, temporary or darknet related email address
        type: boolean
      typos-fixed:
        required: true
        displayName: typos-fixed
        description: True if any typos have been fixed. The 'fix-typos' option must be enabled for this to work
        type: boolean
      is-personal:
        required: true
        displayName: is-personal
        description: True if this address likely belongs to a person. False if this is a role based address, e.g. admin@, help@, office@, etc.
        type: boolean
      provider:
        required: true
        displayName: provider
        description: The domain name of the email hosting provider
        type: string
      mx-ip:
        required: true
        displayName: mx-ip
        description: The first resolved IP address of the primary MX server, may be empty if there are domain errors present
        type: string
      domain-status:
        required: true
        displayName: domain-status
        description: "The email domain status, possible values are: <br> <ul> <li>ok - the domain is in working order and can receive email</li> <li>invalid - the domain is not a conformant hostname. May contain invalid syntax or characters</li> <li>no-service - the domain owner has indicated there is no mail service on the domain (also known as the 'Null MX')</li> <li>no-mail - the domain has no valid MX records so cannot receive email</li> <li>mx-invalid - MX records contain invalid or non-conformant hostname values</li> <li>mx-bogon - MX records point to bogon IP addresses</li> <li>resolv-error - MX records do not resolve to any valid IP addresses</li> </ul>"
        type: string
  SMSVerifyResponse:
    displayName: SMSVerifyResponse
    description: Structure of sms-verify
    type: object
    properties:
      number-valid:
        required: true
        displayName: number-valid
        description: True if this a valid phone number
        type: boolean
      security-code:
        required: true
        displayName: security-code
        description: The security code generated, you can save this code to perform your own verification or you can use the <a href="https://www.neutrinoapi.com/api/verify-security-code/">Verify Security Code API</a>
        type: string
      sent:
        required: true
        displayName: sent
        description: True if the SMS has been sent
        type: boolean
  PhoneVerifyResponse:
    displayName: PhoneVerifyResponse
    description: Structure of phone-verify
    type: object
    properties:
      number-valid:
        required: true
        displayName: number-valid
        description: True if this a valid phone number
        type: boolean
      calling:
        required: true
        displayName: calling
        description: True if the call is being made now
        type: boolean
      security-code:
        required: true
        displayName: security-code
        description: The security code generated, you can save this code to perform your own verification or you can use the <a href="https://www.neutrinoapi.com/api/verify-security-code/">Verify Security Code API</a>
        type: string
  HLRLookupResponse:
    example:
      value:
        country: United States
        country-code: US
        country-code3: USA
        currency-code: USD
        current-network: Sinch Voice
        hlr-status: voip
        hlr-valid: false
        imsi: ''
        international-calling-code: '1'
        international-number: '+12106100045'
        is-mobile: false
        is-ported: true
        is-roaming: false
        local-number: (210) 610-0045
        location: San Antonio, TX
        mcc: ''
        mnc: ''
        msc: LANDLINE
        msin: ''
        network-tags: 'NSR-10X-Port/1'
        number-type: voip
        number-valid: true
        origin-network: BANDWIDTH.COM
        ported-network: Sinch Voice
        roaming-country-code: ''
    displayName: HLRLookupResponse
    description: Structure of hlr-lookup
    type: object
    properties:
      number-valid:
        required: true
        displayName: number-valid
        description: True if this a valid phone number
        type: boolean
      international-calling-code:
        required: true
        displayName: international-calling-code
        description: The international calling code
        type: string
      mnc:
        required: true
        displayName: mnc
        description: The mobile MNC number (Mobile Network Code)
        type: string
      number-type:
        required: true
        displayName: number-type
        description: 'The number type, possible values are: <br> <ul> <li>mobile</li> <li>fixed-line</li> <li>premium-rate</li> <li>toll-free</li> <li>voip</li> <li>unknown</li> </ul>'
        type: string
      hlr-valid:
        required: true
        displayName: hlr-valid
        description: Was the HLR lookup successful. If true then this is a working and registered cell-phone or mobile device (SMS and phone calls will be delivered)
        type: boolean
      hlr-status:
        required: true
        displayName: hlr-status
        description: 'The HLR lookup status, possible values are: <br> <ul> <li>ok - the HLR lookup was successful and the device is connected</li> <li>absent - the number was once registered but the device has been switched off or out of network range for some time</li> <li>unknown - the number is not known by the mobile network</li> <li>invalid - the number is not a valid mobile MSISDN number</li> <li>fixed-line - the number is a registered fixed-line not mobile</li> <li>voip - the number has been detected as a VOIP line</li> <li>failed - the HLR lookup has failed, we could not determine the real status of this number</li> </ul>'
        type: string
      ported-network:
        required: true
        displayName: ported-network
        description: The ported to network/carrier name (only set if the number has been ported)
        type: string
      imsi:
        required: true
        displayName: imsi
        description: The mobile IMSI number (International Mobile Subscriber Identity)
        type: string
      mcc:
        required: true
        displayName: mcc
        description: The mobile MCC number (Mobile Country Code)
        type: string
      international-number:
        required: true
        displayName: international-number
        description: The number represented in full international format
        type: string
      local-number:
        required: true
        displayName: local-number
        description: The number represented in local dialing format
        type: string
      country-code:
        required: true
        displayName: country-code
        description: The number location as an ISO 2-letter country code
        type: string
      is-ported:
        required: true
        displayName: is-ported
        description: Has this number been ported to another network
        type: boolean
      msin:
        required: true
        displayName: msin
        description: The mobile MSIN number (Mobile Subscription Identification Number)
        type: string
      location:
        required: true
        displayName: location
        description: The number location. Could be a city, region or country depending on the type of number
        type: string
      origin-network:
        required: true
        displayName: origin-network
        description: The origin network/carrier name
        type: string
      is-mobile:
        required: true
        displayName: is-mobile
        description: True if this is a mobile number (only true with 100% certainty, if the number type is unknown this value will be false)
        type: boolean
      is-roaming:
        required: true
        displayName: is-roaming
        description: Is this number currently roaming from its origin country
        type: boolean
      country:
        required: true
        displayName: country
        description: The phone number country
        type: string
      country-code3:
        required: true
        displayName: country-code3
        description: The number location as an ISO 3-letter country code
        type: string
      currency-code:
        required: true
        displayName: currency-code
        description: ISO 4217 currency code associated with the country
        type: string
      roaming-country-code:
        required: true
        displayName: roaming-country-code
        description: If the number is currently roaming, the ISO 2-letter country code of the roaming in country
        type: string
      msc:
        required: true
        displayName: msc
        description: The mobile MSC number (Mobile Switching Center)
        type: string
      current-network:
        required: true
        displayName: current-network
        description: The currently used network/carrier name
        type: string
      network-tags:
        required: true
        displayName: network-tags
        description: Contains any additional details about the current network such as former network names and mobile technology utilized
        type: string
  Timezone:
    displayName: Timezone
    description: Structure of timezone
    type: object
    properties:
      id:
        required: true
        example:
          value: America/New_York
        displayName: id
        description: The time zone ID as per the IANA time zone database (tzdata). If empty then no valid timezone was detected
        type: string
      name:
        required: true
        example:
          value: Eastern Daylight Time
        displayName: name
        description: The full time zone name
        type: string
      abbr:
        required: true
        example:
          value: EDT
        displayName: abbr
        description: The time zone abbreviation
        type: string
      date:
        required: true
        example:
          value: 2021-01-01
        displayName: date
        description: The current date at the time zone (ISO 8601 format 'YYYY-MM-DD')
        type: string
      time:
        required: true
        example:
          value: 12:30:00.00
        displayName: time
        description: The current time at the time zone (ISO 8601 format 'hh:mm:ss.sss')
        type: string
      offset:
        required: true
        displayName: offset
        description: The UTC offset for the time zone (ISO 8601 format '±hh:mm')
        type: string
  URLInfoResponse:
    example:
      value:
        content: ''
        content-encoding: gzip
        content-size: 100667
        content-type: text/html; charset=UTF-8
        http-ok: true
        http-redirect: false
        http-status: 200
        http-status-message: OK
        is-error: false
        is-timeout: false
        language-code: en
        load-time: 0.22505768
        query: {}
        real: true
        server-city: Kansas City
        server-country: United States of America
        server-country-code: US
        server-hostname: 139.243.244.35.bc.googleusercontent.com
        server-ip: 35.244.243.139
        server-name: nginx
        server-region: Missouri
        title: Neutrino API - Power tools for Developers
        url: https://www.neutrinoapi.com/
        url-path: /
        url-port: 443
        url-protocol: https
        valid: true
    displayName: URLInfoResponse
    description: Structure of url-info
    type: object
    properties:
      http-status-message:
        required: true
        displayName: http-status-message
        description: The HTTP status message assoicated with the status code
        type: string
      server-region:
        required: true
        displayName: server-region
        description: 'The servers IP geo-location: full region name (if detectable)'
        type: string
      query:
        required: true
        displayName: query
        description: A key-value map of the URL query paramaters
        type: object
        additionalProperties: true
        properties:
          //:
            type: string
      server-name:
        required: true
        displayName: server-name
        description: The name of the server software hosting this URL
        type: string
      url-port:
        required: true
        displayName: url-port
        description: The URL port
        type: integer
        format: int32
      server-country:
        required: true
        displayName: server-country
        description: 'The servers IP geo-location: full country name'
        type: string
      real:
        required: true
        displayName: real
        description: Is this URL actually serving real content
        type: boolean
      server-city:
        required: true
        displayName: server-city
        description: 'The servers IP geo-location: full city name (if detectable)'
        type: string
      url-path:
        required: true
        displayName: url-path
        description: The URL path
        type: string
      url:
        required: true
        displayName: url
        description: The fully qualified URL. This may be different to the URL requested if http-redirect is true
        type: string
      valid:
        required: true
        displayName: valid
        description: Is this a valid well-formed URL
        type: boolean
      server-hostname:
        required: true
        displayName: server-hostname
        description: The servers hostname (PTR record)
        type: string
      load-time:
        required: true
        displayName: load-time
        description: The time taken to load the URL content in seconds
        type: number
        format: double
      http-ok:
        required: true
        displayName: http-ok
        description: True if this URL responded with an HTTP OK (200) status
        type: boolean
      content-size:
        required: true
        displayName: content-size
        description: The size of the URL content in bytes
        type: integer
        format: int32
      http-status:
        required: true
        displayName: http-status
        description: The HTTP status code this URL responded with. An HTTP status of 0 indicates a network level issue
        type: integer
        format: int32
      server-country-code:
        required: true
        displayName: server-country-code
        description: 'The servers IP geo-location: ISO 2-letter country code'
        type: string
      content-encoding:
        required: true
        displayName: content-encoding
        description: The encoding format the URL uses
        type: string
      server-ip:
        required: true
        displayName: server-ip
        description: The IP address of the server hosting this URL
        type: string
      url-protocol:
        required: true
        displayName: url-protocol
        description: The URL protocol, usually http or https
        type: string
      content-type:
        required: true
        displayName: content-type
        description: The content-type this URL serves
        type: string
      http-redirect:
        required: true
        displayName: http-redirect
        description: True if this URL responded with an HTTP redirect
        type: boolean
      content:
        required: true
        displayName: content
        description: The actual content this URL responded with. Only set if the 'fetch-content' option was used
        type: string
      is-timeout:
        required: true
        displayName: is-timeout
        description: True if a timeout occurred while loading the URL. You can set the timeout with the request parameter 'timeout'
        type: boolean
      title:
        required: true
        displayName: title
        description: The document title
        type: string
      language-code:
        required: true
        displayName: language-code
        description: The ISO 2-letter language code of the page. Extracted from either the HTML document or via HTTP headers
        type: string
      is-error:
        required: true
        displayName: is-error
        description: True if an error occurred while loading the URL. This includes network errors, TLS errors and timeouts
        type: boolean
  IPBlocklistResponse:
    example:
      value:
        blocklists:
        - bot
        - exploit-bot
        - proxy
        - spam-bot
        - tor
        - vpn
        cidr: 104.244.72.0/24
        ip: 104.244.72.115
        is-bot: true
        is-dshield: false
        is-exploit-bot: true
        is-hijacked: false
        is-listed: true
        is-malware: false
        is-proxy: true
        is-spam-bot: true
        is-spider: false
        is-spyware: false
        is-tor: true
        is-vpn: true
        last-seen: 1741406274
        list-count: 29
        sensors:
        - blocklist: tor
          description: Tor router
          id: 1
        - blocklist: bot
          description: CINS army list
          id: 6
        - blocklist: exploit-bot
          description: Vulnerability scanning or DDoS bot
          id: 17
        - blocklist: spam-bot
          description: Comment and forum spammers
          id: 19
        - blocklist: bot
          description: Brute force bot (SSH, SMTP, IMAP or HTTP)
          id: 20
        - blocklist: bot
          description: Hacking or attack bot
          id: 22
        - blocklist: tor
          description: Tor node
          id: 32
        - blocklist: exploit-bot
          description: Exploit attacks against website
          id: 33
        - blocklist: spam-bot
          description: HTTP form spam bot
          id: 34
        - blocklist: tor
          description: Tor exit node
          id: 38
        - blocklist: bot
          description: Web server attack source
          id: 39
        - blocklist: spam-bot
          description: Harvester, spam or comment spam host
          id: 50
        - blocklist: proxy
          description: Public HTTP proxy
          id: 53
        - blocklist: vpn
          description: VPN service hosting
          id: 54
        - blocklist: tor
          description: Tor exit node
          id: 55
        - blocklist: spam-bot
          description: Forum, blog or other website spammer
          id: 58
        - blocklist: bot
          description: IP connected to a known honeypot
          id: 59
        - blocklist: bot
          description: Brute force bot (SSH)
          id: 60
        - blocklist: bot
          description: Brute force bot (SMTP)
          id: 61
        - blocklist: bot
          description: Brute force bot (Apache HTTP)
          id: 62
        - blocklist: bot
          description: Brute force bot (IMAP)
          id: 63
        - blocklist: bot
          description: Brute force bot (Website Logins)
          id: 66
        - blocklist: exploit-bot
          description: Hacking, exploit or other attack source
          id: 67
        - blocklist: bot
          description: Scanning or brute force attacks (last 30 days)
          id: 68
        - blocklist: bot
          description: Hacked IP or spam source
          id: 69
        - blocklist: exploit-bot
          description: HTTP attack source
          id: 73
        - blocklist: spam-bot
          description: Email/SMTP attack source
          id: 74
        - blocklist: bot
          description: SSH attack source
          id: 75
        - blocklist: bot
          description: Abuse source (hacking or spam)
          id: 76
    displayName: IPBlocklistResponse
    description: Structure of ip-blocklist
    type: object
    properties:
      ip:
        required: true
        displayName: ip
        description: The IP address
        type: string
      is-bot:
        required: true
        displayName: is-bot
        description: IP is hosting a malicious bot or is part of a botnet. This is a broad category which includes brute-force crackers
        type: boolean
      is-exploit-bot:
        required: true
        displayName: is-exploit-bot
        description: IP is hosting an exploit finding bot or is running exploit scanning software
        type: boolean
      is-malware:
        required: true
        displayName: is-malware
        description: IP is involved in distributing or is running malware
        type: boolean
      is-spider:
        required: true
        displayName: is-spider
        description: IP is running a hostile web spider / web crawler
        type: boolean
      is-dshield:
        required: true
        displayName: is-dshield
        description: IP has been flagged as a significant attack source by DShield (dshield.org)
        type: boolean
      list-count:
        required: true
        displayName: list-count
        description: The number of blocklists the IP is listed on
        type: integer
        format: int32
      is-proxy:
        required: true
        displayName: is-proxy
        description: IP has been detected as an anonymous web proxy or anonymous HTTP proxy
        type: boolean
      is-hijacked:
        required: true
        displayName: is-hijacked
        description: IP is part of a hijacked netblock or a netblock controlled by a criminal organization
        type: boolean
      is-tor:
        required: true
        displayName: is-tor
        description: IP is a Tor node or running a Tor related service
        type: boolean
      is-spyware:
        required: true
        displayName: is-spyware
        description: IP is involved in distributing or is running spyware
        type: boolean
      is-spam-bot:
        required: true
        displayName: is-spam-bot
        description: IP address is hosting a spam bot, comment spamming or any other spamming type software
        type: boolean
      is-listed:
        required: true
        displayName: is-listed
        description: Is this IP on a blocklist
        type: boolean
      is-vpn:
        required: true
        displayName: is-vpn
        description: IP belongs to a public VPN provider (only set if the 'vpn-lookup' option is enabled)
        type: boolean
      last-seen:
        required: true
        displayName: last-seen
        description: The unix time when this IP was last seen on any blocklist. IPs are automatically removed after 7 days therefor this value will never be older than 7 days
        type: integer
        format: int32
      blocklists:
        required: true
        displayName: blocklists
        description: 'An array of strings indicating which blocklist categories this IP is listed on. Current possible values are: <br> <ul> <li>tor - IP is a Tor node or running a Tor related service</li> <li>proxy - IP has been detected as an anonymous web proxy or HTTP proxy</li> <li>vpn - IP belongs to a public VPN provider</li> <li>bot - IP is hosting a malicious bot or is part of a botnet. This is a broad category which includes brute-force crackers</li> <li>spam-bot - IP address is hosting a spam bot, comment spamming or any other spamming type software</li> <li>exploit-bot - IP is hosting an exploit finding bot or is running exploit scanning software</li> <li>hijacked - IP is part of a hijacked netblock or a netblock controlled by a criminal organization</li> <li>malware - IP is currently involved in distributing or is running malware</li> <li>spyware - IP is currently involved in distributing or is running spyware</li> <li>spider - IP is running a hostile web spider / web crawler</li> <li>dshield - IP has been flagged as a significant attack source by DShield (dshield.org)</li> </ul>'
        type: array
        items:
          type: string
      sensors:
        required: true
        displayName: sensors
        description: An array of objects containing details on which specific sensors detected the IP
        type: array
        items:
          type: BlocklistSensor
      cidr:
        required: true
        displayName: cidr
        description: The CIDR address for this listing (only set if the IP is listed)
        type: string
  DomainLookupResponse:
    example:
      value:
        age: 4194
        blocklists: []
        dns-provider: r4ns.com
        domain: neutrinoapi.com
        fqdn: neutrinoapi.com
        is-adult: false
        is-gov: false
        is-malicious: false
        is-opennic: false
        is-pending: false
        is-subdomain: false
        mail-provider: isx.net.nz
        rank: 746021
        registered-date: 2013-09-15
        registrar-id: 468
        registrar-name: Amazon Registrar, Inc.
        sensors: []
        tld: com
        tld-cc: ''
        valid: true
    displayName: DomainLookupResponse
    description: Structure of domain-lookup
    type: object
    properties:
      domain:
        required: true
        displayName: domain
        description: The primary domain name excluding any subdomains. This is also referred to as the second-level domain (SLD)
        type: string
      is-malicious:
        required: true
        displayName: is-malicious
        description: Consider this domain malicious as it is currently listed on at least 1 blocklist
        type: boolean
      blocklists:
        required: true
        displayName: blocklists
        description: 'An array of strings indicating which blocklist categories this domain is listed on. Current possible values are: <br> <ul> <li>phishing - Domain has recently been hosting phishing links or involved in the sending of phishing messages</li> <li>malware - Domain has recently been hosting malware or involved in the distribution of malware</li> <li>spam - Domain has recently been sending spam either directly or indirectly</li> <li>anonymizer - Domain is involved in anonymizer activity such as disposable email, hosting proxies or tor services</li> <li>nefarious - Domain is involved in nefarious or malicious activity such as hacking, fraud or other abusive behavior</li> </ul>'
        type: array
        items:
          type: string
      sensors:
        required: true
        displayName: sensors
        description: An array of objects containing details on which specific blocklist sensors have detected this domain
        type: array
        items:
          type: BlocklistSensor
      valid:
        required: true
        displayName: valid
        description: True if a valid domain was found. For a domain to be considered valid it must be registered and have valid DNS NS records
        type: boolean
      fqdn:
        required: true
        displayName: fqdn
        description: The fully qualified domain name (FQDN)
        type: string
      is-subdomain:
        required: true
        displayName: is-subdomain
        description: Is the FQDN a subdomain of the primary domain
        type: boolean
      tld:
        required: true
        displayName: tld
        description: The top-level domain (TLD)
        type: string
      tld-cc:
        required: true
        displayName: tld-cc
        description: For a country code top-level domain (ccTLD) this will contain the associated ISO 2-letter country code
        type: string
      rank:
        required: true
        displayName: rank
        description: The domains estimated global traffic rank with the highest rank being 1. A value of 0 indicates the domain is currently ranked outside of the top 1M of domains
        type: integer
        format: int32
      is-gov:
        required: true
        displayName: is-gov
        description: Is this domain under a government or military TLD
        type: boolean
      is-opennic:
        required: true
        displayName: is-opennic
        description: Is this domain under an OpenNIC TLD
        type: boolean
      is-pending:
        required: true
        displayName: is-pending
        description: True if this domain is unseen and is currently being processed in the background. This field only matters when the 'live' lookup setting has been explicitly disabled and indicates that not all domain data my be present yet
        type: boolean
      is-adult:
        required: true
        displayName: is-adult
        description: This domain is hosting adult content such as porn, webcams, escorts, etc
        type: boolean
      registered-date:
        required: true
        displayName: registered-date
        description: The ISO date this domain was registered or first seen on the internet. An empty value indicates we could not reliably determine the date
        type: string
      age:
        required: true
        displayName: age
        description: The number of days since the domain was registered. A domain age of under 90 days is generally considered to be potentially risky. A value of 0 indicates no registration date was found for this domain
        type: integer
        format: int32
      registrar-name:
        required: true
        displayName: registrar-name
        description: The name of the domain registrar owning this domain
        type: string
      registrar-id:
        required: true
        displayName: registrar-id
        description: The IANA registrar ID (0 if no registrar ID was found)
        type: integer
        format: int32
      dns-provider:
        required: true
        displayName: dns-provider
        description: The primary domain of the DNS provider for this domain
        type: string
      mail-provider:
        required: true
        displayName: mail-provider
        description: The primary domain of the email provider for this domain. An empty value indicates the domain has no valid MX records
        type: string
  EmailVerifyResponse:
    example:
      value:
        domain: neutrinoapi.com
        domain-error: false
        domain-status: ok
        email: tech@neutrinoapi.com
        is-catch-all: false
        is-deferred: false
        is-disposable: false
        is-freemail: false
        is-personal: false
        mx-ip: 111.65.230.108
        provider: isx.net.nz
        smtp-response: 250 Accepted
        smtp-status: ok
        syntax-error: false
        typos-fixed: false
        valid: true
        verified: true
    displayName: EmailVerifyResponse
    description: Structure of email-verify
    type: object
    properties:
      valid:
        required: true
        displayName: valid
        description: 'Is this a valid email address. To be valid an email must have: correct syntax, a registered and active domain name, correct DNS records and operational MX servers'
        type: boolean
      verified:
        required: true
        displayName: verified
        description: True if this email address has passed SMTP username verification. Check the 'smtp-status' and 'domain-status' fields for specific verification details
        type: boolean
      email:
        required: true
        displayName: email
        description: The complete email address. If you enabled the 'fix-typos' option then this will be the corrected address
        type: string
      typos-fixed:
        required: true
        displayName: typos-fixed
        description: True if any typos have been fixed. The 'fix-typos' option must be enabled for this to work
        type: boolean
      syntax-error:
        required: true
        displayName: syntax-error
        description: True if this address has any syntax errors or is not in RFC compliant formatting
        type: boolean
      domain-error:
        required: true
        displayName: domain-error
        description: True if this address has any domain name or DNS related errors. Check the 'domain-status' field for the detailed error reason
        type: boolean
      domain:
        required: true
        displayName: domain
        description: The domain name of this email address
        type: string
      provider:
        required: true
        displayName: provider
        description: The domain name of the email hosting provider
        type: string
      is-freemail:
        required: true
        displayName: is-freemail
        description: True if this address is from a free email provider
        type: boolean
      is-disposable:
        required: true
        displayName: is-disposable
        description: True if this address is a disposable, temporary or darknet related email address
        type: boolean
      is-personal:
        required: true
        displayName: is-personal
        description: True if this address likely belongs to a person. False if this is a role based address, e.g. admin@, help@, office@, etc.
        type: boolean
      smtp-status:
        required: true
        displayName: smtp-status
        description: "The SMTP username verification status for this address: <br> <ul> <li>ok - verification was successful, this is a real username that can receive mail</li> <li>absent - this username or domain is not registered with the email service provider</li> <li>invalid - not a valid email address, check the 'domain-status' field for specific details</li> <li>unresponsive - the mail servers for this domain have repeatedly timed-out or refused multiple connection attempts</li> <li>unknown - sorry, we could not reliably determine the status of this username</li> </ul>"
        type: string
      smtp-response:
        required: true
        displayName: smtp-response
        description: The raw SMTP response message received during verification
        type: string
      is-catch-all:
        required: true
        displayName: is-catch-all
        description: True if this email domain has a catch-all policy. A catch-all domain will accept mail for any username so therefor the 'smtp-status' will always be 'ok'
        type: boolean
      is-deferred:
        required: true
        displayName: is-deferred
        description: True if the mail server responded with a temporary failure (either a 4xx response code or unresponsive server). You can retry this address later, we recommend waiting at least 15 minutes before retrying
        type: boolean
      mx-ip:
        required: true
        displayName: mx-ip
        description: The first resolved IP address of the primary MX server, may be empty if there are domain errors present
        type: string
      domain-status:
        required: true
        displayName: domain-status
        description: "The email domain status, possible values are: <br> <ul> <li>ok - the domain is in working order and can receive email</li> <li>invalid - the domain is not a conformant hostname. May contain invalid syntax or characters</li> <li>no-service - the domain owner has indicated there is no mail service on the domain (also known as the 'Null MX')</li> <li>no-mail - the domain has no valid MX records so cannot receive email</li> <li>mx-invalid - MX records contain invalid or non-conformant hostname values</li> <li>mx-bogon - MX records point to bogon IP addresses</li> <li>resolv-error - MX records do not resolve to any valid IP addresses</li> </ul>"
        type: string
  BrowserBotResponse:
    example:
      value:
        content: <html>...</html>
        content-size: 100671
        elements:
        - class: button button-selected
          href: https://www.neutrinoapi.com/
          html: <a href="https://www.neutrinoapi.com/" class="button button-selected">Overview</a>
          id: ''
          text: Overview
        - class: 'button '
          href: https://www.neutrinoapi.com/api/api-basics/
          html: <a href="https://www.neutrinoapi.com/api/api-basics/" class="button ">API&nbsp;Docs</a>
          id: ''
          text: API Docs
        - class: 'button '
          href: https://www.neutrinoapi.com/plans/
          html: <a href="https://www.neutrinoapi.com/plans/" class="button ">Plans</a>
          id: ''
          text: Plans
        - class: 'button '
          href: https://www.neutrinoapi.com/signup/
          html: <a href="https://www.neutrinoapi.com/signup/" class="button ">Sign&nbsp;Up</a>
          id: ''
          text: Sign Up
        - class: 'button '
          href: https://www.neutrinoapi.com/updates/
          html: <a href="https://www.neutrinoapi.com/updates/" class="button ">Updates</a>
          id: ''
          text: Updates
        - class: 'button '
          href: https://www.neutrinoapi.com/status/
          html: <a href="https://www.neutrinoapi.com/status/" class="button ">Status</a>
          id: ''
          text: Status
        - class: 'button '
          href: https://www.neutrinoapi.com/about-us/
          html: <a href="https://www.neutrinoapi.com/about-us/" class="button ">About</a>
          id: ''
          text: About
        - class: 'button '
          href: https://www.neutrinoapi.com/contact-us/
          html: <a href="https://www.neutrinoapi.com/contact-us/" class="button ">Contact</a>
          id: ''
          text: Contact
        - class: 'button '
          href: https://www.neutrinoapi.com/account/login/
          html: <a href="https://www.neutrinoapi.com/account/login/" class="button ">Login</a>
          id: ''
          text: Login
        - class: button button-selected
          href: https://www.neutrinoapi.com/
          html: <a href="https://www.neutrinoapi.com/" class="button button-selected">Overview</a>
          id: ''
          text: Overview
        - class: 'button '
          href: https://www.neutrinoapi.com/api/api-basics/
          html: <a href="https://www.neutrinoapi.com/api/api-basics/" class="button ">API&nbsp;Docs</a>
          id: ''
          text: API Docs
        - class: 'button '
          href: https://www.neutrinoapi.com/plans/
          html: <a href="https://www.neutrinoapi.com/plans/" class="button ">Plans</a>
          id: ''
          text: Plans
        - class: 'button '
          href: https://www.neutrinoapi.com/signup/
          html: <a href="https://www.neutrinoapi.com/signup/" class="button ">Sign&nbsp;Up</a>
          id: ''
          text: Sign Up
        - class: 'button '
          href: https://www.neutrinoapi.com/updates/
          html: <a href="https://www.neutrinoapi.com/updates/" class="button ">Updates</a>
          id: ''
          text: Updates
        - class: 'button '
          href: https://www.neutrinoapi.com/status/
          html: <a href="https://www.neutrinoapi.com/status/" class="button ">Status</a>
          id: ''
          text: Status
        - class: 'button '
          href: https://www.neutrinoapi.com/about-us/
          html: <a href="https://www.neutrinoapi.com/about-us/" class="button ">About</a>
          id: ''
          text: About
        - class: 'button '
          href: https://www.neutrinoapi.com/contact-us/
          html: <a href="https://www.neutrinoapi.com/contact-us/" class="button ">Contact</a>
          id: ''
          text: Contact
        - class: 'button '
          href: https://www.neutrinoapi.com/account/login/
          html: <a href="https://www.neutrinoapi.com/account/login/" class="button ">Login</a>
          id: ''
          text: Login
        error-message: ''
        exec-results:
        - result: ''
          statement: "[click('#button-id'), sleep(1), click('.class'), keys('1234'), enter()]"
        http-redirect-url: ''
        http-status-code: 200
        http-status-message: OK
        is-error: false
        is-http-ok: true
        is-http-redirect: false
        is-secure: true
        is-timeout: false
        language-code: en
        load-time: 0.843650624
        mime-type: text/html
        response-headers:
          alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
          content-encoding: gzip
          content-security-policy: default-src 'self'; base-uri 'none'; object-src 'none'; frame-ancestors 'none'; frame-src 'none'; form-action 'self' secure.ewaypayments.com; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; report-uri https://www.neutrinoapi.com/csp-report/
          content-type: text/html; charset=UTF-8
          date: Mon, 10 Mar 2025 22:15:13 GMT
          referrer-policy: strict-origin
          server: nginx
          strict-transport-security: max-age=31536000
          via: 1.1 google
          x-content-type-options: nosniff
        security-details:
          cipher: AES_128_GCM
          issuer: GlobalSign RSA OV SSL CA 2018
          protocol: TLS 1.3
          subject-name: '*.neutrinoapi.com'
        server-hostname: 139.243.244.35.bc.googleusercontent.com
        server-ip: 35.244.243.139
        title: Neutrino API - Power tools for Developers
        url: https://www.neutrinoapi.com/
        url-components:
          host: www.neutrinoapi.com
          path: /
          port: 443
          protocol: https
          query: {}
          url: https://www.neutrinoapi.com/
        url-valid: true
    displayName: BrowserBotResponse
    description: Structure of browser-bot
    type: object
    properties:
      url:
        required: true
        displayName: url
        description: The requested URL. This may not be the same as the final destination URL, if the URL redirects then it will be set in 'http-redirect-url' and 'is-http-redirect' will also be true
        type: string
      content:
        required: true
        displayName: content
        description: The complete raw, decompressed and decoded page content. Usually will be either HTML, JSON or XML
        type: string
      mime-type:
        required: true
        displayName: mime-type
        description: The document MIME type
        type: string
      title:
        required: true
        displayName: title
        description: The document title
        type: string
      is-error:
        required: true
        displayName: is-error
        description: True if an error has occurred loading the page. Check the 'error-message' field for details
        type: boolean
      is-timeout:
        required: true
        displayName: is-timeout
        description: True if a timeout occurred while loading the page. You can set the timeout with the request parameter 'timeout'
        type: boolean
      error-message:
        required: true
        displayName: error-message
        description: Contains the error message if an error has occurred ('is-error' will be true)
        type: string
      http-status-code:
        required: true
        displayName: http-status-code
        description: The HTTP status code the URL returned
        type: integer
        format: int32
      http-status-message:
        required: true
        displayName: http-status-message
        description: The HTTP status message the URL returned
        type: string
      is-http-ok:
        required: true
        displayName: is-http-ok
        description: True if the HTTP status is OK (200)
        type: boolean
      is-http-redirect:
        required: true
        displayName: is-http-redirect
        description: True if the URL responded with an HTTP redirect
        type: boolean
      http-redirect-url:
        required: true
        displayName: http-redirect-url
        description: The redirected URL if the URL responded with an HTTP redirect
        type: string
      server-ip:
        required: true
        displayName: server-ip
        description: The HTTP servers IP address
        type: string
      load-time:
        required: true
        displayName: load-time
        description: The number of seconds taken to load the page (from initial request until DOM ready)
        type: number
        format: double
      response-headers:
        required: true
        displayName: response-headers
        description: Map containing all the HTTP response headers the URL responded with
        type: object
        additionalProperties: true
        properties:
          //:
            type: string
      is-secure:
        required: true
        displayName: is-secure
        description: True if the page is secured using TLS/SSL
        type: boolean
      security-details:
        required: true
        displayName: security-details
        description: Map containing details of the TLS/SSL setup
        type: object
        additionalProperties: true
        properties:
          //:
            type: string
      elements:
        required: true
        displayName: elements
        description: Array containing all the elements matching the supplied selector
        type: array
        items:
          type: HTMLElement
      exec-results:
        required: true
        displayName: exec-results
        description: If you executed any JavaScript this array holds the results as objects
        type: array
        items:
          type: ExecResult
      language-code:
        required: true
        displayName: language-code
        description: The ISO 2-letter language code of the page. Extracted from either the HTML document or via HTTP headers
        type: string
      url-components:
        required: true
        displayName: url-components
        description: Map containing the URL components for a valid URL
        type: URLComponents
      url-valid:
        required: true
        displayName: url-valid
        description: True if the URL supplied is valid
        type: boolean
      content-size:
        required: true
        displayName: content-size
        description: The size of the returned content in bytes
        type: integer
        format: int32
      server-hostname:
        required: true
        displayName: server-hostname
        description: The HTTP servers hostname (PTR/RDNS record)
        type: string
  GeocodeReverseResponse:
    example:
      value:
        address: 1 Molesworth Street, Pipitea, Wellington 6140, New Zealand
        address-components:
          city: Wellington
          country: New Zealand
          county: Wellington City
          house-number: '1'
          postal-code: '6140'
          road: Molesworth Street
          state: Wellington
          suburb: Pipitea
        city: Wellington
        country: New Zealand
        country-code: NZ
        country-code3: NZL
        currency-code: NZD
        found: true
        language-code: en
        latitude: -41.2775847
        location-tags:
        - house
        location-type: address
        longitude: 174.7775229
        postal-address: |
          1 Molesworth Street

          Pipitea

          Wellington 6140

          New Zealand
        postal-code: '6140'
        region-code: WGN
        state: Wellington
        timezone:
          abbr: NZDT
          date: 2025-03-11
          id: Pacific/Auckland
          name: New Zealand Daylight Time
          offset: +13:00
          time: 11:15:09.73809
    displayName: GeocodeReverseResponse
    description: Structure of geocode-reverse
    type: object
    properties:
      country:
        required: true
        displayName: country
        description: The country of the location
        type: string
      found:
        required: true
        displayName: found
        description: True if these coordinates map to a real location
        type: boolean
      address:
        required: true
        displayName: address
        description: The complete address using comma-separated values
        type: string
      city:
        required: true
        displayName: city
        description: The city of the location
        type: string
      country-code:
        required: true
        displayName: country-code
        description: The ISO 2-letter country code of the location
        type: string
      postal-code:
        required: true
        displayName: postal-code
        description: The postal code for the location
        type: string
      state:
        required: true
        displayName: state
        description: The state of the location
        type: string
      address-components:
        required: true
        displayName: address-components
        description: The components which make up the address such as road, city, state, etc
        type: object
        additionalProperties: true
        properties:
          //:
            type: string
      country-code3:
        required: true
        displayName: country-code3
        description: The ISO 3-letter country code of the location
        type: string
      currency-code:
        required: true
        displayName: currency-code
        description: ISO 4217 currency code associated with the country
        type: string
      location-type:
        required: true
        displayName: location-type
        description: 'The detected location type ordered roughly from most to least precise, possible values are: <br> <ul> <li>address - indicates a precise street address</li> <li>street - accurate to the street level but may not point to the exact location of the house/building number</li> <li>city - accurate to the city level, this includes villages, towns, suburbs, etc</li> <li>postal-code - indicates a postal code area (no house or street information present)</li> <li>railway - location is part of a rail network such as a station or railway track</li> <li>natural - indicates a natural feature, for example a mountain peak or a waterway</li> <li>island - location is an island or archipelago</li> <li>administrative - indicates an administrative boundary such as a country, state or province</li> </ul>'
        type: string
      location-tags:
        required: true
        displayName: location-tags
        description: 'Array of strings containing any location tags associated with the address. Tags are additional pieces of metadata about a specific location, there are thousands of different tags. Some examples of tags: shop, office, cafe, bank, pub'
        type: array
        items:
          type: string
      latitude:
        required: true
        displayName: latitude
        description: The location latitude
        type: number
        format: double
      longitude:
        required: true
        displayName: longitude
        description: The location longitude
        type: number
        format: double
      timezone:
        required: true
        displayName: timezone
        description: Map containing timezone details for the location
        type: Timezone
      region-code:
        required: true
        displayName: region-code
        description: The ISO 3166-2 region code for the location
        type: string
      postal-address:
        required: true
        displayName: postal-address
        description: The formatted address using local standards suitable for printing on an envelope
        type: string
      language-code:
        required: true
        displayName: language-code
        description: The ISO 2-letter language code for the official language spoken in the country
        type: string
  HostReputationResponse:
    example:
      value:
        host: neutrinoapi.com
        is-listed: false
        list-count: 0
        lists:
        - is-listed: false
          list-host: uribl.zeustracker.abuse.ch
          list-name: abuse.ch ZeuS Tracker Domain
          list-rating: 3
          response-time: 233
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: uribl.abuse.ro
          list-name: abuse.ro URI RBL
          list-rating: 3
          response-time: 309
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: dblack.mail.abusix.zone
          list-name: Abusix Domain Spam
          list-rating: 2
          response-time: 38
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: bsb.empty.us
          list-name: Blog Spam Blocklist (empty.us)
          list-rating: 3
          response-time: 135
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: bsb.spamlookup.net
          list-name: Blog Spam Blocklist (spamlookup.net)
          list-rating: 3
          response-time: 23
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: bl.fmb.la
          list-name: fmb.la
          list-rating: 3
          response-time: 256
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: dbl.nordspam.com
          list-name: NordSpam Domain Blacklist
          list-rating: 2
          response-time: 17
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: ubl.nszones.com
          list-name: nsZones.com SURBL
          list-rating: 3
          response-time: 160
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: rhsbl.rymsho.ru
          list-name: Rymsho's RHSBL
          list-rating: 3
          response-time: 42
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: public.sarbl.org
          list-name: SARBL
          list-rating: 2
          response-time: 201
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: rhsbl.scientificspam.net
          list-name: Scientific Spam
          list-rating: 2
          response-time: 21
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: nomail.rhsbl.sorbs.net
          list-name: SORBS Domain names indicating no email sender
          list-rating: 2
          response-time: 112
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: badconf.rhsbl.sorbs.net
          list-name: SORBS Domain names pointing to bad addresses
          list-rating: 2
          response-time: 108
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: fresh.spameatingmonkey.net
          list-name: Spam Eating Monkey SEM-FRESH
          list-rating: 2
          response-time: 131
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: fresh10.spameatingmonkey.net
          list-name: Spam Eating Monkey SEM-FRESH10
          list-rating: 2
          response-time: 136
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: fresh15.spameatingmonkey.net
          list-name: Spam Eating Monkey SEM-FRESH15
          list-rating: 2
          response-time: 131
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: uribl.spameatingmonkey.net
          list-name: Spam Eating Monkey SEM-URI
          list-rating: 2
          response-time: 130
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: urired.spameatingmonkey.net
          list-name: Spam Eating Monkey SEM-URIRED
          list-rating: 2
          response-time: 131
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: dbl.spamhaus.org
          list-name: Spamhaus DBL Domain Block List
          list-rating: 1
          response-time: 58
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: dbl.suomispam.net
          list-name: Suomispam Domain Blacklist
          list-rating: 2
          response-time: 24
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: multi.surbl.org
          list-name: SURBL multi (Combined SURBL list)
          list-rating: 1
          response-time: 106
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: uribl.swinog.ch
          list-name: Swinog URIBL
          list-rating: 2
          response-time: 55
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: dob.sibl.support-intelligence.net
          list-name: The Day Old Bread List (aka DOB)
          list-rating: 3
          response-time: 168
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: black.uribl.com
          list-name: URIBL black
          list-rating: 1
          response-time: 261
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: uri.blacklist.woody.ch
          list-name: Woody's SMTP Blacklist URIBL
          list-rating: 3
          response-time: 3229
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: rhsbl.zapbl.net
          list-name: ZapBL RHSBL
          list-rating: 3
          response-time: 36
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: zebl.zoneedit.com
          list-name: ZoneEdit combined RHSBL
          list-rating: 3
          response-time: 129
          return-code: ''
          txt-record: ''
        - is-listed: false
          list-host: ban.zebl.zoneedit.com
          list-name: ZoneEdit deny DNS services domains
          list-rating: 3
          response-time: 129
          return-code: ''
          txt-record: ''
    displayName: HostReputationResponse
    description: Structure of host-reputation
    type: object
    properties:
      is-listed:
        required: true
        displayName: is-listed
        description: Is this host blacklisted
        type: boolean
      lists:
        required: true
        displayName: lists
        description: Array of objects for each DNSBL checked
        type: array
        items:
          type: Blacklist
      list-count:
        required: true
        displayName: list-count
        description: The number of DNSBLs the host is listed on
        type: integer
        format: int32
      host:
        required: true
        displayName: host
        description: The IP address or host name
        type: string
  BadWordFilterResponse:
    example:
      value:
        bad-words-list:
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        - REDACTED
        bad-words-total: 50
        censored-content: ''
        is-bad: true
    displayName: BadWordFilterResponse
    description: Structure of bad-word-filter
    type: object
    properties:
      bad-words-list:
        required: true
        displayName: bad-words-list
        description: An array of the bad words found
        type: array
        items:
          type: string
      bad-words-total:
        required: true
        displayName: bad-words-total
        description: Total number of bad words detected
        type: integer
        format: int32
      censored-content:
        required: true
        displayName: censored-content
        description: The censored content (only set if censor-character has been set)
        type: string
      is-bad:
        required: true
        displayName: is-bad
        description: Does the text contain bad words
        type: boolean
  Blacklist:
    displayName: Blacklist
    description: Structure of lists
    type: object
    properties:
      is-listed:
        required: true
        displayName: is-listed
        description: True if the host is currently black-listed
        type: boolean
      list-host:
        required: true
        displayName: list-host
        description: The hostname of the DNSBL
        type: string
      list-rating:
        required: true
        displayName: list-rating
        description: The list rating [1-3] with 1 being the best rating and 3 the lowest rating
        type: integer
        format: int32
      list-name:
        required: true
        displayName: list-name
        description: The name of the DNSBL
        type: string
      txt-record:
        required: true
        displayName: txt-record
        description: The TXT record returned for this listing (only set if listed)
        type: string
      return-code:
        required: true
        displayName: return-code
        description: The specific return code for this listing (only set if listed)
        type: string
      response-time:
        required: true
        displayName: response-time
        description: The DNSBL server response time in milliseconds
        type: integer
        format: int32
  BINLookupResponse:
    example:
      value:
        bin-number: '48334884'
        card-brand: VISA
        card-category: PLATINUM
        card-type: CREDIT
        country: NEW ZEALAND
        country-code: NZ
        country-code3: NZL
        currency-code: NZD
        ip-blocklisted: false
        ip-blocklists: []
        ip-city: ''
        ip-country: ''
        ip-country-code: ''
        ip-country-code3: ''
        ip-matches-bin: false
        ip-region: ''
        is-commercial: false
        is-prepaid: false
        issuer: KIWIBANK, LTD.
        issuer-phone: ''
        issuer-website: http://www.kiwibank.co.nz
        valid: true
    displayName: BINLookupResponse
    description: Structure of bin-lookup
    type: object
    properties:
      country:
        required: true
        displayName: country
        description: The full country name of the issuer
        type: string
      ip-city:
        required: true
        displayName: ip-city
        description: The city of the customers IP (if detectable)
        type: string
      ip-matches-bin:
        required: true
        displayName: ip-matches-bin
        description: True if the customers IP country matches the BIN country
        type: boolean
      card-type:
        required: true
        displayName: card-type
        description: 'The card type, will always be one of: DEBIT, CREDIT, CHARGE CARD'
        type: string
      card-category:
        required: true
        displayName: card-category
        description: 'The card category. There are many different card categories the most common card categories are: CLASSIC, BUSINESS, CORPORATE, PLATINUM, PREPAID'
        type: string
      ip-country-code:
        required: true
        displayName: ip-country-code
        description: The ISO 2-letter country code of the customers IP
        type: string
      ip-country:
        required: true
        displayName: ip-country
        description: The country of the customers IP
        type: string
      issuer:
        required: true
        displayName: issuer
        description: The card issuer
        type: string
      ip-blocklisted:
        required: true
        displayName: ip-blocklisted
        description: True if the customers IP is listed on one of our blocklists, see the <a href="http://www.neutrinoapi.com/api/ip-blocklist/">IP Blocklist API</a>
        type: boolean
      valid:
        required: true
        displayName: valid
        description: Is this a valid BIN or IIN number
        type: boolean
      ip-blocklists:
        required: true
        displayName: ip-blocklists
        description: An array of strings indicating which blocklists this IP is listed on
        type: array
        items:
          type: string
      issuer-website:
        required: true
        displayName: issuer-website
        description: The card issuers website
        type: string
      country-code:
        required: true
        displayName: country-code
        description: The ISO 2-letter country code of the issuer
        type: string
      ip-region:
        required: true
        displayName: ip-region
        description: The region of the customers IP (if detectable)
        type: string
      card-brand:
        required: true
        displayName: card-brand
        description: The card brand (e.g. Visa or Mastercard)
        type: string
      issuer-phone:
        required: true
        displayName: issuer-phone
        description: The card issuers phone number
        type: string
      country-code3:
        required: true
        displayName: country-code3
        description: The ISO 3-letter country code of the issuer
        type: string
      currency-code:
        required: true
        displayName: currency-code
        description: ISO 4217 currency code associated with the country of the issuer
        type: string
      ip-country-code3:
        required: true
        displayName: ip-country-code3
        description: The ISO 3-letter country code of the customers IP
        type: string
      is-commercial:
        required: true
        displayName: is-commercial
        description: Is this a commercial/business use card
        type: boolean
      is-prepaid:
        required: true
        displayName: is-prepaid
        description: Is this a prepaid or prepaid reloadable card
        type: boolean
      bin-number:
        required: true
        displayName: bin-number
        description: The BIN number returned. You may count the number of digits in this field to determine if the BIN is likely to be based on an 8-digit or 6-digit card
        type: string
  Location:
    displayName: Location
    description: Structure of locations
    type: object
    properties:
      country:
        required: true
        displayName: country
        description: The country of the location
        type: string
      address:
        required: true
        displayName: address
        description: The complete address using comma-separated values
        type: string
      city:
        required: true
        displayName: city
        description: The city of the location
        type: string
      country-code:
        required: true
        displayName: country-code
        description: The ISO 2-letter country code of the location
        type: string
      country-code3:
        required: true
        displayName: country-code3
        description: The ISO 3-letter country code of the location
        type: string
      latitude:
        required: true
        displayName: latitude
        description: The location latitude
        type: number
        format: double
      postal-code:
        required: true
        displayName: postal-code
        description: The postal code for the location
        type: string
      longitude:
        required: true
        displayName: longitude
        description: The location longitude
        type: number
        format: double
      state:
        required: true
        displayName: state
        description: The state of the location
        type: string
      address-components:
        required: true
        displayName: address-components
        description: The components which make up the address such as road, city, state, etc
        type: object
        additionalProperties: true
        properties:
          //:
            type: string
      currency-code:
        required: true
        displayName: currency-code
        description: ISO 4217 currency code associated with the country
        type: string
      location-type:
        required: true
        displayName: location-type
        description: 'The detected location type ordered roughly from most to least precise, possible values are: <br> <ul> <li>address - indicates a precise street address</li> <li>street - accurate to the street level but may not point to the exact location of the house/building number</li> <li>city - accurate to the city level, this includes villages, towns, suburbs, etc</li> <li>postal-code - indicates a postal code area (no house or street information present)</li> <li>railway - location is part of a rail network such as a station or railway track</li> <li>natural - indicates a natural feature, for example a mountain peak or a waterway</li> <li>island - location is an island or archipelago</li> <li>administrative - indicates an administrative boundary such as a country, state or province</li> </ul>'
        type: string
      location-tags:
        required: true
        displayName: location-tags
        description: 'Array of strings containing any location tags associated with the address. Tags are additional pieces of metadata about a specific location, there are thousands of different tags. Some examples of tags: shop, office, cafe, bank, pub'
        type: array
        items:
          type: string
      timezone:
        required: true
        displayName: timezone
        description: Map containing timezone details for the location
        type: Timezone
      region-code:
        required: true
        displayName: region-code
        description: The ISO 3166-2 region code for the location
        type: string
      postal-address:
        required: true
        displayName: postal-address
        description: The formatted address using local standards suitable for printing on an envelope
        type: string
      language-code:
        required: true
        displayName: language-code
        description: The ISO 2-letter language code for the official language spoken in the country
        type: string
  APIError:
    displayName: APIError
    type: object
    properties:
      api-error:
        required: true
        displayName: api-error
        description: API error code. If set and > 0 then an API error has occurred your request could not be completed
        type: integer
        format: int32
      api-error-msg:
        required: true
        displayName: api-error-msg
        description: API error message
        type: string
  URLComponents:
    displayName: URLComponents
    description: Structure of url-components
    type: object
    properties:
      url:
        required: true
        displayName: url
        description: The complete and final URL
        type: string
      host:
        required: true
        displayName: host
        description: The host of the URL. Will be either a domain name, sub-domain or IP address
        type: string
      protocol:
        required: true
        displayName: protocol
        description: The protocol of the URL. For a website URL this will be either 'https' or 'http'
        type: string
      path:
        required: true
        displayName: path
        description: The path of the URL. This is the part coming after the host and specifies which resource to load
        type: string
      port:
        required: true
        displayName: port
        description: The port of the URL. This is usually 443 for HTTPS and 80 for HTTP unless otherwise specified in the URL
        type: integer
        format: int32
      query:
        required: true
        displayName: query
        description: The query of the URL. Contains a key/value map of any HTTP GET query parameters present in the URL
        type: object
        additionalProperties: true
        properties:
          //:
            type: string
  ExecResult:
    displayName: ExecResult
    description: Structure of exec-results
    type: object
    properties:
      statement:
        required: true
        displayName: statement
        description: The JavaScript statement that was executed
        type: string
      result:
        required: true
        displayName: result
        description: The result of the executed JavaScript statement. Will be empty if the statement returned nothing
        type: string
/html-render:
  post:
    displayName: HTMLRender
    description: Render HTML content to PDF, JPG or PNG
    body:
      multipart/form-data:
        type: object
        properties:
          content:
            required: true
            example:
              value: <h1>TEST DOCUMENT</h1><p>Hello, this is a test page...</p>
            displayName: content
            description: The HTML content. This can be either a URL to load from, a file upload (multipart/form-data) or an HTML content string
            type: string
          format:
            required: false
            default: PDF
            displayName: format
            description: 'Which format to output, available options are: PDF, PNG, JPG'
            type: string
          page-size:
            required: false
            default: A4
            displayName: page-size
            description: 'Set the document page size, can be one of: A0 - A9, B0 - B10, Comm10E, DLE or Letter'
            type: string
          title:
            required: false
            displayName: title
            description: The document title
            type: string
          margin:
            required: false
            default: '0'
            displayName: margin
            description: The document margin (in mm)
            type: number
            format: double
          margin-left:
            required: false
            default: '0'
            displayName: margin-left
            description: The document left margin (in mm)
            type: number
            format: double
          margin-right:
            required: false
            default: '0'
            displayName: margin-right
            description: The document right margin (in mm)
            type: number
            format: double
          margin-top:
            required: false
            default: '0'
            displayName: margin-top
            description: The document top margin (in mm)
            type: number
            format: double
          margin-bottom:
            required: false
            default: '0'
            displayName: margin-bottom
            description: The document bottom margin (in mm)
            type: number
            format: double
          landscape:
            required: false
            default: 'false'
            displayName: landscape
            description: Set the document to landscape orientation
            type: boolean
          zoom:
            required: false
            default: '1'
            displayName: zoom
            description: Set the zoom factor when rendering the page (2.0 for double size, 0.5 for half size)
            type: number
            format: double
          grayscale:
            required: false
            default: 'false'
            displayName: grayscale
            description: Render the final document in grayscale
            type: boolean
          css:
            required: false
            displayName: css
            description: "Inject custom CSS into the HTML. e.g. 'body { background-color: red;}'"
            type: string
          image-width:
            required: false
            default: '1024'
            displayName: image-width
            description: If rendering to an image format (PNG or JPG) use this image width (in pixels)
            type: integer
            format: int32
          image-height:
            required: false
            displayName: image-height
            description: If rendering to an image format (PNG or JPG) use this image height (in pixels). The default is automatic which dynamically sets the image height based on the content
            type: integer
            format: int32
          delay:
            required: false
            default: '0'
            displayName: delay
            description: Number of seconds to wait before rendering the page (can be useful for pages with animations etc)
            type: integer
            format: int32
          page-width:
            required: false
            displayName: page-width
            description: Set the PDF page width explicitly (in mm)
            type: number
            format: double
          page-height:
            required: false
            displayName: page-height
            description: Set the PDF page height explicitly (in mm)
            type: number
            format: double
          timeout:
            required: false
            default: '300'
            displayName: timeout
            description: Timeout in seconds. Give up if still trying to load the HTML content after this number of seconds
            type: integer
            format: int32
          ignore-certificate-errors:
            required: false
            default: 'false'
            displayName: ignore-certificate-errors
            description: Ignore any TLS/SSL certificate errors
            type: boolean
          header:
            required: false
            example:
              value: "<div style='width: 100%; font-size: 8pt;'>{pageNumber} of {totalPages} - {date}</div>"
            displayName: header
            description: 'The header HTML to insert into each page. The following dynamic tags are supported: {date}, {title}, {url}, {pageNumber}, {totalPages}'
            type: string
          footer:
            required: false
            displayName: footer
            description: 'The footer HTML to insert into each page. The following dynamic tags are supported: {date}, {title}, {url}, {pageNumber}, {totalPages}'
            type: string
          bg-color:
            required: false
            displayName: bg-color
            description: "For image rendering set the background color in hexadecimal notation (e.g. #0000ff). For PNG output the special value of 'transparent' can be used to create a transparent PNG"
            type: string
          exec:
            required: false
            displayName: exec
            description: "Execute JavaScript on the website. This parameter accepts JavaScript as either a string containing JavaScript or for sending multiple separate statements a JSON array or POST array can also be used. You can also use the following specially defined user interaction functions: <br> <div> sleep(seconds); Just wait/sleep for the specified number of seconds. <br>click('selector'); Click on the first element matching the given selector. <br>focus('selector'); Focus on the first element matching the given selector. <br>keys('characters'); Send the specified keyboard characters. Use click() or focus() first to send keys to a specific element. <br>enter(); Send the Enter key. <br>tab(); Send the Tab key. <br> </div>"
            type: string
          user-agent:
            required: false
            displayName: user-agent
            description: Override the browsers default user-agent string with this one
            type: string
    responses:
      '200':
        description: Success
        body:
          text/plain:
            displayName: response
            type: file
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/image-watermark:
  post:
    displayName: ImageWatermark
    description: Watermark one image with another image
    body:
      multipart/form-data:
        type: object
        properties:
          image-url:
            required: true
            example:
              value: https://www.neutrinoapi.com/img/LOGO.png
            displayName: image-url
            description: The URL or Base64 encoded Data URL for the source image. You can also upload an image file directly using multipart/form-data
            type: string
          watermark-url:
            required: true
            example:
              value: https://www.neutrinoapi.com/img/icons/security.png
            displayName: watermark-url
            description: The URL or Base64 encoded Data URL for the watermark image. You can also upload an image file directly using multipart/form-data
            type: string
          opacity:
            required: false
            default: '50'
            example:
              value: 90
            displayName: opacity
            description: The opacity of the watermark (0 to 100)
            type: integer
            format: int32
          format:
            required: false
            default: png
            displayName: format
            description: The output image format, can be either png or jpg
            type: string
          position:
            required: false
            default: center
            displayName: position
            description: 'The position of the watermark image, possible values are: <br>center, top-left, top-center, top-right, bottom-left, bottom-center, bottom-right'
            type: string
          width:
            required: false
            displayName: width
            description: If set resize the resulting image to this width (in px)
            type: integer
            format: int32
          height:
            required: false
            displayName: height
            description: If set resize the resulting image to this height (in px)
            type: integer
            format: int32
          resize-mode:
            required: false
            default: scale
            displayName: resize-mode
            description: "The resize mode to use, we support 3 main resizing modes: <ul> <li><b>scale</b><br>Resize to within the width and height specified while preserving aspect ratio. In this mode the width or height will be automatically adjusted to fit the aspect ratio</li> <li><b>pad</b><br>Resize to exactly the width and height specified while preserving aspect ratio and pad any space left over. Any padded space will be filled in with the 'bg-color' value</li> <li><b>crop</b><br>Resize to exactly the width and height specified while preserving aspect ratio and crop any space which fall outside the area. The cropping window is centered on the original image</li> </ul>"
            type: string
          bg-color:
            required: false
            default: transparent
            displayName: bg-color
            description: "The image background color in hexadecimal notation (e.g. #0000ff). For PNG output the special value of 'transparent' can also be used. For JPG output the default is black (#000000)"
            type: string
    responses:
      '200':
        description: Success
        body:
          text/plain:
            displayName: response
            type: file
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/qr-code:
  post:
    displayName: QRCode
    description: Generate a QR code as a PNG image
    body:
      multipart/form-data:
        type: object
        properties:
          content:
            required: true
            example:
              value: https://www.neutrinoapi.com/signup/
            displayName: content
            description: The content to encode into the QR code (e.g. a URL or a phone number)
            type: string
          width:
            required: false
            default: '256'
            displayName: width
            description: The width of the QR code (in px)
            type: integer
            format: int32
          height:
            required: false
            default: '256'
            displayName: height
            description: The height of the QR code (in px)
            type: integer
            format: int32
          fg-color:
            required: false
            default: '#000000'
            displayName: fg-color
            description: The QR code foreground color
            type: string
          bg-color:
            required: false
            default: '#ffffff'
            displayName: bg-color
            description: The QR code background color
            type: string
          code-format:
            required: false
            default: qr
            displayName: code-format
            description: 'The barcode format to output. Accepted formats are: qr, c128'
            type: string
    responses:
      '200':
        description: Success
        body:
          text/plain:
            displayName: response
            type: file
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/image-resize:
  post:
    displayName: ImageResize
    description: Resize an image and output as either JPEG or PNG
    body:
      multipart/form-data:
        type: object
        properties:
          image-url:
            required: true
            example:
              value: https://www.neutrinoapi.com/img/LOGO.png
            displayName: image-url
            description: The URL or Base64 encoded Data URL for the source image. You can also upload an image file directly using multipart/form-data
            type: string
          width:
            required: true
            example:
              value: 32
            displayName: width
            description: The width to resize to (in px)
            type: integer
            format: int32
          height:
            required: false
            example:
              value: 32
            displayName: height
            description: The height to resize to (in px). If you don't set this field then the height will be automatic based on the requested width and image aspect ratio
            type: integer
            format: int32
          format:
            required: false
            default: png
            displayName: format
            description: The output image format, can be either png or jpg
            type: string
          resize-mode:
            required: false
            default: scale
            displayName: resize-mode
            description: "The resize mode to use, we support 3 main resizing modes: <ul> <li><b>scale</b><br>Resize to within the width and height specified while preserving aspect ratio. In this mode the width or height will be automatically adjusted to fit the aspect ratio</li> <li><b>pad</b><br>Resize to exactly the width and height specified while preserving aspect ratio and pad any space left over. Any padded space will be filled in with the 'bg-color' value</li> <li><b>crop</b><br>Resize to exactly the width and height specified while preserving aspect ratio and crop any space which fall outside the area. The cropping window is centered on the original image</li> </ul>"
            type: string
          bg-color:
            required: false
            default: transparent
            displayName: bg-color
            description: "The image background color in hexadecimal notation (e.g. #0000ff). For PNG output the special value of 'transparent' can also be used. For JPG output the default is black (#000000)"
            type: string
    responses:
      '200':
        description: Success
        body:
          text/plain:
            displayName: response
            type: file
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/sms-verify:
  post:
    displayName: SMSVerify
    description: Send a unique security code to any mobile device via SMS
    body:
      multipart/form-data:
        type: object
        properties:
          number:
            required: true
            example:
              value: '+12106100045'
            displayName: number
            description: The phone number to send a verification code to
            type: string
          code-length:
            required: false
            default: '5'
            displayName: code-length
            description: The number of digits to use in the security code (must be between 4 and 12)
            type: integer
            format: int32
          security-code:
            required: false
            displayName: security-code
            description: Pass in your own security code. This is useful if you have implemented TOTP or similar 2FA methods. If not set then we will generate a secure random code
            type: integer
            format: int32
          country-code:
            required: false
            displayName: country-code
            description: ISO 2-letter country code, assume numbers are based in this country. <br>If not set numbers are assumed to be in international format (with or without the leading + sign)
            type: string
          language-code:
            required: false
            default: en
            displayName: language-code
            description: 'The language to send the verification code in, available languages are: <ul> <li>de - German</li> <li>en - English</li> <li>es - Spanish</li> <li>fr - French</li> <li>it - Italian</li> <li>pt - Portuguese</li> <li>ru - Russian</li> </ul>'
            type: string
          limit:
            required: false
            default: '10'
            displayName: limit
            description: Limit the total number of SMS allowed to the supplied phone number, if the limit is reached within the TTL then error code 14 will be returned
            type: integer
            format: int32
          limit-ttl:
            required: false
            default: '1'
            displayName: limit-ttl
            description: Set the TTL in number of days that the 'limit' option will remember a phone number (the default is 1 day and the maximum is 365 days)
            type: integer
            format: int32
          brand-name:
            required: false
            displayName: brand-name
            description: Set a custom brand or product name in the verification message
            type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: SMSVerifyResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/phone-playback:
  post:
    displayName: PhonePlayback
    description: Make an automated call to any valid phone number and playback an audio message
    body:
      multipart/form-data:
        type: object
        properties:
          number:
            required: true
            example:
              value: '+12106100045'
            displayName: number
            description: The phone number to call. Must be in valid international format
            type: string
          audio-url:
            required: true
            example:
              value: https://www.neutrinoapi.com/test-files/test1.mp3
            displayName: audio-url
            description: 'A URL to a valid audio file. Accepted audio formats are: <ul> <li>MP3</li> <li>WAV</li> <li>OGG</li> </ul>You can use the following MP3 URL for testing: <br>https://www.neutrinoapi.com/test-files/test1.mp3'
            type: string
          limit:
            required: false
            default: '3'
            displayName: limit
            description: Limit the total number of calls allowed to the supplied phone number, if the limit is reached within the TTL then error code 14 will be returned
            type: integer
            format: int32
          limit-ttl:
            required: false
            default: '1'
            displayName: limit-ttl
            description: Set the TTL in number of days that the 'limit' option will remember a phone number (the default is 1 day and the maximum is 365 days)
            type: integer
            format: int32
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: PhonePlaybackResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/hlr-lookup:
  get:
    displayName: HLRLookup
    description: Connect to the global mobile cellular network and retrieve the status of a mobile device
    queryParameters:
      number:
        required: true
        example:
          value: '+12106100045'
        displayName: number
        description: A phone number
        type: string
      country-code:
        required: false
        displayName: country-code
        description: ISO 2-letter country code, assume numbers are based in this country. <br>If not set numbers are assumed to be in international format (with or without the leading + sign)
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: HLRLookupResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/verify-security-code:
  get:
    displayName: VerifySecurityCode
    description: Check if a security code sent via SMS Verify or Phone Verify is valid
    queryParameters:
      security-code:
        required: true
        example:
          value: '123456'
        displayName: security-code
        description: The security code to verify
        type: string
      limit-by:
        required: false
        displayName: limit-by
        description: If set then enable additional brute-force protection by limiting the number of attempts by the supplied value. This can be set to any unique identifier you would like to limit by, for example a hash of the users email, phone number or IP address. Requests to this API will be ignored after approximately 10 failed verification attempts
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: VerifySecurityCodeResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/phone-verify:
  post:
    displayName: PhoneVerify
    description: Make an automated call to any valid phone number and playback a unique security code
    body:
      multipart/form-data:
        type: object
        properties:
          number:
            required: true
            example:
              value: '+12106100045'
            displayName: number
            description: The phone number to send the verification code to
            type: string
          code-length:
            required: false
            default: '6'
            displayName: code-length
            description: The number of digits to use in the security code (between 4 and 12)
            type: integer
            format: int32
          security-code:
            required: false
            displayName: security-code
            description: Pass in your own security code. This is useful if you have implemented TOTP or similar 2FA methods. If not set then we will generate a secure random code
            type: integer
            format: int32
          playback-delay:
            required: false
            default: '800'
            displayName: playback-delay
            description: The delay in milliseconds between the playback of each security code
            type: integer
            format: int32
          country-code:
            required: false
            displayName: country-code
            description: ISO 2-letter country code, assume numbers are based in this country. <br>If not set numbers are assumed to be in international format (with or without the leading + sign)
            type: string
          language-code:
            required: false
            default: en
            displayName: language-code
            description: 'The language to playback the verification code in, available languages are: <ul> <li>de - German</li> <li>en - English</li> <li>es - Spanish</li> <li>fr - French</li> <li>it - Italian</li> <li>pt - Portuguese</li> <li>ru - Russian</li> </ul>'
            type: string
          limit:
            required: false
            default: '3'
            displayName: limit
            description: Limit the total number of calls allowed to the supplied phone number, if the limit is reached within the TTL then error code 14 will be returned
            type: integer
            format: int32
          limit-ttl:
            required: false
            default: '1'
            displayName: limit-ttl
            description: Set the TTL in number of days that the 'limit' option will remember a phone number (the default is 1 day and the maximum is 365 days)
            type: integer
            format: int32
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: PhoneVerifyResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/email-validate:
  get:
    displayName: EmailValidate
    description: Parse, validate and clean an email address
    queryParameters:
      email:
        required: true
        example:
          value: tech@neutrinoapi.com
        displayName: email
        description: An email address
        type: string
      fix-typos:
        required: false
        default: 'false'
        displayName: fix-typos
        description: Automatically attempt to fix typos in the address
        type: boolean
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: EmailValidateResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/bad-word-filter:
  post:
    displayName: BadWordFilter
    description: Detect bad words, swear words and profanity in a given text
    body:
      multipart/form-data:
        type: object
        properties:
          content:
            required: true
            example:
              value: https://en.wikipedia.org/wiki/Profanity
            displayName: content
            description: The content to scan. This can be either a URL to load from, a file upload (multipart/form-data) or an HTML content string
            type: string
          censor-character:
            required: false
            displayName: censor-character
            description: The character to use to censor out the bad words found
            type: string
          catalog:
            required: false
            default: strict
            displayName: catalog
            description: "Which catalog of bad words to use, we currently maintain two bad word catalogs: <br> <ul> <li>strict - the largest database of bad words which includes profanity, obscenity, sexual, rude, cuss, dirty, swear and objectionable words and phrases. This catalog is suitable for environments of all ages including educational or children's content</li> <li>obscene - like the strict catalog but does not include any mild profanities, idiomatic phrases or words which are considered formal terminology. This catalog is suitable for adult environments where certain types of bad words are considered OK</li> </ul>"
            type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: BadWordFilterResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/ua-lookup:
  get:
    displayName: UALookup
    description: Parse, validate and get detailed user-agent information from a user agent string or from client hints
    queryParameters:
      ua:
        required: true
        example:
          value: Mozilla/5.0 (Linux; Android 11; SM-G9980U1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Mobile Safari/537.36
        displayName: ua
        description: The user-agent string to lookup. For client hints use the 'UA' header or the JSON data directly from 'navigator.userAgentData.brands' or 'navigator.userAgentData.getHighEntropyValues()'
        type: string
      ua-version:
        required: false
        displayName: ua-version
        description: For client hints this corresponds to the 'UA-Full-Version' header or 'uaFullVersion' from NavigatorUAData
        type: string
      ua-platform:
        required: false
        displayName: ua-platform
        description: For client hints this corresponds to the 'UA-Platform' header or 'platform' from NavigatorUAData
        type: string
      ua-platform-version:
        required: false
        displayName: ua-platform-version
        description: For client hints this corresponds to the 'UA-Platform-Version' header or 'platformVersion' from NavigatorUAData
        type: string
      ua-mobile:
        required: false
        displayName: ua-mobile
        description: For client hints this corresponds to the 'UA-Mobile' header or 'mobile' from NavigatorUAData
        type: string
      device-model:
        required: false
        displayName: device-model
        description: "For client hints this corresponds to the 'UA-Model' header or 'model' from NavigatorUAData. <br>You can also use this parameter to lookup a device directly by its model name, model code or hardware code, on android you can get the model name from: https://developer.android.com/reference/android/os/Build.html#MODEL"
        type: string
      device-brand:
        required: false
        displayName: device-brand
        description: "This parameter is only used in combination with 'device-model' when doing direct device lookups without any user-agent data. Set this to the brand or manufacturer name, this is required for accurate device detection with ambiguous model names. On android you can get the device brand from: https://developer.android.com/reference/android/os/Build#MANUFACTURER"
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: UALookupResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/phone-validate:
  get:
    displayName: PhoneValidate
    description: Parse, validate and get location information about a phone number
    queryParameters:
      number:
        required: true
        example:
          value: '+6495552000'
        displayName: number
        description: A phone number. This can be in international format (E.164) or local format. If passing local format you must also set either the 'country-code' OR 'ip' options as well
        type: string
      country-code:
        required: false
        displayName: country-code
        description: ISO 2-letter country code, assume numbers are based in this country. If not set numbers are assumed to be in international format (with or without the leading + sign)
        type: string
      ip:
        required: false
        displayName: ip
        description: Pass in a users IP address and we will assume numbers are based in the country of the IP address
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: PhoneValidateResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/ip-blocklist-download:
  get:
    displayName: IPBlocklistDownload
    description: This API is a direct feed to our IP blocklist data
    queryParameters:
      format:
        required: false
        default: csv
        displayName: format
        description: The data format. Can be either CSV or TXT
        type: string
      cidr:
        required: false
        default: 'false'
        displayName: cidr
        description: Output IPs using CIDR notation. This option should be preferred but is off by default for backwards compatibility
        type: boolean
      ip6:
        required: false
        default: 'false'
        displayName: ip6
        description: Output the IPv6 version of the blocklist, the default is to output IPv4 only. Note that this option enables CIDR notation too as this is the only notation currently supported for IPv6
        type: boolean
      category:
        required: false
        default: all
        displayName: category
        description: 'The category of IP addresses to include in the download file, possible values are: <br> <ul> <li>all - all IPs available on your current plan (excludes VPN providers for any plans lower than Tier 3)</li> <li>bot - all IPs hosting a malicious bot or part of a botnet. This is a broad category which includes brute-force crackers</li> <li>exploit-bot - all IPs hosting an exploit finding bot or running exploit scanning software</li> <li>hijacked - all IPs that are part of a hijacked netblock or a netblock controlled by a criminal organization</li> <li>malware - all IPs involved in distributing or running malware or spyware</li> <li>proxy - all IPs detected as an anonymous web proxy or anonymous HTTP proxy</li> <li>spam-bot - all IPs hosting a spam bot, comment spamming or any other spamming type software</li> <li>spider - all IPs running a hostile web spider / web crawler</li> <li>tor - all IPs that are Tor nodes or running a Tor related service</li> <li>vpn - all IPs belonging to public VPN providers (only available for Tier 3 or higher accounts)</li> </ul>'
        type: string
      output-encoding:
        required: false
        displayName: output-encoding
        description: Set this option to 'gzip' to have the output file compressed using gzip
        type: string
      checksum:
        required: false
        default: 'false'
        displayName: checksum
        description: Do not download the file but just return the current files MurmurHash3 checksum. You can use this feature to check if the file has changed since a previous check
        type: boolean
    responses:
      '200':
        description: Success
        body:
          text/plain:
            displayName: response
            type: file
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/ip-probe:
  get:
    displayName: IPProbe
    description: Execute a realtime network probe against an IPv4 or IPv6 address
    queryParameters:
      ip:
        required: true
        example:
          value: 194.233.98.38
        displayName: ip
        description: An IPv4 or IPv6 address. Accepts standard IP notation and also CIDR notation
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: IPProbeResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/host-reputation:
  get:
    displayName: HostReputation
    description: Check the reputation of an IP address, domain name or URL against a comprehensive list of blacklists and blocklists
    queryParameters:
      host:
        required: true
        example:
          value: neutrinoapi.com
        displayName: host
        description: An IP address, domain name, FQDN or URL. <br>If you supply a domain/URL it will be checked against the URI DNSBL lists
        type: string
      list-rating:
        required: false
        default: '3'
        displayName: list-rating
        description: Only check lists with this rating or better
        type: integer
        format: int32
      zones:
        required: false
        displayName: zones
        description: Only check these DNSBL zones/hosts. Multiple zones can be supplied as comma-separated values
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: HostReputationResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/email-verify:
  get:
    displayName: EmailVerify
    description: SMTP based email address verification
    queryParameters:
      email:
        required: true
        example:
          value: tech@neutrinoapi.com
        displayName: email
        description: An email address
        type: string
      fix-typos:
        required: false
        default: 'false'
        displayName: fix-typos
        description: Automatically attempt to fix typos in the address
        type: boolean
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: EmailVerifyResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/domain-lookup:
  get:
    displayName: DomainLookup
    description: Retrieve domain name details and detect potentially malicious or dangerous domains
    queryParameters:
      host:
        required: true
        example:
          value: neutrinoapi.com
        displayName: host
        description: A domain name, hostname, FQDN, URL, HTML link or email address to lookup
        type: string
      live:
        required: false
        default: 'true'
        displayName: live
        description: 'For domains that we have never seen before then perform various live checks and realtime reconnaissance. <br>NOTE: this option may add additional non-deterministic delay to the request, if you require consistently fast API response times or just want to check our domain blocklists then you can disable this option'
        type: boolean
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: DomainLookupResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/ip-blocklist:
  get:
    displayName: IPBlocklist
    description: The IP Blocklist API will detect potentially malicious or dangerous IP addresses
    queryParameters:
      ip:
        required: true
        example:
          value: 104.244.72.115
        displayName: ip
        description: An IPv4 or IPv6 address. Accepts standard IP notation (with or without port number), CIDR notation and IPv6 compressed notation. If multiple IPs are passed using comma-separated values the first non-bogon address on the list will be checked
        type: string
      vpn-lookup:
        required: false
        default: 'false'
        displayName: vpn-lookup
        description: 'Include public VPN provider IP addresses. <br><b>NOTE</b>: For more advanced VPN detection including the ability to identify private and stealth VPNs use the <a href="https://www.neutrinoapi.com/api/ip-probe/">IP Probe API</a>'
        type: boolean
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: IPBlocklistResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/ip-info:
  get:
    displayName: IPInfo
    description: Get location information about an IP address and do reverse DNS (PTR) lookups
    queryParameters:
      ip:
        required: true
        example:
          value: 1.1.1.1
        displayName: ip
        description: An IPv4 or IPv6 address. Accepts standard IP notation and also CIDR notation
        type: string
      reverse-lookup:
        required: false
        default: 'false'
        displayName: reverse-lookup
        description: Do a reverse DNS (PTR) lookup. This option can add extra delay to the request so only use it if you need it
        type: boolean
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: IPInfoResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/geocode-reverse:
  get:
    displayName: GeocodeReverse
    description: Convert a geographic coordinate (latitude and longitude) into a real world address
    queryParameters:
      latitude:
        required: true
        example:
          value: '-41.2775847'
        displayName: latitude
        description: The location latitude in decimal degrees format
        type: string
      longitude:
        required: true
        example:
          value: '174.7775229'
        displayName: longitude
        description: The location longitude in decimal degrees format
        type: string
      language-code:
        required: false
        default: en
        displayName: language-code
        description: 'The language to display results in, available languages are: <ul> <li>de, en, es, fr, it, pt, ru</li> </ul>'
        type: string
      zoom:
        required: false
        default: address
        displayName: zoom
        description: 'The zoom level to respond with: <br> <ul> <li>address - the most precise address available</li> <li>street - the street level</li> <li>city - the city level</li> <li>state - the state level</li> <li>country - the country level</li> </ul>'
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: GeocodeReverseResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/geocode-address:
  get:
    displayName: GeocodeAddress
    description: Geocode an address, partial address or just the name of a place
    queryParameters:
      address:
        required: false
        example:
          value: 1 Molesworth Street, Thorndon, Wellington 6011
        displayName: address
        description: The full address, partial address or name of a place to try and locate. Comma separated address components are preferred.
        type: string
      house-number:
        required: false
        displayName: house-number
        description: The house/building number to locate
        type: string
      street:
        required: false
        displayName: street
        description: The street/road name to locate
        type: string
      city:
        required: false
        displayName: city
        description: The city/town name to locate
        type: string
      county:
        required: false
        displayName: county
        description: The county/region name to locate
        type: string
      state:
        required: false
        displayName: state
        description: The state name to locate
        type: string
      postal-code:
        required: false
        displayName: postal-code
        description: The postal code to locate
        type: string
      country-code:
        required: false
        displayName: country-code
        description: Limit result to this country (the default is no country bias)
        type: string
      language-code:
        required: false
        default: en
        displayName: language-code
        description: 'The language to display results in, available languages are: <ul> <li>de, en, es, fr, it, pt, ru, zh</li> </ul>'
        type: string
      fuzzy-search:
        required: false
        default: 'false'
        displayName: fuzzy-search
        description: If no matches are found for the given address, start performing a recursive fuzzy search until a geolocation is found. This option is recommended for processing user input or implementing auto-complete. We use a combination of approximate string matching and data cleansing to find possible location matches
        type: boolean
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: GeocodeAddressResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/bin-list-download:
  get:
    displayName: BINListDownload
    description: Download our entire BIN database for direct use on your own systems
    queryParameters:
      include-iso3:
        required: false
        default: 'false'
        displayName: include-iso3
        description: Include ISO 3-letter country codes and ISO 3-letter currency codes in the data. These will be added to columns 10 and 11 respectively
        type: boolean
      include-8digit:
        required: false
        default: 'false'
        displayName: include-8digit
        description: Include 8-digit and higher BIN codes. This option includes all 6-digit BINs and all 8-digit and higher BINs (including some 9, 10 and 11 digit BINs where available)
        type: boolean
      include-all:
        required: false
        default: 'false'
        displayName: include-all
        description: Include all BINs and all available fields in the CSV file (overrides any values set for 'include-iso3' or 'include-8digit')
        type: boolean
      output-encoding:
        required: false
        displayName: output-encoding
        description: Set this option to 'gzip' to have the output file compressed using gzip
        type: string
    responses:
      '200':
        description: Success
        body:
          text/plain:
            displayName: response
            type: file
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/convert:
  get:
    displayName: Convert
    description: A currency and unit conversion tool
    queryParameters:
      from-value:
        required: true
        example:
          value: '100'
        displayName: from-value
        description: The value to convert from (e.g. 10.95)
        type: string
      from-type:
        required: true
        example:
          value: USD
        displayName: from-type
        description: The type of the value to convert from (e.g. USD)
        type: string
      to-type:
        required: true
        example:
          value: EUR
        displayName: to-type
        description: The type to convert to (e.g. EUR)
        type: string
      historical-date:
        required: false
        displayName: historical-date
        description: "Convert using the rate on a historical date, accepted date formats are: YYYY-MM-DD, YYYY-MM, YYYY. Historical rates are stored with daily granularity so the date format YYYY-MM-DD is preferred for the highest precision. If an invalid date or a date too far into the past is supplied then the API will respond with 'valid' as false and an empty 'historical-date'"
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: ConvertResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/bin-lookup:
  get:
    displayName: BINLookup
    description: Perform a BIN (Bank Identification Number) or IIN (Issuer Identification Number) lookup
    queryParameters:
      bin-number:
        required: true
        example:
          value: '48334884'
        displayName: bin-number
        description: The BIN or IIN number. This is the first 6, 8 or 10 digits of a card number, use 8 (or more) digits for the highest level of accuracy
        type: string
      customer-ip:
        required: false
        displayName: customer-ip
        description: Pass in the customers IP address and we will return some extra information about them
        type: string
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: BINLookupResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/html-clean:
  post:
    displayName: HTMLClean
    description: Clean and sanitize untrusted HTML
    body:
      multipart/form-data:
        type: object
        properties:
          content:
            required: true
            example:
              value: <div>Some HTML to clean...</div><script>alert()</script>
            displayName: content
            description: The HTML content. This can be either a URL to load from, a file upload (multipart/form-data) or an HTML content string
            type: string
          output-type:
            required: true
            example:
              value: plain-text
            displayName: output-type
            description: 'The level of sanitization, possible values are: <br><b>plain-text</b>: reduce the content to plain text only (no HTML tags at all) <br><b>simple-text</b>: allow only very basic text formatting tags like b, em, i, strong, u <br><b>basic-html</b>: allow advanced text formatting and hyper links <br><b>basic-html-with-images</b>: same as basic html but also allows image tags <br><b>advanced-html</b>: same as basic html with images but also allows many more common HTML tags like table, ul, dl, pre <br>'
            type: string
    responses:
      '200':
        description: Success
        body:
          text/plain:
            displayName: response
            type: file
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/url-info:
  get:
    displayName: URLInfo
    description: Parse, analyze and retrieve content from the supplied URL
    queryParameters:
      url:
        required: true
        example:
          value: https://www.neutrinoapi.com/
        displayName: url
        description: The URL to probe
        type: string
      fetch-content:
        required: false
        default: 'false'
        displayName: fetch-content
        description: If this URL responds with html, text, json or xml then return the response. This option is useful if you want to perform further processing on the URL content (e.g. with the HTML Extract or HTML Clean APIs)
        type: boolean
      ignore-certificate-errors:
        required: false
        default: 'false'
        displayName: ignore-certificate-errors
        description: Ignore any TLS/SSL certificate errors and load the URL anyway
        type: boolean
      timeout:
        required: false
        default: '60'
        displayName: timeout
        description: Timeout in seconds. Give up if still trying to load the URL after this number of seconds
        type: integer
        format: int32
      retry:
        required: false
        default: '0'
        displayName: retry
        description: If the request fails for any reason try again this many times
        type: integer
        format: int32
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: URLInfoResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError
/browser-bot:
  post:
    displayName: BrowserBot
    description: Browser bot can extract content, interact with keyboard and mouse events, and execute JavaScript on a website
    body:
      multipart/form-data:
        type: object
        properties:
          url:
            required: true
            example:
              value: https://www.neutrinoapi.com/
            displayName: url
            description: The URL to load
            type: string
          timeout:
            required: false
            default: '30'
            displayName: timeout
            description: Timeout in seconds. Give up if still trying to load the page after this number of seconds
            type: integer
            format: int32
          delay:
            required: false
            default: '3'
            displayName: delay
            description: Delay in seconds to wait before capturing any page data, executing selectors or JavaScript
            type: integer
            format: int32
          selector:
            required: false
            example:
              value: .button
            displayName: selector
            description: Extract content from the page DOM using this selector. Commonly known as a CSS selector, you can find a good reference <a href="https://www.w3schools.com/cssref/css_selectors.asp">here</a>
            type: string
          exec:
            required: false
            example:
              value:
              - click('#button-id')
              - sleep(1)
              - click('.class')
              - keys('1234')
              - enter()
            displayName: exec
            description: "Execute JavaScript on the website. This parameter accepts JavaScript as either a string containing JavaScript or for sending multiple separate statements a JSON array or POST array can also be used. If a statement returns any value it will be returned in the 'exec-results' response. You can also use the following specially defined user interaction functions: <br> <div> sleep(seconds); Just wait/sleep for the specified number of seconds. <br>click('selector'); Click on the first element matching the given selector. <br>focus('selector'); Focus on the first element matching the given selector. <br>keys('characters'); Send the specified keyboard characters. Use click() or focus() first to send keys to a specific element. <br>enter(); Send the Enter key. <br>tab(); Send the Tab key. <br> </div>"
            type: array
            items:
              type: string
          user-agent:
            required: false
            displayName: user-agent
            description: Override the browsers default user-agent string with this one
            type: string
          ignore-certificate-errors:
            required: false
            default: 'false'
            displayName: ignore-certificate-errors
            description: Ignore any TLS/SSL certificate errors and load the page anyway
            type: boolean
    responses:
      '200':
        description: Success
        body:
          application/json:
            displayName: response
            type: BrowserBotResponse
      '400':
        description: Your API request has been rejected. Check error code for details
        body:
          application/json:
            description: Your API request has been rejected. Check error code for details
            type: APIError
      '403':
        description: You have failed to authenticate
        body:
          application/json:
            description: You have failed to authenticate
            type: APIError
      '500':
        description: We messed up, sorry! Your request has caused a fatal exception
        body:
          application/json:
            description: We messed up, sorry! Your request has caused a fatal exception
            type: APIError